语法格式:
request.getRequestDispatcher(URL地址).forward(request, response);
实现代码:
1 public class OneServlet extends HttpServlet { 2 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 3 doGet(request, response); 4 } 5 6 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 7 //请求转发到index.jsp request.getRequestDispatcher("/index.jsp").forward(request,response); 8 } 9 }
语法格式为:
response.sendRedirect(URL地址);
response.sendRedirect(request.getContextPath() + URL地址);
实现代码:
1 public class OneServlet extends HttpServlet { 2 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 3 doGet(request, response); 4 } 5 6 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 7 //重定向到index.jsp 8 response.sendRedirect("/index.jsp"); 9 } 10 }
请求转发:
在服务器内部完成,用户感知不到,浏览器地址栏不变,整个过程浏览器只发出了一个请求,目标资源可以在WEB-INF目录下。
重定向:
服务器以302状态码通知浏览器访问新地址,浏览器地址栏改变,整个过程浏览器发出两次请求,目标资源不可以在WEB-INF目录下。
原文:https://www.cnblogs.com/ShiQi521/p/13455148.html