- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 使用下面的例子来讲解在程序中使用匿名输入输出流所带来的隐患! import java.io.*; public class Test2 { public static void main(String [] args) throws Exception { for(;;) { new FileInputStream(d:\\1.txt).close(); } } } * 如果想跳转或引入一个资源,应将该资源包装成RequestDispatcher对象。怎样获得RequestDispatcher对象呢? * * 相对路径的问题:第二个人输出的内容是说找他哥哥,可以浏览器记住访问的是第一个人,浏览器自然认为要找第一个人的哥哥。 在讲forward时,要强调将forward的资源放在WEB-INF/JSP之类的目录中,以便外界无法直接访问这个JSP页面,例如,struts中的JSP页面就尽量要这么放。 * * Html网页不是用dreamweaver做成的! 你访问我,我调用报表工具生成html文件,然后把请求转发给这个生成的HTML文件。 请求重定向与请求转发 RequestDispatcher接口 用include方法实现资源包含 用forward方法实现请求转发 请求转发的运行流程 用sendRedirect方法实现请求重定向 请求重定向的运行流程 请求重定向与请求转发的比较 缺省Servlet的缓存问题 RequestDispatcher接口 RequestDispatcher实例对象是由Servlet引擎创建的,它用于包装一个要被其他资源调用的资源(例如,Servlet、HTML文件、JSP文件等),并可以通过其中的方法将客户端的请求转发给所包装的资源。 RequestDispatcher接口中定义了两个方法:forward方法和include方法。 forward和include方法接收的两个参数必须是传递给当前Servlet的service方法的那两个ServletRequest和ServletResponse对象,或者是对它们进行了包装的ServletRequestWrapper 或ServletResponseWrapper对象。 获取RequestDispatcher对象的方法: ServletContext.getRequestDispatcher (参数只能是以“/”开头的路径) ServletContext.getNamedDispatcher ServletRequest.getRequestDispatcher (参数可以是不以“/”开头的路径) 用include方法实现资源包含 RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能。 被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略。 在调用RequestDispatcher.include方法时,Servlet容器不会去调整HttpServletRequest对象中的信息,HttpServletRequest对象仍然保持其初始的URL路径和参数信息。 ?动手体验:了解RequestDispatcher.include方法的应用细节 缺省Servlet如何创建响应正文 ServletOutputStream ostream = null; PrintWriter writer = null; …… try { /* 如果抛出了异常,说明前面已经调用过getWriter方法, 则在异常处理代码中再次调用getWriter方法对writer变量进行赋值。 */ ostream = response.getOutputStream(); } catch (IllegalStateException e) { /*只有那些文本内容才可以用 PrintWriter对象进行转换输出*/ if ( (contentType == null) || (contentType.startsWith(text)) ) { writer = response.getWriter(); } else { throw e; } } …… //如果已经对writer变量赋值,则执行else从句 if (ostream != null) { //将资源中的内容按字节流
您可能关注的文档
最近下载
- DB 5113 T 54-2025 《两栖动物环境DNA识别技术规范》.docx VIP
- 2024年全国无线电监测技术演练理论知识考试题库-下(多选、判断题汇总).docx VIP
- 分布式工商业光伏项目财务经济测算模型.xlsx VIP
- 动物实验操作.pptx VIP
- DB 5113 T 53-2025《南充市两栖动物监测技术规范》.docx VIP
- PEP三年级英语上册Unit 3《PartB(3) Start to read》教学课件.pptx
- 《滴虫性阴道炎》课件.ppt VIP
- 新课标下综合实践在初中生物中的有效开展.pptx VIP
- 堆排序.ppt VIP
- 足球竞赛规则.ppt.ppt
文档评论(0)