请求转发和重定向

1.请求转发和重定向的作用:

  在java后台servlet中,实现由一个servlet跳转到另一个servlet/jsp要使用的技术。

2.前端发送请求到后台的方式:

  a.浏览器地址输入链接。

  b.a标签  <a href="URL 地址">跳转</a>

  c.form表单  <form action="URL地址" method="get/post">

            <input  type="submit"  value="跳转"/>

         </form>

  d.通过js的BOM操作  window.location.href=“http://www.baidu.com”;

  e.AJAX异步请求。

3.请求转发和重定向的使用:

  请求转发:

  req.getRequestDispatcher(servlet或者jsp的请求路径).forward(req,resp);

  URL重定向:

  resp.sendRedirect("/day47/views/student.jsp");

4.请求转发和重定向的区别

  a.请求转发是一次请求,重定向是两次请求 (通过地址栏可以查看)
  b.请求转发地址栏不会发生改变, 重定向地址栏会发生改变
  c.请求转发可以共享请求参数 ,重定向之后,就获取不了共享参数了
  d.请求转发不能跨域(不能访问其他服务器链接) req.getRequestDispatcher("http://www.baidu.com").forward(req,resp);是不行的
   重定向可以 resp.sendRedirect("http://www.baidu.com");
  e.请求转发能转到WEB-INF目录下的文件req.getRequestDispatcher("/WEB-INF/views/student.jsp").forward(req,resp);
而重定向不能 resp.sendRedirect("/day02_01/WEB-INF/views/student.jsp");
  (注:WEB-INF目录:不能被外部通过地址直接访问)

原文地址:https://www.cnblogs.com/duguangming/p/10718847.html