zoukankan      html  css  js  c++  java
  • 请求转发与重定向路径

    请求转发与重定向路径

    一、请求转发与重定向区别

      1、请求转发是在服务器内部跳转,整个过程只有一个请求;重定向属于客户端跳转,产生了新的请求;体现为:请求转发浏览器url不变,转发后可以使用之前的参数,重定向浏览器url变化,不能使用前一次请求的参数。

      2、请求转发只能跳转到当前服务器资源,重定向可以跳转到其他的服务器资源。

    二、请求转发、重定向路径前是否带‘/’

      请求转发与重定向路径前不带‘/’:这种情况都表示当前jsp或者servlet当前路径,是一个相对路径,在同一个服务器下;

      请求转发前带‘/’ :/ 表示参照服务器web应用的根路径(就是某个项目的webroot)

      重定向前带‘/’  :/ 表示参照web服务器的根路径,会丢失web应用的根路径,解决方案:在 / 前面加上request.getContextPath();或者直接添加项目名称。

      若是在jsp使用pageContext.request.contextPath来代替request.getContextPath()

      例如:<ahref="{pageContext.request.contextPath}/req.action">

    三、举例说明

    1         if(u!=null) {
    2             // 重定向
    3             resp.sendRedirect("/mg/main/main.jsp");    
    4             return ;
    5         } else {
    6             // 这里的横线表示项目名称  不需要自己在写项目的名称,与重定向不一样
    7             req.getRequestDispatcher("/login.jsp").forward(req, resp);
    8             return ;
    9         }

      main.jsp 在项目WebRoot/mian 文件夹下面
      login.jsp 在项目WebRoot下面
      http://localhost:8080/mg/login.jsp 这是项目登陆页面的url作为下面的参考
      http://localhost:8080/mg/main/main.jsp 这是项目主页面的url作为下面的参考
      对于重定向中的第一个/ :表示的是项目服务器的根目录 表示的是localhost:8080/     如果不指定mg就无法找到具体项目,出现404无法找到资源路径。
      对于请求转发中的第一个/:表示服务器中项目的名称mg 表示”localhost:8080/mg(项目的名)/ 也就是到大了webapp

    你是一只猪
  • 相关阅读:
    Hadoop_HDFS文件读写代码流程解析和副本存放机制
    Hadoop_MapReduce流程
    Hadoop_YARN框架
    Spark任务流程笔记
    3D俄罗斯方块设计
    Hadoop_FileInputFormat分片
    二叉查找树的懒惰删除(lazy deletion)
    数组的三种随机排序方法
    SpringBoot @Async 异步处理业务逻辑和发短信逻辑
    json字符串转java对象
  • 原文地址:https://www.cnblogs.com/guyibade/p/14340405.html
Copyright © 2011-2022 走看看