重定向和请求转发

重定向和请求转发:

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、重定向和请求转发的区别:

1、重定向是客服端两次请求;请求转发是客服端只有一次请求;重定向会生成两个不同的request对象,请求转发只有一个。

2、重定向是客服端的跳转,请求转发是服务器的跳转。

3、重定向的URL拦会发生变化,而请求转发不会发生变化。

4、重定向:response.sendRedirect(“/lession1/index.heml”)方法;
请求转发:request.getRequestDispatcher(“index.html”)方法。

5、重定向是前一个请求结束了,一个新的请求发出来了;请求转发是同一个人请求,由最后一个转发页面向浏览器相应页面。

6、请求转发的转发者与接收者之间共享相同的request对象,response对象,他们属于同一个访问请求和响应过程;重定向的调用者与被调用者使用各自的request对象和response对象,他们属于多个独立的访问请求和响应过程。

7、请求转发不能跨域(不能访问其他服务器链接) req.getRequestDispatcher(“http://www.baidu.com”).forward(req,resp);是不行的
   重定向可以 resp.sendRedirect(“http://www.baidu.com”);
   
8、请求转发能转到WEB-INF目录下的文件req.getRequestDispatcher("/WEB-INF/views/student.jsp").forward(req,resp);
而重定向不能 resp.sendRedirect("/day02_01/WEB-INF/views/student.jsp");
  (注:WEB-INF目录:不能被外部通过地址直接访问)

你可能感兴趣的:(请求转发和重定向,重定向和请求转发)