如何在 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>