• 请求转发 和 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:请求转发
                  如果跳转外部链接:重定向
                  如果没如果 随便用

     

  • 相关阅读:
    遍历二维数组
    冒泡跟扫描共用
    1.8作业
    1.7作业
    1.5作业
    百文百鸡 水仙花数 百马百担
    for循环输出九九乘法表
    循环语句
    1.4作业
    07、找出1-99之间的同构数
  • 原文地址:https://www.cnblogs.com/qurui1998/p/10719033.html
Copyright © 2020-2023  润新知