原文出处:http://blog.csdn.net/hjjk123/article/details/5459268
客户端对静态文件html和图片的访问其实都是用缺省servlet来完成相应的!
- <servlet-mapping>
- <servlet-name>default</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
这个就是缺省servlet的定义!就是那些不能解析的访问路径都由这个servlet解析!,具体的也就是访问html会通过getservletOutputStream返回ServletOutStream对象
然后由流原封不动的直接输出源文件流!!如果有乱码 可以在这两点考虑解决!
1、因为这个时候编码由html决定!所以检查html页面的编码是否合适
2、自定义一个servlet!
在这个servlet里进行调用html其实本质上时调用defaultServlet!
- public class testServlet extends HttpServlet
- {
- public void service(....)
- {
- response.setCharactorEncoding("gbk");
- Printer out=response.getWriter();
- RequestDispatcher rd=request.getRequestDispatcher ("/test.html");
- rd.include(request,response);
- }
- }
因为Tomcat的缺省servlet首先检查当前HttpServletRequest对象有没有PrinterWriter对象!如果已经调用则使用当前的PrinterWriter对象输出到客户端!!这时就可以间接设置字符编码了!!