国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于tomcat8 編寫字符編碼Filter過濾器無效問題的解決方法

基于tomcat8 編寫字符編碼Filter過濾器無效問題的解決方法

2021-03-16 14:10Jasonfong436 Java教程

下面小編就為大家分享一篇基于tomcat8 編寫字符編碼Filter過濾器無效問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

同事遇到編碼問題時想做一個解決全站的字符編碼過濾器,過濾器類和配置如下:

過濾器類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<span style="font-size:12px;">package com.chaoxing.newspaper.web.filter;
import java.io.IOException;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CharacterEncodingFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        System.out.println("過濾器執行");
         final HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
         
        //解決post請求的中文亂碼
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        
        chain.doFilter((ServletRequest) Proxy.newProxyInstance(this.getClass().getClassLoader(), request.getClass().getInterfaces(), new InvocationHandler(){
            @Override
            public Object invoke(Object proxy, Method method, Object[] args)
                    throws Throwable {
                String methodname = method.getName(); //拿到當前的方法
          if(methodname.equals("getParameter")){
            //執行request.getparameter獲取結果
            String value = (String) method.invoke(request, args);
            if(value==null){
              return null;
            }
            if(!request.getMethod().equalsIgnoreCase("get")){ //判斷是為get請求
              return value;
            }
            System.out.println(value+"|||||");
            //轉換編碼返回
            value = new String(value.getBytes("UTF-8"),"UTF-8");
            System.out.println(value+"=======");
            return value;
          }
          //交給request執行請求
          return method.invoke(request, args);
          }
            
        } ), res);
    }
    public void init(FilterConfig fConfig) throws ServletException {
        System.out.println("過濾器初始化");
    }
    @Override
    public void destroy() {
        System.out.println("過濾器完成");
    }
}</span>

過濾器配置:

?
1
2
3
4
5
6
7
8
9
<span style="font-size:12px;"> <!--解決全站亂碼的filter  -->
 <filter>
  <filter-name>CharacterEncoding</filter-name>
  <filter-class>com.XXX.web.filter.CharacterEncodingFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>CharacterEncoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping></span>

但是在前端form的提交方式是get的情況下,得到的仍然是亂碼。

剛開始一直糾結于過濾器是不是寫錯了,編碼集是不是寫錯了,但是經過測試,并沒有錯,過濾器正常運行,

最后把value.getByte("iso-8859-1","utf-8") 改為 value.getByte("utf-8","utf-8")后臺就能得到值,不再是亂碼了。最后百度了下,

說tomcat8默認的編碼集是utf-8,tomcat8之前默認的編碼集是iso-8859-1,恍然大悟......

總結:tomcat7及其版本之前默認的編碼集是iso-8859-1,tomcat8默認的字符集已經是UTF-8,所以不再需要為request.getParameter()的結果進行轉碼,不需要編碼編碼過濾器類了

以上這篇基于tomcat8 編寫字符編碼Filter過濾器無效問題的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/fachunfc/article/details/72846439

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久亚洲二区 | 黄色美女在线观看 | 亚洲不卡在线观看 | 亚洲一区在线日韩在线深爱 | 久草天堂 | 亚洲视屏 | 久久午夜精品 | 午夜私人影院 | www.涩涩视频 | 久久伊人国产 | 国产欧美久久久久久 | 国产福利一区二区 | 一级黄色大片免费观看 | 国产精品一区二区免费 | 国产精品99久久久久久久vr | 久久小视频| 国产精品精品 | 国产美女精品一区二区三区 | 日韩中文字幕在线 | 一本一道久久久a久久久精品91 | 黄色av大全 | 欧美日韩一区在线 | 中文字幕在线观看 | 一区二区日韩精品 | 精品99视频 | 一区二区三区精品视频 | 日本黄色毛片 | 91免费在线视频 | 不卡免费视频 | 久久亚洲美女 | 成人免费影院 | 精品国产91亚洲一区二区三区www | 国产特级毛片aaaaaa毛片 | 精品在线播放 | 成人看的免费视频 | 国产精品国产三级国产aⅴ9色 | 午夜久久久久久久 | 日本免费在线 | 国户精品久久久久久久久久久不卡 | yy6080久久伦理一区二区 | 在线观看av网站永久 |