天天看点

response的页面重定向与request的页面跳转的区别response的页面重定向与request的页面跳转的区别

response的页面重定向与request的页面跳转的区别

response:

response是服务器对客户端的反馈,其对页面重定向的流程是:当客户端向服务器发起请求时,服务器重新给客户端一个URL地址,让客户端重新发起一个新的请求,在这个过程中,客户端第一次请求所携带的头信息将消失,在重定向之后而且地址栏显示的是重定向的页面,这是一种客户端行为。

可以通过sendRedirect重定向到服务器任何一个URL。若使用绝对路径,其中的根路径是服务器根目录,如URL="/xxx",则实际定向到http://localhost:8080/xxx。一般可使用request.getContextPath() + "/xxx"来访问webapp根目录下的资源。 注意:通过重定向无法访问WEB-INF中的资源,因为重定向是客户端行为,相当于浏览器重新输入URL,而WEB-INF中的内容无法通过输入URL来访问。 代码为:

response.sendRedirect("test.jsp"); 
           

request:

request是客户端对服务器的请求,其跳转页面的流程是,当客户端向服务器发起跳转请求时,服务器帮助客户端把跳转的页面加载到当前页面中来,地址栏显示的还是跳转之前的页面,而跳转之前客户端发起请求的头信息还是存在的。这是一种服务器行为。所以经过多次<jsp:forward page="">指令后,request中存储的的属性还是保留的。通过Forward只能发送请求道webapp下的资源。

若使用绝对路径,其中根路径是相对于webapp的,URL="/xxx",则实际发送请求到http://localhost:8080/webapp/xxx。

代码为:

request.getRequestDispatcher("test.jsp").forward(request, response);
           

或者使用标签:

<jsp:forward page="test.jsp"/>
           

通过这两种方法,可以完成servlet与JSP之间的通信。

继续阅读