资源跳转的方式
》两种:请求转发和重定向
》请求转发
》发生的位置:发生在服务器端,浏览器的地址栏不会被改变
》转发的本质:一个请求在多个资源之间跳转
》转发时数据的保存:
》request和response的生命周期是一次请求和响应的过程
》可以放在request对象中,请求转发是一次请求和响应的过程,所以转发时的数据能进行共享
》 request.setAttribute("name",name);
》request.getAttribute("name");
》使用session
//获取session对象
HttpSession Session = request.getSession();
//利用session传值
Session.setAttribute("msg","请重新输入");
//在重定向到的文件中,通过key值获取value值;
session.getAttribute("msg")
》可以转向的资源
》只能是当前服务器内部的资源
》核心代码:
request.getRequestDispatcher("要转发的资源路径").forward(request,response);
》重定向
》发生的位置:发生在浏览器端
》服务器通知浏览器发送一个新的请求,地址栏的url改变
》重定向时数据的保存
》重定向时发生了二次请求,第一次中的数据,在重定向后都没了
》使用session
//获取session对象
HttpSession Session = request.getSession();
//利用session传值
Session.setAttribute("msg","请重新输入");
//在重定向到的文件中,通过key值获取value值;
session.getAttribute("msg")
》重定向可以转向的资源
》不但可以转向内部资源,也可以转向外部资源
》核心代码:
response.sendRedirect("要重定向的资源路径");
》注意:转发和重定向不能和PrintWriter一起使用
原文:https://www.cnblogs.com/longmo666/p/13468286.html