如何在 JSP 中通过 URL 发送查询参数(HTTP 状态 500:Internal 服务器错误)
How to send query parameters through URL in JSP ( HTTP Status 500:Internal Server Error)
我正在尝试通过此 URL 从我的 JSP 页面向 servlet 页面发送查询参数
<form method="get" action="<%=request.getContextPath()%>/downloadFileServlet?id="<%=rs.getInt("id") %> >
Servlet 页面中接收这些参数的代码是
int uploadId = Integer.parseInt(request.getParameter("id"));
但我无法这样做,因为 URL 在我登记 chrome 时显示
http://localhost:8080/MajorProject/downloadFileServlet?
而我想要显示的是
http://localhost:8080/MajorProject/downloadFileServlet?id=(whatever the id value is)
如果您需要源代码和堆栈跟踪,请告诉我。
如规范(RFC1866, page 46; HTML 4.x 第 17.13.3 节)所述:
If the method is "get" and the action is an HTTP URI, the user agent takes the value of action, appends a `?' to it, then appends the form data set, encoded using the "application/x-www-form-urlencoded" content type.
因此在您的情况下,您通过自己指定 url 参数来 "violating" 规范。
为了达到你想要的效果,你可以像这样使用隐藏的输入字段:
<form action="${context}/downloadFileServlet" method="GET">
<input type="hidden" name="id" value="<%= rs.getInt("id") %>" />
<input type="submit" />
</form>
我正在尝试通过此 URL 从我的 JSP 页面向 servlet 页面发送查询参数
<form method="get" action="<%=request.getContextPath()%>/downloadFileServlet?id="<%=rs.getInt("id") %> >
Servlet 页面中接收这些参数的代码是
int uploadId = Integer.parseInt(request.getParameter("id"));
但我无法这样做,因为 URL 在我登记 chrome 时显示
http://localhost:8080/MajorProject/downloadFileServlet?
而我想要显示的是
http://localhost:8080/MajorProject/downloadFileServlet?id=(whatever the id value is)
如果您需要源代码和堆栈跟踪,请告诉我。
如规范(RFC1866, page 46; HTML 4.x 第 17.13.3 节)所述:
If the method is "get" and the action is an HTTP URI, the user agent takes the value of action, appends a `?' to it, then appends the form data set, encoded using the "application/x-www-form-urlencoded" content type.
因此在您的情况下,您通过自己指定 url 参数来 "violating" 规范。
为了达到你想要的效果,你可以像这样使用隐藏的输入字段:
<form action="${context}/downloadFileServlet" method="GET">
<input type="hidden" name="id" value="<%= rs.getInt("id") %>" />
<input type="submit" />
</form>