【发布时间】:2016-09-04 10:35:12
【问题描述】:
这是我的servlet的目录结构:
+---build
| \---classes
+---Files
| esoutput.json
| newOutput.xml
| newoutputfinal.xml
| output.xml
|
+---src
| \---com
| \---example
| AddQueryTag.java
| ElasticsearchClient.java
| JsonToXml.java
| mainClass.java
| output.xml
| SaveJsonContent.java
| SaxonImplementation.java
|
+---target
| +---classes
| | +---com
| | | \---example
| | | AddQueryTag.class
| | | ElasticsearchClient.class
| | | JsonToXml.class
| | | mainClass.class
| | | output.xml
| | | SaveJsonContent.class
| | | SaxonImplementation.class
| | |
| | \---META-INF
| | | MANIFEST.MF
| | |
| | \---maven
| | \---com.example
| | \---PIBTest1
| | pom.properties
| | pom.xml
| |
| \---test-classes
\---WebContent
| firstPage.html
|
+---META-INF
| MANIFEST.MF
|
\---WEB-INF
| resultfile.html
| web.xml
|
+---lib
\---src
我的主 servlet 类(mainClass.java)如下所示:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Some processing code goes here
//My resultfile.html gets updated and finally I use Request Dispatcher to forward it
request.getServletContext().getRequestDispatcher("/WEB-INF/resultfile.html")
.forward(request, response);
}
这是一个搜索应用程序。用户在“firstpage.html”上输入查询并返回结果。
当我第一次启动我的网络应用程序时,“firstpage.html”会按照我在 web.xml 文件中的配置启动。所以当我第一次启动我的网络应用程序时,它会显示“firstpage.html”,然后用户输入查询并创建“resultfile.html”。但是网络应用程序显示一个空白页面。 我检查了“resultfile.html”并正确生成了文件。所以我的代码没有问题。我希望能够转发我生成的“resultfile.html”页面。我在这里做错了吗?我是 Servlet 的新手。谢谢大家。
我正在使用 Tomcat V7.0 和 eclipse。
更新:当用户返回“firstpage.html”并输入新查询时,“resultfile.html”会显示旧查询的结果。 “resultfile.html”不显示更新的信息。
更新 2:我的“resultfile.html”是由 SaxonImplementation 类生成的。该类的代码如下:
package com.example;
import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class SaxonImplementation {
public void simpleTransform(String sourcePath, String xsltPath,
String resultDir) {
System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");
TransformerFactory tFactory = TransformerFactory.newInstance();
try {
Transformer transformer = tFactory
.newTransformer(new StreamSource(new File(xsltPath)));
transformer.transform(new StreamSource(new File(sourcePath)),
new StreamResult(new File(resultDir)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
我从 mainClass.java 的 doGet 方法调用这个类,以将 XML 转换为 HTML 文件。
【问题讨论】:
-
@BalusC 嗨 BalusC,我没有收到 FileNotFoundException。我不认为这是一个重复的问题。
-
问题可能不同,但答案绝对适用于当前问题。
-
@BalusC 所以这意味着这不是一个重复的问题,我已经得到了我正在寻找的问题的不同答案。