电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Servlet中的重定向和请求分派VIP免费

Servlet中的重定向和请求分派_第1页
1/4
Servlet中的重定向和请求分派_第2页
2/4
Servlet中的重定向和请求分派_第3页
3/4
1.重定向在Servlet中的接口HttpServletRequest提供了sendRedirect()方法用于生成302相应码和Location响应头,从而通知客户端去重新访问Location响应头指定的URL,其定义如下:publicvoidsendRedirect(Stringlocation)throwsIOException;对于sendRedirect()方法不仅可以重定向到当前应用程序中的其他资源,也可重定向到一个容器中的其他应用程序中的资源。eg://Servlet1.javapackagecom.lkh.redrect;importjava.io.IOException;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassServlet1extendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubthis.doPost(request,response);}@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubresponse.sendRedirect("Servlet2");//重定向到指定路径的资源//RequestDispatcherdis=request.getRequestDispatcher("Servlet2");//dis.forward(request,response);}}//Servlet2.javapackagecom.lkh.redrect;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassServlet2extendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubthis.doPost(request,response);}@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubresponse.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();out.println("");out.println("servlet2");out.println("");out.println("从Servlet2中获取请求参数name的值:");out.println(request.getParameter("name"));out.println("");out.println("");}}同时要在项目中的web.xml对Servlet进行声明:Servlet1com.lkh.redrect.Servlet1Servlet1/Servlet1Servlet2com.lkh.redrect.Servlet2Servlet2/Servlet22.请求分派在Servlet中定义一个接口RequestDispatcher其方法如下:publicvoidforward(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException;publicvoidinclude(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException;对于forward()方法用于将请求转发到RequestDispatcher实例封装的资源,include()方法用于将RequestDispatcher实例封装的资源作为当前响应的一部分包含进来。获取RequestDispatcher实例的方式有两种:(1)调用ServletContext接口提供的getRequestDispatcher(Stringurl)方法(2)调用ServletRequest接口提供的getRequestDispatcher(Stringurl)方法ServletContext接口提供的getRequestDispatcher(Stringurl)方法中的路径参数必须以”/"开头ServletRequest接口提供的getRequestDispatcher(Stringurl)方法中的路径参数可以是相对路径也可为绝对路径。eg:只要将上面中的Servlet1.java中的doPost()代码改为RequestDispatcherdis=request.getRequestDispatcher("Servlet2");dis.forward(request,response);3.重定向也和请求分派的比较:<1>请求分派只能将请求转发给同一个web应用中的其他组件,而重定向不仅可以定向到当前应用程序中的其他资源,也可重定向到其他站点的资源上<2>重定向的访问过程结束后,浏览器的地址栏显示的URL会发生改变,变成重定向的目标URL,而请求分派的浏览器地址栏保持初始的URL<3>请求分派的发起者和被调者之间共享相同的request实例和response实例,属于同一个“请求/响应”而重定向的发起者和被调用者使用各自的request实例和response实例,各自属于独立的“请求/响应”过程。

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Servlet中的重定向和请求分派

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部