Java 将数据传递给servlet
基本上,我们有一个JSF应用程序,它可以动态生成指向servlet的链接,servlet提供PDF文件。我需要将PDF的路径传递到servlet。我不知道如何将数据传递给servlet 我们认为:Java 将数据传递给servlet,java,jsf,servlets,Java,Jsf,Servlets,基本上,我们有一个JSF应用程序,它可以动态生成指向servlet的链接,servlet提供PDF文件。我需要将PDF的路径传递到servlet。我不知道如何将数据传递给servlet 我们认为: <d:protocolSection value="#{detailBacker.studyData}" id="protocol" /> 在控制器中,我们有 public string getFile() { ....... // some variable here th
<d:protocolSection value="#{detailBacker.studyData}" id="protocol" />
在控制器中,我们有
public string getFile() {
.......
// some variable here that holds the folder and file name
result += "<a href=\"/catalog/catalog/WelcomeServlet\" target=\"_blank\">" + name + "</a>
.......
}
公共字符串getFile(){
.......
//此处的某个变量包含文件夹和文件名
结果+=”
.......
}
我基本上需要以某种方式将保存文件夹和文件名的变量发送到WelcomeServlet,以便WelcomeServlet可以使用它。以通常的Servlet方式将其作为请求参数或路径信息传递 下面是一个示例,假设pathinfo是首选的,并且
{bean.pdfpath}
返回类似filename.pdf
:
下载pdf
在映射到URL模式/pdf/*
的servlet中,您可以在doGet()
方法中获得它,如下所示:
String pdfpath=request.getPathInfo();
// ...
另一种完全不同的选择是,您也可以让JSF使用commandlink/commandbutton操作方法将PDF写入响应。将生成/创建的PDF文件的位置保持固定,只需传递文件名,如
/pdfServlet?fileName=#{someBean.someFileName}
在servlet的doGet()
中检索文件名并提供文件
String fileName = request.getParameter("fileName");
请注意,这种方式会导致MSIE将文件另存为
pdfServlet
,而不是指定的文件名。即忽略内容处置头中的文件名,并获取路径的最后一部分。现在我是否可以将该jsf代码放入动态生成的锚标记中?例如,我有一个正在生成标记thi的控制器s wayresult+=“
@BalusC如果我们在servlet中添加标题呢?或者简单地将用户重定向到文件呢?@CatFish,可以,因为它将转换为纯HTMLI。我不明白为什么要在控制器中生成视图。只需在视图中完成工作。如果您确实坚持,可以使用
显示它。但是它很臭。好吧,就在那里定一条路好吗?字符串连接等等<代码>“”并在servlet中通过request.getPathInfo()
获取它。请参见上面我的答案。对不起,我是Java新手。我需要使用查询字符串吗?您需要使链接看起来像
,并且需要确保将servlet映射到/servleturl/*
上,并且需要通过servlet中的/filename.pdf
部分请求.getPathInfo()
。就这样,工作得很有魅力!谢谢