- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
技术交流—Servlet服务器端转向问题
文档编号 LBS-Servlet-01 版 本 号 V1.0 发 放 号 F01 受控状态
Servlet服务器端转向问题
编制部门: 研发部 编制人: 徐亚涛 编制日期: 2008-12-26 审核人: 审核日期: 批准人: 批准日期:
北京利博赛社保信息技术有限公司发布
变 更 记 录
序号 修改条款 修改单号 页号 修改人/日期 批准人/日期 实施日期
注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。
目 录
1 背景 4
2 服务器端的重定向相关类 4
3 服务器端的重定向方式 5
3.1 HttpServletResponse.sendRedirect()方法 5
3.2 RequestDispatcher.forward()方法 5
4 如何得到RequestDispatcher 6
5 如何选择 7
6 验证容器内跳转 8
6.1 A方法验证结果 8
6.2 B方法验证结果 10
6.3 C方法验证结果 11
6.4 结论 12
背景
通常,在一个设计良好的Web应用中,都会综合使用Servlet和JSP技术。Servlet控制业务流转,JSP则负责业务处理结果的显示。此时,将大量用到重定向技术。
重定向技术可以分为两类,一类是客户端重定向,一类是服务器端重定向。客户端重定向可以通过设置特定的HTTP头,或者写JavaScript脚本实现。本文主要探讨服务器端重定向技术的实现。
服务器端的重定向相关类
服务器端的重定向技术涉及到javax.servlet.ServletContext、javax.servlet.RequestDispatcher、javax.servlet.http.ServletRequest、javax.servlet.http.ServletResponse等几个接口。图1是这几个接口之间的关系图。
图表 1重定向相关类关系图
服务器端的重定向方式
服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法。下面对这两种方式进行介绍。
HttpServletResponse.sendRedirect()方法
HttpServletResponse接口定义了可用于转向的sendRedirect()方法。代码如下:
public void sendRedirect(java.lang.String location)throws java.io.IOException 这个方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect()也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。
RequestDispatcher.forward()方法
RequestDispatcher是一个Web资源的包装器,可以用来把当前request传递到该资源,或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法,参见如下代码:
public interface RequestDispatcher {
void forward(ServletRequest request, ServletResponse response);
void include(ServletRequest request, ServletResponse response);
} forward()方法将当前的request和response重定向到该RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个Servlet
您可能关注的文档
- 手缝方向盘套的流程和技巧.doc
- 手足口病防控知识测试题(村医)及答案.doc
- 打印七年级历史上册期末复习提纲及答案.doc
- 打印电气710章复习题及答案.doc
- 打印速度变慢的原因及解决办法.doc
- 打地鼠的单片机设计.doc
- 打车软件数学建模.doc
- 打造高效课堂的22条建议.doc
- 打高二化学下学期化学单元测试(三到五章)新人教版选修5.doc
- 托班教案.doc
- 2025至2030全球与中国优质棉市场销售渠道及未来经营格局研究报告.docx
- 2025至2030冷冻架行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030碳密封圈行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国移动式建筑起重机行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国房间分隔器行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030全球及中国农业旅游行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030产学研合作创新行业市场发展现状及发展趋势与投资报告.docx
- 2025至2030中国血管内温度管理系统行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国3D打印假体行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030铝箔容器行业发展趋势分析与未来投资战略咨询研究报告.docx
文档评论(0)