请求转发和重定向的区别
1,重定向response.sendRedirect(“路径”);
〈1〉浏览器行为,浏览器进行了两次请求。两次的request请求对象已经不是同一个对象。
〈2〉不能用request将信息传递到下一个界面。
〈3〉路径url会发生变化,为第二次重新请求的路径。
request.setAttribute("name", name);
response.sendRedirect("login.jsp");
〈4〉可以跨域访问。
response.sendRedirect("http://www.baidu.com");
2,请求转发request.getRequestDispatcher(“路径”).forward(request, response);
〈1〉服务器行为,服务器把目标资源返回给客户端浏览器,一次请求,处在同一个request请求对象。
〈2〉可以用request将信息传递到下一个界面。
〈3〉路径url不会发生变化。
request.setAttribute("name", name);
request.getRequestDispatcher("login.jsp").forward(request, response);
〈4〉转发是在服务器内部进行的,因此不能跨域访问。
request.getRequestDispatcher("http://www.baidu.com").forward(request, response);