小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【重點】亂碼問題 java web 動態(tài)代理

 一本正經(jīng)地胡鬧 2020-04-28

程序設(shè)計:添加一個專門測試亂碼的前端和后端。

這樣可以分析測試各種亂碼情況:form表單提交,ajax提交。以此來推測出哪里出問題,程序大致是如何設(shè)置的。

ajax的post提交,后臺不用處理,中文也不會亂碼。(因為jquery處理了)

ajax的get提交,后臺需要處理,要么getBytes(),new String();要么改tomcat配置。

filter中使用動態(tài)代理對全局進行編碼:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

final HttpServletRequest req = (HttpServletRequest) request;

//使用動態(tài)代理完成全局編碼

HttpServletRequest enhanceRequset = (HttpServletRequest) Proxy.newProxyInstance(

req.getClass().getClassLoader(), 

req.getClass().getInterfaces(), 

new InvocationHandler() {

@Override

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

//對getParameter方法進行增強

String name = method.getName();//獲得目標(biāo)對象的方法名稱

if("getParameter".equals(name)){

String invoke = (String) method.invoke(req, args);//亂碼

//轉(zhuǎn)碼

invoke = new String(invoke.getBytes("iso8859-1"),"UTF-8");

return invoke;

}

return method.invoke(req, args);

}

}

);

chain.doFilter(enhanceRequset, response);

}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多