关于对html静态文件访问解析以及RequestDispatcher.include

来源:互联网 发布:教育局网络信息安全 编辑:程序博客网 时间:2024/06/06 15:48

客户端对静态文件html和图片的访问其实都是用缺省servlet来完成相应的!

 

这个就是缺省servlet的定义!就是那些不能解析的访问路径都由这个servlet解析!,具体的也就是访问html会通过getservletOutputStream返回ServletOutStream对象

然后由流原封不动的直接输出源文件流!!如果有乱码 可以在这两点考虑解决!

1、因为这个时候编码由html决定!所以检查html页面的编码是否合适

2、自定义一个servlet!

   在这个servlet里进行调用html其实本质上时调用defaultServlet!

 

 因为Tomcat的缺省servlet首先检查当前HttpServletRequest对象有没有PrinterWriter对象!如果已经调用则使用当前的PrinterWriter对象输出到客户端!!这时就可以间接设置字符编码了!!

 

下面再介绍下RequestDisptcher的include......

使用include方法进行转向时,servlet容器仍然保持其初始的Url路径和参数信息!!

也就是说如果在被调用者程序中检索访问路径时是调用者的路径!而不是被调用的!!

 例如:HttpServletRequest.getRequestURL()!

 

另外

ServletRequest 接口中定义了 getRequestDispatcher()方法

ServletContext接口中也有这个方法

  传递给这个方法的路径参数必须是以“/”开头表示当前web应用程序的根目录

区别在与

ServletRequest的这个方法的参数除了可以采用“/”开头的路径字符串  还可以采用非“/”开头的相对路径!!

但RequestDispatcher只能包含当前web应用程序的资源!!所以forward和include方法只能在同一个web应用程序中传递请求!!

 

这两个方法都可视web-inf文件夹下的资源文件!!