处理get请求时编码的拦截器
来源:互联网 发布:python中文输出 编辑:程序博客网 时间:2024/06/04 00:54
<struts><package name="entity.workspaceManager" extends="json-default" namespace="/entity/manager"><interceptors><interceptor name="urlDecodeFilterInterceptor"class="com.whaty.platform.sso.web.interceptor.UrlDecodeFilterInterceptor"></interceptor><interceptor-stack name="urlDecodeStack"><interceptor-ref name="urlDecodeFilterInterceptor"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="interceptorStack"></default-interceptor-ref><global-results>
具体实现:
package com.whaty.platform.sso.web.interceptor;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.Iterator;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class UrlDecodeFilterInterceptor extends AbstractInterceptor {private static final long serialVersionUID = -2335290125344040914L;private static final Log LOG = LogFactory.getLog(UrlDecodeFilterInterceptor.class);public String intercept(ActionInvocation invocation) throws Exception {Map parameters = invocation.getInvocationContext().getParameters();HttpServletRequest request = ServletActionContext. getRequest(); if("get".equalsIgnoreCase(request.getMethod())){for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {String param = (String) i.next();String[] values = (String[])parameters.get(param);if(values != null && values.length > 0){for (int j = 0; j < values.length; j++) {if(values[j] != null && !"".equals(values[j])){try {values[j] = new String(values[j].getBytes("iso8859-1"),"UTF-8");parameters.put(param, values[j]);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} }}}}}if("application/x-www-form-urlencoded;charset=UTF-8".equals(request.getContentType())){for (Iterator i = parameters.keySet().iterator(); i.hasNext();) {String param = (String) i.next();String[] values = (String[])parameters.get(param);if(values != null && values.length > 0){for (int j = 0; j < values.length; j++) {if(values[j] != null && !"".equals(values[j])){try {values[j] = URLDecoder.decode(values[j], "UTF-8");parameters.put(param, values[j]);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} }}}}}return invocation.invoke();}}
- 处理get请求时编码的拦截器
- 使Tomcat以UTF-8的编码处理get请求
- java 处理get请求得到json数据的中文编码
- 自定义拦截器GET请求POST请求
- 自定义的拦截器,封装公共参数 get请求
- okhttp自定义拦截器,封装公共参数,get或post请求不同的拦截器
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- axios使用拦截器统一处理所有的http请求
- 字符集编码问题(get/post请求,tomcat有不同的处理)
- tomcat的get请求设置编码
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- Js字符集编码转换函数Get请求特殊字符处理
- Servlet请求参数编码处理(POST & GET)
- shiro 拦截器实现session过期拦截ajax请求的处理
- GET请求解读编码
- C语言之宏assert
- 矩阵转置的SSE汇编优化艺术以及ARM cortext 汇编优化
- 手把手叫你 制作一个不需要任何工具 从网页上安装ipa包的办法
- C++学习之map类型
- 是男人就坚持50秒隐私策略
- 处理get请求时编码的拦截器
- ligerUI结合SSH分页
- Android入门系列二(环境搭建)
- C++中的操作符重载
- 系统什么时候发送SIGKILL信号
- C 指针作为参数与动态分配内存相关问题
- Android学习笔记--处理UI事件
- mySQL查询优化
- 堆和栈的区别