日期:2014-05-16  浏览次数:20331 次

JSP Servlet基础知识(二)

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.