final HttpServletRequest req = (HttpServletRequest) request;
// 使用動態代理完成全局編碼
HttpServletRequest enhanceRequest = (HttpServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(),
req.getClass().getInterfaces(), new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// 對getParameter方法進行增強
String name = method.getName();
if ("getParameter".equals(name)) {
String invoke = (String) method.invoke(req, args);// 亂碼的字符串
// 轉碼
invoke = new String(invoke.getBytes("iso8859-1"), "utf-8");
return invoke;
}
// 其他方法不管,原封不動的執行
return method.invoke(req, args);
}
});
chain.doFilter(enhanceRequest, response);
[JAVAWeb]動態代理方式來解決全局亂碼(get/post提交)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.