javaWeb第四天~请求转发和重定和Servlet的三大作用域对象

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目录中的资源(因为其在根目录下)。

 

2URL重定向response.sendRedirect(String url); //参数:url: 表示目标资源地址。

■   URL重定向特点:

①    浏览器地址发生改变,从/redirect/s1 变成了目标地址 /redirect/s2。

②    URL 重定向发送了两次请求

③    不共享请求中的数据因为URL 重定向是两次独立的请求)。

④    最终响应给浏览器的是由目标servlet2来决定的。

   相当于把目标地址拷贝到浏览器地址栏,敲回车

⑤    URL重定向可以进行跨域访问,可以访问其他应用中的资源。

⑥    URL 重定向不能访问WEB-INF目录中的资源。

 

 

三、Servlet的三大作用域对象(目的~共享数据)

 

1,request每一次请求都是一个新的request对象若是在Web组件之间需要共享同一 个请求中的数据,只能使用请求转发。

2, session每一次会话都是一个新的session对象若是需要一次会话中进行多个请求的数据共享,只能使用session。

3, application:应用对象,Tomcat 启动到关闭,表示一个应用,在一个应用中有且只有一个application对象,作用域整个web应用,可以实现多次会话之间的数据共享。

posted @ 2021-11-15 21:15  一乐乐  阅读(69)  评论(0编辑  收藏  举报