1,请求重定向:客户端行为
,response.sendRedirect
(),从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变。
2,请求转发:服务器行为,request.getRequsetDispatcher().forward(requset,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。(服务器内部转发,所有客户端看不到地址栏的改变)
转发你注意一下地址栏的地址是不变的,request.getRequestDispatcher("success.jsp").forward(request,response);转发请求到达servlet或者action获取请求参数(如果有)完成相应的业务逻辑,然后输出相应界面,这时是带着返回数据的(如果有),返回数据在request或者response,相应页面会输出相应数据,如果你的响应是有返回数据的,必须用转发。
重定向你注意一下地址栏的地址不是你发送请求的地址,最终会变化成你重定向的地址
response.sendRedirect("success.jsp"); 重定向发送请求到达servlet或者action接收请求参数处理相关的业务逻辑之后,会清除request和response中的数据,到达重定向的页面是不能够接收和显示数据的