我正在用Java编写一个Servlet,基本上,它在Requests主体中获取XML请求,然后更改XML中的一些内容,并使用新XML将请求重定向/重定向到不同的Servlet。在同一台服务器上,但它在不同的网络应用程序上。
我正在使用doPost。
我该怎么做?我可以在任何地方找到代码示例吗?
另外,最新的使用方法是什么:?
request.getRequestDispatcher().include /request.getRequestDispatcher().foreword / response.sendRedirect()
或者我是否需要使用:HttpServletRequestWrapper
?
这是我到目前为止所做的:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String body = getBody(request);
MapXml mapXml = new MapXml(body, "C:\\Projects\\XmlMapper\\output.xml","C:\\Projects\\XmlMapper\\output\\");
String outputXml = mapXml.getOutputXml();
}
public static String getBody(HttpServletRequest request) throws IOException {
String body = null;
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
stringBuilder.append(charBuffer, 0, bytesRead);
}
} else {
stringBuilder.append("");
}
} catch (IOException ex) {
throw ex;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
throw ex;
}
}
}
body = stringBuilder.toString();
return body;
}
我不知道如何从这里继续。我是servlet世界的新手.. 谢谢!!! 的干杯:)
答案 0 :(得分:0)
response.sendRedirect() - 它位于浏览器级别并创建一个新的请求
request.getRequestDispatcher() - 它位于服务器级别并且
forward() - servlet引擎在内部从当前的servlet或JSP转发/转移对此HTTP请求的控制到另一个servlet或JSP
include() - 请求的资源输出内容将包含在调用资源
中在您的情况下,request.getRequestDispatcher()将执行..