学习笔记_第一个strut程序_之中文乱码,过滤器解决方案及过程总结
1、 第一次碰到加过滤器的过程,就是在学习struct1的时候,中文乱码
几个需要注意的关键字
2、什么叫package
所谓package就是打包的意思,就是说以下程序都是处于这个包内,所以一开始你看见src下拉菜单下面都是一些自己建的就是为了分开结构的作用
3、 建好了,就可以在包的下面建子文件,可以是class类文件,也可以是各种jsp,servlet文件。
4、 任何servlet文件或者显示界面文件都要在web.xml文件中进行配置,才能加载进去,而且是自动加载
5、 写代码的时候对于提醒的地方,可以使用他的建议,比如写Filer的时候书上没给import.Filter导包,导致程序无法进行,这时才发现压根就没有这些头文件,所以要适当的加上这些文件。
下面列下Filer中文乱码步骤
1、 建立一个Package
2、 在Package下面建一个类文件,就是书上的那个类(注意书上的没加头文件)
3、 Web.xml中在中间加上几行配置代码就可以了(注意是配置文件中间,不是直接在</web-app>后面加)
类CharacterEncodingFilter:
1 package com.helloweenvsfei.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter; 5 import javax.servlet.FilterChain; 6 import javax.servlet.FilterConfig; 7 import javax.servlet.ServletException; 8 import javax.servlet.ServletRequest; 9 import javax.servlet.ServletResponse; 10 11 public class CharacterEncodingFilter implements Filter { 12 13 private String characterEncoding; 14 private boolean enabled; 15 16 17 public void init(FilterConfig config) throws ServletException { 18 19 characterEncoding = config.getInitParameter("characterEncoding"); 20 21 enabled = "true".equalsIgnoreCase(characterEncoding.trim()) 22 || "1".equalsIgnoreCase(characterEncoding.trim()); 23 } 24 25 26 public void doFilter(ServletRequest request, ServletResponse response, 27 FilterChain chain) throws IOException, ServletException { 28 29 if (enabled || characterEncoding != null) { 30 request.setCharacterEncoding(characterEncoding); 31 response.setCharacterEncoding(characterEncoding); 32 } 33 34 chain.doFilter(request, response); 35 } 36 37 public void destroy() { 38 characterEncoding = null; 39 } 40 }
web.xml添加进去
1 <filter> 2 <filter-name>characterEncodingFilter</filter-name> 3 <filter-class> 4 com.helloweenvsfei.filter.CharacterEncodingFilter 5 </filter-class> 6 <init-param> 7 <param-name>characterEncoding</param-name> 8 <param-value>UTF-8</param-value> 9 </init-param> 10 <init-param> 11 <param-name>enable</param-name> 12 <param-value>true</param-value> 13 </init-param> 14 </filter> 15 16 <filter-mapping> 17 <filter-name>characterEncodingFilter</filter-name> 18 <url-pattern>/*</url-pattern> 19 </filter-mapping>
每天都做更好的自己,不纠结于输赢成败