zoukankan      html  css  js  c++  java
  • 转发与重定向

      重定向:重新确定请求方向
        发送者:服务器 --> 响应(response)浏览器
        执行者:浏览器 --> 重新请求
      转发:当前请求未完成,服务器调用另一个程序继续完成整个请求
        服务器:当前程序需要获得请求调度器 RequestDispatcher
        forward:当调度器,协调多个servlet时,此方法返回最后一个servlet的页面输出内容。
      对比
        何时使用
          重定向:可以指定当前web项目的URL,也可以指定其他web资源
          转发:只能指定当前的web项目URL
        确定使用
          重定向:在第一次请求中设置值,在重定向后不能获取。两次请求,tomcat创建了两个request完成跳转功能,选重定向
          转发:设置的值可以在其他servlet或资源中使用。多个servlet需要传递数据时,现在转发。
       总结:
        请求次数
          重定向:请求2次,tomcat创建了两个request对象
          转发:请求1次,tomcat创建了2个request对象
          request --> org.apache.catalina.connector.RequestFacade -- HttpServletRequest --ServletRequest
          request --> org.apache.catalina.core.ApplicationHttpRequest
            class ApplicationHttpRequest extends HttpServletRequestWrapper {
            public class HttpServletRequestWrapper implements HttpServletRequest {
            ApplicationHttpRequest -- HttpServletRequestWrapper -- HttpServletRequest
            将第一个request中的内容,拷贝给第二个request。值相同
        浏览器地址栏是否修改
          重定向:修改,看到跳转后页面的内容
          转发:没有修改,看到的转发后最后一个servlet响应的内容
        request设置的值,是否共享
          重定向:数据不共享
          转发:数据共享

  • 相关阅读:
    多姿多彩的线程
    字典操作
    字符串语法
    购物车
    列表常用语法
    整数划分问题
    计算N的阶层
    判断是否是素数
    快速排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/xuyatao/p/6652166.html
Copyright © 2011-2022 走看看