[JAVAWeb]動態代理方式來解決全局亂碼(get/post提交)

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章