我要求通过url模式以相同的方式通过servlet的url模式发送一个参数(就像我们通过<a href="example.jsp?id=1">send</a>
发送一样)。
我用其他可能性来做这件事,比如
这些方法工作正常没问题
但是通过url它没有服用?我想知道它是否可能?
我试过的代码
jsp page
<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>
相同或不同?
答案 0 :(得分:1)
我只想给你一个例子
.jsp文件
<% String filename ="nameofFile.txt"; %>
<a href="download?filename=<%= filename %>" ></a>
服务代码
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
实际上会将回复发送回客户
答案 1 :(得分:1)
始终对URL进行编码。在JSP中尝试使用<c:url>
JSTL Tag。
例如
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<a href='<c:url value="/jsp/index.htm"/>'>TEST</a>
答案 2 :(得分:0)
可能会在?...
属性中的action="..."
后看到您的浏览器清除参数。在这种情况下,尝试通过<input type="hidden" .../>
传递它
<form action="sendFileToServlet" method="get">
<input type="hidden" name="filename" value="<%=filename%>"/>
<input type="submit" value="Send" />
</form>
这种方式表单应将其作为?filename=
的{{1}}值添加到网址。
答案 3 :(得分:0)
是的,你可以发送像tsp一样。
我刚刚测试过,由于servlet代码中写入的其他语句,空白页面正常运行,因此确保servlet代码正确无误。