JAVA基础14-JavaWeb(十八)请求转发和重定向

(1)请求转发
servlet1

@WebServlet("/forward/servlet1")
public class servlet1 extends HttpServlet {
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html;charset=utf-8");
		PrintWriter out = resp.getWriter();
		String name = req.getParameter("name");
		//======================
		System.out.println("servlet1请求转发之前1"+name);
		out.println("servlet1请求转发之前2");
		//======================
		req.getRequestDispatcher("/forward/servlet2").forward(req, resp);
		System.out.println("servlet1请求转发之后3");
		out.println("servlet1请求转发之后4");
	}
}

servlet2

@WebServlet("/forward/servlet2")
public class serlvet2 extends HttpServlet{
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html;charset=utf-8");
		PrintWriter out = resp.getWriter();
		System.out.println("servlet2请求转发之前1");
		out.println("servlet2请求转发之前2"+req.getParameter("name"));
	}
}

请求转发特点:
1、浏览器请求地址不发生改变
2、请求转发只发送一个请求
3、共享同一个请求的数据
4、最终的响应有最后一个转发servlet左右
5、请求转发不能跨域访问,只能跳转到当期应用中的资源
6、请求转发可以访问WEB-INF中的资源
(2)URL重定向
方法:sendRedirect
1、浏览器的地址发生改变
2、URL重定向发了两次请求
3、URL重定向是两次独立请求,不会共享数据
4、最终的响应由servlet2决定
5、URL重定向能够跨域访问
6、URL重定向不能访问WEB-INF中的资源

猜你喜欢

转载自blog.csdn.net/qq_36675851/article/details/86533069
今日推荐