RequestDispatcher.include方法

 
  用于将RequestDispatcher对象封装的资源内容作为当前相应的内容的一部分包含进来,从而
实现动态包含。被包含的Servlet程序不能改变响应消息的状态码和响应头,如果存在这样的语句,这些
语句的执行结果将被忽略。在被调用者程序中检索当前访问路径时,得到的结果是调用者程序的URL路径
和而不是被调用者自己的URL路径。
­
如果RequestDispatcher对象封装的是静态的HTML文件,并且有中文字符。直接访问这个静态
网页,则将返回"Content-Type: text/html",如果在Servlet中把
response.setContentType("text/html; charset=GBK")注销掉,则会看到HTML标记全部被打印出来
为什么会出现这样的情况?
凡是在web.xml文件中找不到匹配<servlet-mapping>元素的URL访问的请求,也就是所有其它
Servlet都不处理的请求,都将叫给Tomcat中设置的一个缺省Servlet处理,客户端对静态HTML文件和
图片的访问其实都是由缺省Servlet来完成相应的。所以调用静态的HTML文件与调用另外一个Servlet程序
在本质上没有什么区别
­
包含静态HTML文件时,Tomcat的缺省Servlet首先检查当前HttpServletResponse对象是否已经
调用了getWriter方法返回了PrintWriter对象,如果已经调用,则使用getWriter方法返回的PrintWriter
对象来输出静态HTML文件中的内容,否则,它将调用getOutputStream方法返回的ServeltOutputStream
对象将静态HTML文件中的内容按字节流的形式原封不动地写入到客户端
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值