ForwardDemo1.java文件:
package com.neu;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//转发:源
//转发前后,源输出的任何响应正文无效
public class ForwardDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("转发前");
response.getWriter().write("forward before");//转发前会清空响应对象中的正文内容
request.getRequestDispatcher("/servlet/ForwardDemo2").forward(request, response);//转发
System.out.println("转发后");
response.getWriter().write("forward after");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
ForwardDemo2.java文件:
package com.neu;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//转发:目标
public class ForwardDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("222222");//响应结束
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
运行:http://localhost:8080/Request/servlet/ForwardDemo1
结果:222222
本文通过两个Servlet示例演示了Java Web应用中请求转发的过程及特点。重点介绍了如何使用`RequestDispatcher`接口的`forward`方法实现请求转发,并展示了转发前后响应正文的变化。
3345

被折叠的 条评论
为什么被折叠?



