请求转发 和 URL 重定向

Posted qurui1998

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请求转发 和 URL 重定向相关的知识,希望对你有一定的参考价值。

 五 请求转发 和 URL 重定向

           1 请求转发和重定向 干什么用?
             是我们在java后台servlet中 由一个servlet跳转到 另一个 servlet/jsp 要使用的技术

             前端发送请求到后台 :
             A 浏览器地址栏输入链接
             B a标签   <a href="url地址">跳转</a>
             C form表单   <form action="url地址"  method="get/post">

                              <input type="submit" value="跳转">
                          </from>
              get和post的区别(面试题)
              URL:统一资源定位符  (网址)
              http://www.baidu.com
              http://127.0.0.1:8080/day02/stu

              协议://ip地址:端口号/工程名/资源路径 ?key1=value1&key2=value2   get请求的URL

              协议:  http:// ftp  file   jdbc:mysql://
              ip地址: 0-255.0-255.0-255.0-255 定位电脑主机
              端口号:8080  8090 通过端口号定位某台主机下的某个应用
              工程名:/day02
              资源路径:/stu

              如果 通过URL传递参数(地址栏传参 )那么 需要在 路径的后面 通过?分割 ?号前面的是链接路径后面是传递的参数
              参数的格式 :  key=value
              多个参数用 & 符隔开: key1=value1&key2=value2

             D 通过js的BOM操作 : window.location.href = "http://www.baidu.com";
             E AJAX 异步请求


             servlet----》servlet/jsp

             1 如何使用
             请求转发
             req.getRequestDispatcher(servlet或者jsp的请求路径).forward(req,resp);
             URL重定向
             resp.sendRedirect("/day02_01/views/student.jsp");

             发现一个问题: 我们的代码 使用请求转发 跳转到jsp之后 是有数据的 但是重定向之后 没有数据
             2 请求转发和重定向的原理

             3 请求转发和重定向的区别
             3.1 请求转发是一次请求  重定向是两次请求 (通过地址栏可以查看)
             3.2 请求转发地址栏不会发生改变  重定向地址栏会发生改变
             3.3 请求转发可以共享请求参数    重定向之后 就获取不了共享参数了
             3.4 请求转发不能跨域(不能访问其他服务器链接) req.getRequestDispatcher("http://www.baidu.com").forward(req,resp);是不行的
                 重定向可以  resp.sendRedirect("http://www.baidu.com"); 这是可以的
             3.5 请求转发能转到WEB-INF目录下的文件req.getRequestDispatcher("/WEB-INF/views/student.jsp").forward(req,resp);
                 而重定向不能 resp.sendRedirect("/day02_01/WEB-INF/views/student.jsp");
                 (WEB-INF目录:不能被外部通过地址直接访问)
            4 为什么 请求转发不写工程名路径 而重定向一直都写工程名路径
            5 什么时候时候请求转发 什么时候使用URL的重定向
              如果需要共享参数 :请求转发
              如果需要地址栏改变:重定向
              如果需要跳转WEB-INF:请求转发
              如果跳转外部链接:重定向
              如果没如果 随便用

 

以上是关于请求转发 和 URL 重定向的主要内容,如果未能解决你的问题,请参考以下文章

Servlet重定向和请求转发

jsp中转发和重定向的区别!

Servlet中请求重定向和请求转发和include

转发和重定向

转发和重定向

javaWeb中request请求转发和response重定向