Jsp中文乱码处理及过滤器的使用主讲:曹莹Jsp中中文乱码的处理1.转换成字节数组之后,再重新生成字符串2.对每一个JSP页面使用request.setCharacterEncoding(“GBK)3.使用过滤器过滤实现中文乱码4.先编码然后再解码javaurl的encoder和decoderjava.net.URLEncoder和java.net.URLDecoder过滤器类的定义过滤器类必须实现javax.servlet.Filter该类必须实现三个方法:init(FilterConfigarg0)destroy()doFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)利用过滤器修改中文乱码packagefilter;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.*;publicclassModifyCodeFilterimplementsFilter{protectedFilterConfigfilterConfig;privateStringtargetEncoding="GBK";publicvoiddestroy(){this.filterConfig=null;}publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{HttpServletRequestsrequest=(HttpServletRequest)arg0;try{srequest.setCharacterEncoding(this.targetEncoding);arg2.doFilter(arg0,arg1);}catch(Exceptione){e.printStackTrace();}}publicvoidinit(FilterConfigarg0)throwsServletException{this.filterConfig=arg0;this.targetEncoding=arg0.getInitParameter("code");}}web.xml项目配置文件的设置
modifycodefilter.ModifyCodeFiltereng_chinacodeGBK
modifycode/*利用过滤器修改留言中的非法信息packagefilter;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.*;publicclassContentFilterimplementsFilter{privateFilterConfigfilterconfig=null;Stringstr[]={"我们的","你们的","他们的"};Stringcontent="";publicvoiddestroy(){this.filterconfig=null;}publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{HttpServletRequesthsrequest=(HttpServletRequest)arg0;content=hsrequest.getParameter("msgcontent");try{if(content!=null){inti=0;for(i=0;i
contentmodifycontentmodifycontentmodifyfilter.ContentFiltercontentmodify/*