日期:2014-05-16 浏览次数:20387 次
16.??? 请求分派和重定向
a)????? 请求分派
RequestDispatcher view=request.getRequestDispatcher(“***.jsp”);// 为 JSP 实例化一个请求分派器
view.forward(request , response);// 使用请求分派器要求容器准备好 JSP ,并向 JSP 发送请求和响应
b)????? 重定向
response.sendRedirect(“URL”);
其中 URL 是相对的 URL ,有两种类型:前面有斜线和没有斜线
例: 客户原来的请求是 ? http://www.wick.com/myApp/cool/bar.do ,请求到达名为“ bar.do ”的 Servlet 时,该 Servlet 中会基于一个相对的 URL 来调用 sendRedirect() 。 不带斜线: sendRedirect(“foo/stuff.html”); 容器会相对于原先的请求 URL 建立完整的 URL ,即 ? http://www.wick.com/myApp/cool/foo/stuff.html
带斜线的: sendRedirect(“/foo/stuff.html”); 容器会相对于 Web 应用本身建立完整的 URL ,而不是相对于原来的请求 URL ,即: http://www.wick.com/foo/stuff.html
??? 请求分派是在服务器端发生,浏览器地址上的 URL 没有改变 ( 相当于被请求的 Servlet 把请求传递给服务器上的另一个组件,而客户并不知道 ) ;重定向是在客户端进行,用户会在浏览器地址栏中看到新的 URL( 相当于服务器又告诉浏览器去访问另一个 URL) 。
?
17.