<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 100  文章 - 50  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    我收藏的一些文章!

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    首先,列出我用到的參考資料吧:

    資料一來自:http://magicgod.javaeye.com/blog/146537

    資料二來自:http://blog.sina.com.cn/s/blog_56000153010005iq.html

    我就是根據上面的兩個資料,寫了一個FILTER和一個JAVA 類,具體如下:

    FILTER: SpecialCharacterFilter

    view plaincopy to clipboardprint?
     
    import java.io.IOException;  
     
    import java.util.Enumeration;  
     
    import java.util.HashMap;  
     
     
     
    import javax.servlet.Filter;  
     
    import javax.servlet.FilterChain;  
     
    import javax.servlet.FilterConfig;  
     
    import javax.servlet.ServletException;  
     
    import javax.servlet.ServletRequest;  
     
    import javax.servlet.ServletResponse;  
     
    import javax.servlet.http.HttpServlet;  
     
    import javax.servlet.http.HttpServletRequest;  
     
     
     
     
     
    public class SpecialCharacterFilter extends HttpServlet implements Filter {  
     
     
     
        protected FilterConfig config;  
     
     
     
        public void destroy() {  
     
        }  
     
     
     
        public void doFilter(ServletRequest req, ServletResponse res,  
     
                FilterChain chain) throws IOException, ServletException {  
     
            System.out.println("[SpecialCharacterFilter] : doFilter *************");  
     
            HttpServletRequest request = (HttpServletRequest)req;  
     
            HashMap<String, String[]> m = new HashMap(request.getParameterMap());  
     
            HashMap<String, String[]> mm = new HashMap<String, String[]>();  
     
            Enumeration<String> enu = request.getParameterNames();  
     
            if(m.size() > 0 && processParameters(m, enu, mm)) {  
     
                ParameterRequestWrapper wrapRequest = new ParameterRequestWrapper(request, mm);  
     
                chain.doFilter(wrapRequest, res);  
     
            } else {  
     
                chain.doFilter(req, res);  
     
            }  
     
        }  
     
     
     
        public void init(FilterConfig arg0) throws ServletException {  
     
            this.config = arg0;  
     
        }  
     
     
     
        public boolean processParameters(HashMap<String, String[]> m, Enumeration enu, HashMap<String, String[]> mm) {  
     
            System.out.println("[SpecialCharacterFilter] : processParameters *************");  
     
            if (m != null && enu != null) {  
     
                while (enu.hasMoreElements()) {  
     
                    String key = (String)enu.nextElement();  
     
                    String [] values = (String [])m.get(key);   
     
                    for(int i = 0; i < values.length; i ++) {  
     
                        if (values[i] != null) {  
     
                            values[i] = values[i].trim();  
     
                            values[i] = values[i].replaceAll("&", "&");  
     
                            values[i] = values[i].replaceAll("<", "<");  
     
                            values[i] = values[i].replaceAll(">", ">");  
     
                            values[i] = values[i].replaceAll("\t", "    ");  
     
                            values[i] = values[i].replaceAll("\r\n", "\n");  
     
                            values[i] = values[i].replaceAll("\n", "<br>");  
     
                            values[i] = values[i].replaceAll("  ", "  ");  
     
                            values[i] = values[i].replaceAll("'", "'");  
     
                            values[i] = values[i].replaceAll("\\\\", "\");  
     
                        }  
     
                    }  
     
                    mm.put(key, values);  
     
                }  
     
            }  
     
            return true;  
     
        }  
     
     
     


    import java.io.IOException;

    import java.util.Enumeration;

    import java.util.HashMap;

     

    import javax.servlet.Filter;

    import javax.servlet.FilterChain;

    import javax.servlet.FilterConfig;

    import javax.servlet.ServletException;

    import javax.servlet.ServletRequest;

    import javax.servlet.ServletResponse;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

     

     

    public class SpecialCharacterFilter extends HttpServlet implements Filter {

     

     protected FilterConfig config;

     

     public void destroy() {

     }

     

     public void doFilter(ServletRequest req, ServletResponse res,

       FilterChain chain) throws IOException, ServletException {

      System.out.println("[SpecialCharacterFilter] : doFilter *************");

      HttpServletRequest request = (HttpServletRequest)req;

      HashMap<String, String[]> m = new HashMap(request.getParameterMap());

      HashMap<String, String[]> mm = new HashMap<String, String[]>();

      Enumeration<String> enu = request.getParameterNames();

      if(m.size() > 0 && processParameters(m, enu, mm)) {

       ParameterRequestWrapper wrapRequest = new ParameterRequestWrapper(request, mm);

       chain.doFilter(wrapRequest, res);

      } else {

       chain.doFilter(req, res);

      }

     }

     

     public void init(FilterConfig arg0) throws ServletException {

      this.config = arg0;

     }

     

     public boolean processParameters(HashMap<String, String[]> m, Enumeration enu, HashMap<String, String[]> mm) {

      System.out.println("[SpecialCharacterFilter] : processParameters *************");

      if (m != null && enu != null) {

       while (enu.hasMoreElements()) {

        String key = (String)enu.nextElement();

        String [] values = (String [])m.get(key);

        for(int i = 0; i < values.length; i ++) {

         if (values[i] != null) {

          values[i] = values[i].trim();

          values[i] = values[i].replaceAll("&", "&");

          values[i] = values[i].replaceAll("<", "<");

          values[i] = values[i].replaceAll(">", ">");

          values[i] = values[i].replaceAll("\t", "    ");

          values[i] = values[i].replaceAll("\r\n", "\n");

          values[i] = values[i].replaceAll("\n", "<br>");

          values[i] = values[i].replaceAll("  ", "  ");

          values[i] = values[i].replaceAll("'", "'");

          values[i] = values[i].replaceAll("\\\\", "\");

         }

        }

        mm.put(key, values);

       }

      }

      return true;

     }

     

    }
    view plaincopy to clipboardprint?
    JAVA 類:ParameterRequestWrapper  

    JAVA 類:ParameterRequestWrapper view plaincopy to clipboardprint?
    <PRE class=java name="code">import java.util.Enumeration;  
     
    import java.util.Map;  
     
    import java.util.Vector;  
     
     
     
    import javax.servlet.http.HttpServletRequest;  
     
    import javax.servlet.http.HttpServletRequestWrapper;  
     
     
     
    public class ParameterRequestWrapper extends HttpServletRequestWrapper {  
     
     
     
        private Map params;  
     
     
     
        public ParameterRequestWrapper(HttpServletRequest request, Map newParams) {  
     
            super(request);  
     
            this.params = newParams;  
     
        }  
     
     
     
        public Map getParameterMap() {  
     
            return params;  
     
        }  
     
     
     
        public Enumeration getParameterNames() {  
     
            Vector l = new Vector(params.keySet());  
     
            return l.elements();  
     
        }  
     
     
     
        public String[] getParameterValues(String name) {  
     
            Object v = params.get(name);  
     
            if (v == null) {  
     
                return null;  
     
            } else if (v instanceof String[]) {  
     
                return (String[]) v;  
     
            } else if (v instanceof String) {  
     
                return new String[] { (String) v };  
     
            } else {  
     
                return new String[] { v.toString() };  
     
            }  
     
        }  
     
     
     
        public String getParameter(String name) {  
     
            Object v = params.get(name);  
     
            if (v == null) {  
     
                return null;  
     
            } else if (v instanceof String[]) {  
     
                String[] strArr = (String[]) v;  
     
                if (strArr.length > 0) {  
     
                    return strArr[0];  
     
                } else {  
     
                    return null;  
     
                }  
     
            } else if (v instanceof String) {  
     
                return (String) v;  
     
            } else {  
     
                return v.toString();  
     
            }  
     
        }  
     
    }  
    </PRE>  
    <PRE class=java name="code">最后,還是寫一下WEB.XML的配置吧:</PRE>  
    <PRE class=java name="code"><PRE class=xml name="code"> <filter>  
     
            <filter-name>specialCharacterFilter</filter-name>  
     
            <filter-class>  
     
                com.fhn.vismp.common.SpecialCharacterFilter  
     
            </filter-class>  
     
        </filter>  
     
     
     
        <filter-mapping>  
     
            <filter-name>specialCharacterFilter</filter-name>  
     
            <url-pattern>*.do</url-pattern>  
     
        </filter-mapping>  
     
        <filter-mapping>  
     
            <filter-name>specialCharacterFilter</filter-name>  
     
            <url-pattern>*.jsp</url-pattern>  
     
        </filter-mapping></PRE>  
     
    </PRE> 


    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wanchengpeng/archive/2008/07/09/2628926.aspx

    posted on 2010-01-31 13:37 fly 閱讀(4319) 評論(0)  編輯  收藏 所屬分類: jsp學習
    主站蜘蛛池模板: 中文字幕成人免费高清在线| 亚洲国产精品免费观看| 亚洲精品午夜无码电影网| 午夜免费福利片观看| 久久亚洲精品专区蓝色区| 国产免费黄色大片| 秋霞人成在线观看免费视频 | 黄色片在线免费观看| 视频免费1区二区三区| 亚洲最新永久在线观看| 国内自产少妇自拍区免费| 国产一级高青免费| 亚洲一区二区三区91| 亚洲高清偷拍一区二区三区 | 凹凸精品视频分类国产品免费 | jlzzjlzz亚洲乱熟在线播放| 91制片厂制作传媒免费版樱花| 亚洲高清乱码午夜电影网| 亚洲AV日韩精品久久久久久| 国产v片免费播放| 在线观看免费中文视频| 成人免费夜片在线观看| 久久亚洲精品专区蓝色区| 国产亚洲色婷婷久久99精品 | 亚洲人成人网毛片在线播放| 精品久久久久久亚洲| 国产高清免费的视频| h视频在线观看免费完整版| 国产成人精品免费大全| 亚洲高清国产拍精品熟女| 久久久国产精品亚洲一区| 精品亚洲成α人无码成α在线观看| 最近的中文字幕大全免费版| 久草免费福利在线| 免费福利在线观看| 亚洲国产无线乱码在线观看| 亚洲春色另类小说| 亚洲AV日韩精品久久久久| 久久久久亚洲精品无码网址 | 亚洲人成国产精品无码| 成在线人永久免费视频播放|