我正在使用这样的 HTML 表单,
<form action="/myservlet?userid=12345" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Submit">
</form>
这个 HTML 表单的路径例如 http://www.mywebapp.com/sample.html
在我的 servlet 中,当我使用 String url = req.getRequestURL().toString();
并打印字符串时,它会打印表单操作 URL http://www.mywebapp.com/myservlet?userid=12345而不是 HTML URL。
预期的 HTML URL:http://www.mywebapp.com/sample.html (从这里只有我请求并且我需要这个 URL)
任何人都可以建议我如何获取 servlet 中的 HTML url 路径。
最佳答案
如果我理解正确的话,当您发出后续请求(form
post)时,您希望获取一个请求(加载 html 的请求)的 URL。
HTTP 是无状态的,因此没有办法可靠地做到这一点。
需要执行此操作有点代码味道,但如果您确实需要该 URL,则必须将该 URL 作为隐藏的输入
传递到表单
。有多种方法可以做到这一点,无论您使用 JSP/JSTL 还是使用 JavaScript 在客户端执行某些操作,但基本上您都在尝试获取如下所示的 form
:
<form action="/myservlet?userid=12345" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="hidden" name="url" value="http://www.mywebapp.com/sample.html"/>
<input type="submit" value="Submit">
</form>
关于java - 如何在servlet中获取html请求URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14454979/