Javaweb的转发
我们在做javaweb项目时!经常会遇到页面之间进行页面跳转与资源共享的功能点。请求转发就是
这种跳转到一个新的指定页面的实现方式之一
Javaweb请求转发:
转发关键代码格式:request.getRequestDispatcher(“xxx.jsp”).forward(request,response);
请求转发的实现原理:
请求转发,是浏览器请求服务器时,服务器内部跳转到新的URL获取到资源并在原来的页面展示给浏览器的过程,始终都是使用的是同一个 request(请求对象),
转发的特点:
1,转发地址栏路径不变
2,转发只能访问当前服务器下的资源
3,转发是一次请求,
4,可以使用request对象来共享数据
例子:
如下图!请求转发时!访问地址栏路径不变,访问AServlet时也同时访问里BServlet
AServlet代码:
public class AServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("AServlet被访问了");
request. getRequestDispatcher("/servlet/BServlet").forward(request, response);
}
}
BServlet代码:
public class BServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("BServlet被访问了");
}
}
执行结果: