《《servlet中的过滤器乱码》培训》由会员分享,可在线阅读,更多相关《《servlet中的过滤器乱码》培训(11页珍藏版)》请在金锄头文库上搜索。
1、SERVLET中的过滤器概述JSP和Servlet相同点JSP和Servlet的不同点:Servlet比较适合作为控制类组件,比如视图控制器等。另外,Servlet还可以作为过滤器、监听器等。Servlet不仅可以动态生成HTML内容,还可以动态生成图形。Servlet处理一些后台业务。JSP则作为显示组件。过滤器过滤器:对客户的请求进行过滤处理,当它处理完成后,它会交给下一个过滤器处理,就这样,客户的请求在过滤链里一个个处理,直到请求发送到目标。过滤器当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功(比如客户端的会话无效),它将把视图派发到指定的错误页面。可以看出,过滤器
2、就像一扇门,客户端要和服务端的某个目标交互,必须通过这扇门。用过滤器解决中文乱码问题问题产生JSP和Servlet对中文支持不好提交提交解决方法转码方法:String name = request.getParameter(param_name);name = new String(name.getBytes(ISO8859_1);缺点:1.从request中取出的每个中文变量都要转换。2.不能动态的改变编码。解决方法过滤器方法:过滤器类(CharacterEncodingFilter):实现javax.servlet.Filter类覆盖doFilter方法public void doFilt
3、er(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException, ServletException if (ignore | request.getCharacterEncoding() = null) if (encoding != null) request.setCharacterEncoding(encoding);chain.doFilter(request, response);解决方法解决不能动态的改变编码:在过滤器类(CharacterEncodingFilter):覆盖init方法,这个方法从web.xml文件中读取配置信息。覆盖构造方法中初始化默认编码覆盖destory方法释放资源解决方法解决不能动态的改变编码:配置web.xml文件配置编码方式配置编码方式配置是否使用这个配置配置是否使用这个配置配置要过滤的配置要过滤的url问题解决了!