我从jsp页面插入数据保存到sql2000里。输入的中文都变成一串“?????”在网上看到一些解决方法http://topic.csdn.net/u/20090426/10/9f6dd417-7222-4f27-98fe-0c1ac8385620.html觉得这个办法适合我  //处理向数据库插入数据时出现乱码的情况 
  public void reset(ActionMapping arg0, HttpServletRequest arg1) { 
      try{ 
          arg1.setCharacterEncoding("gbk"); 
      }catch(Exception e){ 
          e.printStackTrace(); 
      } 
  }
我有三个类 DAO bean action 和相关的jsp页面这个reset() 方法应该放在哪里呢。具体需要配置哪些地方呢?谢谢。

解决方案 »

  1.   

    理论上应该和filter的doFilter方法一样的。倒不如你创建一个filter进行过滤。
    1.创建一个Filter,只要实现import javax.servlet.Filter接口就可以package my.util;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    //filtera类名
    public class filtera implements Filter { public void destroy() {
    // TODO Auto-generated method stub } //过滤方法
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    arg0.setCharacterEncoding("GBK");
    arg1.setCharacterEncoding("GBK");
    arg2.doFilter(arg0, arg1);
    } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}
    2.配置web.XML<filter>
        <filter-name>aaa</filter-name>
        <filter-class>my.util.filtera </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>aaa</filter-name>
        <url-pattern>/*</url-pattern>
    </filtert-mapping>
    这样就可以了。
    再也不需要转换格式了
      

  2.   

    直接用过滤吧,至于方法liutaixin已经说得很清楚了.
    如果你现有的框架中使用了Spring的话也可以这样过滤:<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>通过以下方式你可以转换字符串的编码格式:
    String a = new String("test".getBytes("ISO8859-1"), "UTF-8");