Java- Servlet - 使用新主体重定向请求

时间:2013-08-20 09:44:47

标签: java xml servlets request forwarding

我正在用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世界的新手.. 谢谢!!! 的干杯:)

1 个答案:

答案 0 :(得分:0)

response.sendRedirect() - 它位于浏览器级别并创建一个新的请求

request.getRequestDispatcher() - 它位于服务器级别并且

forward() - servlet引擎在内部从当前的servlet或JSP转发/转移对此HTTP请求的控制到另一个servlet或JSP

include() - 请求的资源输出内容将包含在调用资源

在您的情况下,request.getRequestDispatcher()将执行..