客户端对静态文件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文件夹下的资源文件!!