Servlet —— Filter示例:字符编码
来源:互联网 发布:dnf游戏数据怎么删除 编辑:程序博客网 时间:2024/06/10 15:17
功能
字符编码Filter是最常用的Filter之一,常用来解决Tomcat等服务器里request、response乱码的问题。
字符编码Filter是在request提交到Servlet之前对request进行指定编码方式的编码。
代码
publicclass CharacterEncodingFilterimplements Filter {
private StringcharacterEncoding;//编码方式,配置在web.xml中
privatebooleanenabled;//是否启用该Filter,配置在web.xml中
@Override
publicvoid init(FilterConfig filterConfig)throws ServletException {
this.characterEncoding = filterConfig.getInitParameter("characterEncoding")
.trim();
this.enabled ="true".equalsIgnoreCase(filterConfig.getInitParameter(
"enabled").trim());
}
@Override
publicvoid doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
if (enabled) {
String method = request.getMethod();
if ("GET".equalsIgnoreCase(method)) {
// GET方式提交
chain.doFilter(new RequestWrapper(request), response);
} elseif ("POST".equalsIgnoreCase(method)) {
// POST方式提交
request.setCharacterEncoding(characterEncoding);
chain.doFilter(request, response);
}
} else {
chain.doFilter(request, response);
}
}
privateclass RequestWrapperextends HttpServletRequestWrapper {
public RequestWrapper(HttpServletRequest request) {
super(request);
}
@Override
public String getParameter(String name) {
try {
returnnew String(super.getParameter(name).getBytes("iso8859-1"),
characterEncoding);
} catch (UnsupportedEncodingException e) {
thrownew RuntimeException("不支持编码:" + characterEncoding);
}
}
}
@Override
publicvoid destroy() {
}
}
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>cn.itcast.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>characterEncoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- Servlet —— Filter示例:字符编码
- Servlet —— Filter示例:字符编码
- 字符编码过滤器 Servlet Filter
- Servlet Filter示例
- Servlet Filter 简单示例
- servlet过滤器—filter
- filter 转换字符编码
- Filter字符编码过滤器
- Filter字符编码过滤器
- Servlet字符编码过滤器
- Servlet——Filter技术
- Servlet——Filter技术
- ---Filter ( 四 ) filter字符编码过滤器
- Tomcat 字符编码的filter
- Filter中配置字符编码
- Filter过滤器(字符编码)
- Filter过滤器—编码过滤
- 关于JSP/Servlet字符编码
- Bzoj2034 2009国家集训队试题 最大收益 贪心+各种优化+二分图
- 使用matlab制作动画
- Android应用开发工具下载与开发环境的搭建
- 多线程内容总结--面试(一)
- 用GCC查看C语言的编译全过程
- Servlet —— Filter示例:字符编码
- Using CAS without the CAS login screen
- SSO——CAS应用实例分析
- javascript同php做url encode与decode
- 寻求好友
- Leetcode-Symmetric Tree——判断二叉树是否对称
- 如何理解IOS里的MVC
- c++ 第五章 多态性和虚函数
- iOS开发隐藏键盘