请求转发和响应重定向
- 软件开发
- 2025-08-30 15:51:01

请求转发 请求转发是通过HttpServletRequest对象实现的请求转发是服务器内部行为,对客户端是屏蔽的客户端只产生了一次请求,服务端只产生了一对request和response对象客户端的地址栏是不变的请求的参数是可以继续传递的目标资源可以是Servlet、静态资源,也可以是WEB-INF下的受保护的资源;不可以是外部资源 @WebServlet("/servlet1") public class ServletTest1 extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取请求转发对象,可以转发给其他Servlet RequestDispatcher requestDispatcher = req.getRequestDispatcher("servlet2"); // 也可以转发给静态资源 // RequestDispatcher requestDispatcher = req.getRequestDispatcher("aaa.html"); // 也可以转发给WEB-INF下的受保护资源 // RequestDispatcher requestDispatcher = req.getRequestDispatcher("WEB-INF/bbb.html"); // 转发,将参数传递过去 requestDispatcher.forward(req, resp); } } @WebServlet("/servlet2") public class ServletTest2 extends HttpServletRequest { public void service(HttpServletRequest req, HttpServletResponse resp) { System.out.println("servlet2执行了"); } } 响应重定向(推荐) 响应重定向是通过HttpServletReaponse对象实现的响应重定向是在服务端通过302响应码和location路径,告诉客户端自己重定向到目标资源,是在服务端提示下的,客户端的行为客户端的地址栏是变化的,客户端至少发送了两次请求请求产生了多次,后端就会有多个request和response对象,所以请求中的参数不能自动传递目标资源可以是Servlet、静态资源、外部资源;不可以是WEB-INF下的受保护资源 @WebServlet("/servlet1") public class ServletTest1 extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 重定向到servlet2 resp.sendRedirect("bbb"); // 重定向到静态资源 resp.sendRedirect("aaa.html"); // 重定向到外部资源 resp.sendRedirect(" .baidu "); } } @WebServlet("/servlet2") public class ServletTest2 extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("servlet2执行了"); } }
请求转发和响应重定向由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“请求转发和响应重定向”