1、我做一个jsp/servlet+javabean网站,数据库操作全部使用preparedstatement,
那么,我还用得着过滤字符串吗?
2、只在解决乱码问题时用过filter,但那时拷贝tomcat的,哪位大侠能告知我怎么自己写过滤器filter吗?

解决方案 »

  1.   

    public class SetCharsetEncodingFilter implements Filter {
        private String encoding;    public String getEncoding() {
            return encoding;
        }    public void setEncoding(String encoding) {
            this.encoding = encoding;
        }    public void destroy() {
            encoding = null;
            //To change body of implemented methods use File | Settings | File Templates.
        }    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            if(encoding!=null) servletRequest.setCharacterEncoding(encoding);
            if(encoding!=null) servletResponse.setCharacterEncoding(encoding);
            filterChain.doFilter(servletRequest,servletResponse);
        }    public void init(FilterConfig filterConfig) throws ServletException {
            encoding = filterConfig.getInitParameter("encoding");
        }
    }我写的一个,LZ可以看看。这里的encoding是在web.xml配置filter时候的parameter。
    我是这样配置的:
    <filter>
            <filter-name>SetCharsetEncodingFilter</filter-name>
            <display-name>SetCharsetEncodingFilter</display-name>
            <description>SetCharsetEncodingFilter</description>
            <filter-class>com.yesky.utils.SetCharsetEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>SetCharsetEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      

  2.   

    to wufengdao(刀刀) ( ) 信誉:100 
    =====================================
    可是我不明白这里的语法,也不知哪个方法是干什么用的,能大概帮我讲解一下吗?
      

  3.   

    路过.....友情up.....//--------------------送个笑话-------------------
    一位迷人的女郎夏天开着车子到全国旅行,由于天气实在太热,她全身已经香汗淋漓。开到某个乡下地方时,她看到一座水池,于是她决定停车游个水,凉凉身,她脱光跳进水中,享受几分钟的清凉后,突然发现两位农夫躲在树丛下偷看。由于她的衣服摆在水池的另一边,不过靠近她身边有个澡盆,于是她拿起澡盆遮住身子,往那两位农夫走去。
      “你们两个王八蛋,难道没别事好做吗?”她咆哮道,“你们知道我怎么想吗?”
      “是的,女士。”个子较高的一位说,“你一定想问我们什么地方可以补你那浴盆上的大窟窿!” www.xiaohua007.com
      

  4.   

    我只是不明白下面这两个方法:
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            if(encoding!=null) servletRequest.setCharacterEncoding(encoding);
            if(encoding!=null) servletResponse.setCharacterEncoding(encoding);
            filterChain.doFilter(servletRequest,servletResponse);
        }    public void init(FilterConfig filterConfig) throws ServletException {
            encoding = filterConfig.getInitParameter("encoding");
        }
    ============
    servletRequest.setCharacterEncoding(encoding);里的servletRequest代表什么?
      

  5.   

    doFilter()这个方法就是设置request和respose的数据的编码方式,这样的提交的数据和你向客户端返回的数据都作了编码(我配置的都是用utf-8编码),从而统一编码,解决乱码问题。
    至于init()方法,是加载在web.xml里面配置的filter参数。
    大概就是这样的,详细的流程楼主多看看资料,自己做一下,体会一下,其实很简单的。