通过 servlet 的 url 模式将参数从 jsp 传递到 servlet
passing parameter from jsp to servlet through url pattern of servlet
我需要通过 servlet 的 url 模式发送一个参数(就像我们通过 <a href="example.jsp?id=1">send</a>
发送一样),就像我通过 url 模式发送一个参数一样。
我用其他可能性来做这个,比如
- 我可以将该参数作为隐藏类型发送
- 我可以放入请求和会话对象
这些方法工作正常没问题
但是通过 url 它没有服用?我想知道可不可以?
我试过的代码
jsp 页
<a href="download?filename=<%=filename%>" target="_blank"> <font color="black"><%=filename%> </font></a>
servlet 代码
String filename=request.getParameter("filename");
我需要一个答案,如果可以,我们可以通过 url 模式传递参数吗?即与 <a href="example?id=1">send</a>
相同或不同?
这是可能的,但看起来您的浏览器 清除了 action="..."
属性中 ?...
之后的 参数。在那种情况下,尝试通过 <input type="hidden" .../>
传递它,例如
<form action="sendFileToServlet" method="get">
<input type="hidden" name="filename" value="<%=filename%>"/>
<input type="submit" value="Send" />
</form>
这种方式应该将它们添加到 URL 作为 <%=filename%>
的 ?filename=
值。
我只是想给你举个例子
.jsp 文件
<% String filename ="nameofFile.txt"; %>
<a href="download?filename=<%= filename %>" ></a>
SERVLET 代码
String filename = (String)request.getParameter("filename");
BufferedReader fir= new BufferedReader(new FileReader(new FileInputStream(filename)));
PrintWriter out = response.getWriter();
while(fir.ready())
out.println(fir.readLine())
我认为您得到的是空白页面,因为您没有向客户端发送任何响应,这里 out.println
实际上会将响应发送回客户端
始终编码 URL。在 JSP 中尝试使用 <c:url>
JSTL 标签。
例如
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<a href='<c:url value="/jsp/index.htm"/>'>TEST</a>
是的,您可以通过 jsp.
发送
我刚刚测试过,现在它工作正常,由于在您的 servlet 代码中编写了其他语句,所以出现空白页面,因此请确保 servlet 代码正确。
我需要通过 servlet 的 url 模式发送一个参数(就像我们通过 <a href="example.jsp?id=1">send</a>
发送一样),就像我通过 url 模式发送一个参数一样。
我用其他可能性来做这个,比如
- 我可以将该参数作为隐藏类型发送
- 我可以放入请求和会话对象
这些方法工作正常没问题
但是通过 url 它没有服用?我想知道可不可以?
我试过的代码
jsp 页
<a href="download?filename=<%=filename%>" target="_blank"> <font color="black"><%=filename%> </font></a>
servlet 代码
String filename=request.getParameter("filename");
我需要一个答案,如果可以,我们可以通过 url 模式传递参数吗?即与 <a href="example?id=1">send</a>
相同或不同?
这是可能的,但看起来您的浏览器 清除了 action="..."
属性中 ?...
之后的 参数。在那种情况下,尝试通过 <input type="hidden" .../>
传递它,例如
<form action="sendFileToServlet" method="get">
<input type="hidden" name="filename" value="<%=filename%>"/>
<input type="submit" value="Send" />
</form>
这种方式应该将它们添加到 URL 作为 <%=filename%>
的 ?filename=
值。
我只是想给你举个例子
.jsp 文件
<% String filename ="nameofFile.txt"; %>
<a href="download?filename=<%= filename %>" ></a>
SERVLET 代码
String filename = (String)request.getParameter("filename");
BufferedReader fir= new BufferedReader(new FileReader(new FileInputStream(filename)));
PrintWriter out = response.getWriter();
while(fir.ready())
out.println(fir.readLine())
我认为您得到的是空白页面,因为您没有向客户端发送任何响应,这里 out.println
实际上会将响应发送回客户端
始终编码 URL。在 JSP 中尝试使用 <c:url>
JSTL 标签。
例如
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<a href='<c:url value="/jsp/index.htm"/>'>TEST</a>
是的,您可以通过 jsp.
发送我刚刚测试过,现在它工作正常,由于在您的 servlet 代码中编写了其他语句,所以出现空白页面,因此请确保 servlet 代码正确。