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

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

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

重定向

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地址不会改变
数据不会丢失

特别感谢 作者重山杨

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,399评论 19 139
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 7,724评论 0 6
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 5,238评论 0 10
  • 1、 定义 Forward(请求转向):服务器程序内部请求转向,这个特性允许前一个程序用于处理请求,而后一个程序用...
    九尾喵的薛定谔阅读 5,573评论 1 1
  • 1. 请求重定向方法是sendRedirect(),那么request请求在重定向过程中生存期是多久,有几个re...
    holyzoe阅读 4,498评论 0 6