网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Designing “query by criteria”.
.Spring WebFlow :重用与抽象框架.
.NetInstallSUNOS.
.学习Java基础知识: 需求.
.J2EE 的结构.
.开源技术:tomcat5.0下配置ssl.
.轻轻松松作兼职(java).
.从XML元素结构到JAVA实现.
.Castor JDO 入门.
.Struts控制器组件简单介绍.
.优化JAVA性能的几种方法.
.toLocaleLowerCase 方法.
.Java Mustang 推动Web.
.WirelessMessagingAPI(2).
.Java 正则表达式之从入门到精通.
.Java能够成为完美的技术平台吗?.
.JavaBean 与 Ejb 的区别.
.JSR-220:EJB 3.0 提交.
.JBuilder开发常用的十九个快捷键.
.手动部署EJB 亲自体验EJB开发流程.

tomcat中文问题--过滤器

发表日期:2008-1-5


转载请注明:http://www.csdn.net/develop/article/17/17204.shtm

作者:ggyy1977@hotmail.com   

                                   使用filter来改变request的编码

在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题!

知道当没有指定request的编码的时候,从客户端得到的数据是iso-8859-1编码的(request.getParameter()得到传递的参数值);

但是我们怎么来改变request的编码呢?

方法有很多种!

 比如:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").forward(request, response);之前修改

request的编码,那么在jsp/jsptoserv/hello.jsp中得到的参数值就是制定的编码的字符。

本文我们使用Filter来修改request的编码!

 

1)首先编写filter类:

package myFilter;


import Java.io.IOException;
import javax.servlet.*;

public class ChangeCharsetFilter implements Filter {


    protected String encoding = null;/////要制定的编码,在web.XML中配置

    protected FilterConfig filterConfig = null;

        public void destroy() {

        this.encoding = null;
        this.filterConfig = null;

    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 throws IOException, ServletException {

            if (request.getCharacterEncoding() == null){
            String encoding = getEncoding();////得到指定的编码名字
            if (encoding != null)
                request.setCharacterEncoding(encoding);////设置request的编码
        }

         chain.doFilter(request, response);///有机会执行下一个filter

    }

    public void init(FilterConfig filterConfig) throws ServletException {

          this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");///得到在web.xml中配置的编码
      }


    protected String getEncoding() {

        return (this.encoding);///得到指定的编码

    }


}


2。编辑web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

上一篇:事件源生成模式 人气:636
下一篇:用Validator检查你的表单 人气:735
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐