JavaEE中的重定向和请求转发的区别
请求转发和重定向的作用:在java后台servlet中,实现由一个servlet跳转到另一个servlet/jsp要使用的技术。
请求转发格式
request.getRequestDispatcher(URL地址).forward(request, response)
请求转发的执行流程:
- 客户端发送请求,Servlet做出业务逻辑处理。
- Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。
请求转发可以访问WEB-INF目录中的资源,不可以访问项目之外的资源,当用户发送请求之后,都交给服务器处理,地址栏不会发生变化。
重定向格式
response.sendRedirect(URL地址)
重定向的执行流程:
- 客户端发送请求,Servlet做出业务逻辑处理。
- Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
- 客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。
重定向既可以访问其他项目的资源,不能访问WEB-INF目录中的资源,当用户发送请求之后,服务器会给用户响应一个地址,用户再次请求,地址栏会发生变化。
总结:请求转发是一次请求,重定向是两次请求。请求转发可以共享请求参数 ,重定向之后,就获取不了共享参数了。重定向代表之前的请求已结束,给客户端一个新的url,让客户端重新请求去获取资源,这个url可以是站外的,效率相对于请求转发要低,之前的request域已经失效,可以通过session来获得一些参数。而转发则和它大致相反:还是同一个request请求,浏览器地址栏不发生变化,只能访问站内资源,更快!
本文来自博客园,作者:(HelloWorld!),转载请注明原文链接:https://www.cnblogs.com/Simon-s/articles/15709117.html --有志者,事竟成

浙公网安备 33010602011771号