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

    你是一只猪
  • 相关阅读:
    IbatisNet 快速开发使用 之一
    C#开发和调用Web Service
    如何构建银行数据仓库
    SQLSREVER如何创建和使用动态游标
    一个sql语句,包含有几乎所有标准查询语法
    深入研究SQL结构化查询语言中的LIKE语句
    数据库正规化和设计技巧
    黑客攻破SQL服务器系统的十种方法
    实用的存储过程
    数据库人员手边系列:SQL Server常见连接错误
  • 原文地址:https://www.cnblogs.com/guyibade/p/14340405.html
Copyright © 2011-2022 走看看