重定向与请求转发(转载)

2017-01-15  本文已影响13人  年少懵懂丶流年梦

请求重定向:由客户重新发起请求

请求转发:由服务器自己内部分派请求给另一内容处理

重定向

servlet中重定向方法:

response.sendRedirect(Java.lang.String location);

jsp中实现重定向:

<%response.sendRedirect("new.jsp"); %> //重定向到new.jsp

原理:

重定向与客户端交互,服务器将传递进来的location直接相应到客户端,会产生302码,浏览器自动访问新的location。

特点:

两次请求和相应URL地址发生了变化
数据会丢失,产生了两个不同的HttpServletRequest对象

地址问题:
重定向有绝对地址和相对地址之分
绝对地址不加“/”
response.sendRedirect("second.do");
相对地址加“/”
response.sendRedirect(request.getContextPath()+"/second.do");
请求转发

servlet中实现请求转发:

RequestDispatcher rd=request.getRequestDispatcher("second.do");
rd.forward(request, response);

jsp实现请求分派:

<jsp:forward page="apage.jsp" />

原理:

发生在服务器端,一个servlet对象调用另外一个servlet对象,会将request和response传递过去;

特点:

只有一次请求和响应
URL地址不会改变
数据不会丢失

特别感谢 作者重山杨

上一篇 下一篇

猜你喜欢

热点阅读