javaWeb第四天~请求转发和重定和Servlet的三大作用域对象
一、web组件之间的跳转方式:
方式一:请求转发(forward)
方式二:URL重定向(redirect)
方式三:请求包含(include)
二、请求转发和URL重定向 1,请求转发:request.getRequestDispatcher(String path).forward(request, response); ■ 请求转发特点: ① 浏览器地址栏不变,依然是/forward/s1,不是目标地址 /forward/s2. ② 请求转发只发送一个请求。 ③ 请求转发实现了共享同一请求中的数据。/forward/s1的请求到达/forward/s2后,只是对/forward/s1的请求进行封装,目的还是为了共享/forward/s1的请求中的数据。 ④ 最终响应给浏览器的是由目标servlet2来决定的。 ⑤ 请求转发不能跨域进行访问,只能跳转到当前应用中的资源。不能脱离根目录下的资源,例如想请求转发到百度。 ⑥ 请求转发可以实现访问WEB-INF目录中的资源(因为其在根目录下)。
2,URL重定向:response.sendRedirect(String url); //参数:url: 表示目标资源地址。 ■ URL重定向特点: ① 浏览器地址发生改变,从/redirect/s1 变成了目标地址 /redirect/s2。 ② URL 重定向发送了两次请求。 ③ 不共享请求中的数据(因为URL 重定向是两次独立的请求)。 ④ 最终响应给浏览器的是由目标servlet2来决定的。 |
三、Servlet的三大作用域对象(目的~共享数据):
1,request:每一次请求都是一个新的request对象,若是在Web组件之间需要共享同一 个请求中的数据,只能使用请求转发。
2, session:每一次会话都是一个新的session对象,若是需要一次会话中进行多个请求的数据共享,只能使用session。
3, application:应用对象,Tomcat 启动到关闭,表示一个应用,在一个应用中有且只有一个application对象,作用域整个web应用,可以实现多次会话之间的数据共享。