收藏 分销(赏)

Servlet中的重定向和请求分派.doc

上传人:pc****0 文档编号:6109875 上传时间:2024-11-28 格式:DOC 页数:4 大小:33KB 下载积分:10 金币
下载 相关 举报
Servlet中的重定向和请求分派.doc_第1页
第1页 / 共4页
Servlet中的重定向和请求分派.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
1.重定向     在Servlet中的接口HttpServletRequest提供了sendRedirect()方法用于生成302相应码和Location响应头,从而通知客户端去重新访问Location响应头指定的URL,其定义如下:     public void sendRedirect(String location ) throws IOException; 对于sendRedirect()方法不仅可以重定向到当前应用程序中的其他资源,也可重定向到一个容器中的其他应用程序中的资源。   eg: //Servlet1.java package com.lkh.redrect; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Servlet1 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.sendRedirect("Servlet2"); //重定向到指定路径的资源 // RequestDispatcher dis=request.getRequestDispatcher("Servlet2"); // dis.forward(request, response); } } //Servlet2.java package com.lkh.redrect; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Servlet2 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println(" <head><title>servlet2</title></head>"); out.println(" <body>"); out.println("从Servlet2中获取请求参数name的值:"); out.println(request.getParameter("name")); out.println(" </body>"); out.println("</html>"); } } 同时要在项目中的web.xml对Servlet进行声明: <servlet> <servlet-name>Servlet1</servlet-name> <servlet-class>com.lkh.redrect.Servlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/Servlet1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Servlet2</servlet-name> <servlet-class>com.lkh.redrect.Servlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet2</servlet-name> <url-pattern>/Servlet2</url-pattern> 2.请求分派     在Servlet中定义一个接口RequestDispatcher     其方法如下:     public void forward(ServletRequest request,ServletResponse response) throws ServletException,IOException;     public void include(ServletRequest request,ServletResponse response) throws ServletException,IOException;     对于forward()方法用于将请求转发到RequestDispatcher实例封装的资源,include()方法用于将RequestDispatcher实例封装的资源作为当前响应的一部分包含进来。     获取RequestDispatcher实例的方式有两种:     (1)调用ServletContext接口提供的getRequestDispatcher(String url) 方法     (2)调用ServletRequest接口提供的getRequestDispatcher(String url) 方法     ServletContext接口提供的getRequestDispatcher(String url) 方法中的路径参数必须以”/"开头     ServletRequest接口提供的getRequestDispatcher(String url) 方法中的路径参数可以是相对路径也可为绝对路径。     eg:     只要将上面中的Servlet1.java 中的doPost()代码改为     RequestDispatcher dis=request.getRequestDispatcher("Servlet2");     dis.forward(request, response); 3.重定向也和请求分派的比较:     <1>请求分派只能将请求转发给同一个web应用中的其他组件,而重定向不仅可以定向到当前应用程序中的其他资源,也可重定向到其他站点的资源上     <2>重定向的访问过程结束后,浏览器的地址栏显示的URL会发生改变,变成重定向的目标URL,而请求分派的浏览器地址栏保持初始的URL     <3>请求分派的发起者和被调者之间共享相同的request实例和response实例,属于同一个“请求/响应”而重定向的发起者和被调用者使用各自的request实例和response实例,各自属于独立的“请求/响应”过程。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服