〔CharacterEncodingHttpServletRequestWrapper.java〕
package creator.common.filter;
import javax.servlet.http.*;
public class CharacterEncodingHttpServletRequestWrapper extends HttpServletRequestWrapper {
private String ecoding = null;
private String oldEncoding = null;
public CharacterEncodingHttpServletRequestWrapper(HttpServletRequest request,String encoding) {
super(request);
this.ecoding = encoding;
this.oldEncoding = request.getCharacterEncoding();
}
public String getParameter(String value) {
try{
if((oldEncoding == null || isIOS88591(oldEncoding)) && super.getParameter(value)!=null){
return new String(super.getParameter(value).getBytes('iso-8859-1'),ecoding);
}
else{
return super.getParameter(value);
}
}
catch(Exception e){
e.printStackTrace();
return null;
}
}
private boolean isIOS88591(String endcoding){
endcoding = endcoding.toLowerCase();
return endcoding.startsWith('iso')&& (endcoding.indexOf('8859') != -1) && endcoding.endsWith('1');
}
}
〔CharacterEncodingHttpServletResponseWrapper.java〕
package creator.common.filter;
import javax.servlet.http.*;
public class CharacterEncodingHttpServletResponseWrapper extends HttpServletResponseWrapper {
private String ecoding = null;
public CharacterEncodingHttpServletResponseWrapper(HttpServletResponse response,String encoding) {
super(response);
this.ecoding = encoding;
}
/* (non-Javadoc)
* @see javax.servlet.ServletResponse#setContentType(java.lang.String)
*/
public void setContentType(String value) {
super.setContentType('text/html;charset='+ecoding);
}
}
〔CharsetEncodingFilter.java〕
package creator.common.filter;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class CharsetEncodingFilter implements Filter {
private FilterConfig config = null;
private String RequestEncoding = null;
private String ResponseEncoding = null;
public void init(FilterConfig arg0) throws ServletException {
this.config = arg0;
this.RequestEncoding = config.getInitParameter('RequestEncoding');
this.ResponseEncoding = config.getInitParameter('ResponseEncoding');
}
/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)
throws IOException, ServletException {
if(this.config == null){
return;
}
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
CharacterEncodingHttpServletRequestWrapper mrequestw = new CharacterEncodingHttpServletRequestWrapper(request,ResponseEncoding);
CharacterEncodingHttpServletResponseWrapper wresponsew = new CharacterEncodingHttpServletResponseWrapper(response,ResponseEncoding);
fc.doFilter(mrequestw,wresponsew);
}
public void destroy() {
}
}
〔web.xml〕
<filter>
<filter-name>CharsetEncoding</filter-name>
<filter-class>javabean.com.CharsetEncodingFilter</filter-class>
<init-param>
<param-name>RequestEncoding</param-name>
<param-value>iso-8859-1</param-value>
</init-param>
<init-param>
<param-name>ResponseEncoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
JavaEE Filter全局编码过滤器
javaFilter自定义编码过滤器,防止中文乱码.
电机驱动及编码器同步采样,内部兼具多重滤波采样处理算法。
JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding(“gb2312”);后,有没有想要一劳永逸...
java-utf8编码统一filter,使用过滤器统一更改字符集为utf8
深层CNN编码器+ LSTM解码器,用于图像到乳胶, 的模型架构的pytorch实现 此实现的示例结果 在IM2LATEX-100K测试数据集上的实验结果 蓝色4 编辑距离 完全符合 40.80 44.23 0.27 入门 安装依赖项: pip install -...
ac3filter解码器 可以支持ac3编码的视频文件解码的播放 是一款不可多得的好工具
用MyEclipse 8.5 开发的JavaWeb页面编码过滤器.支持所有web页面,包括servlet
java过滤器实现统一字符编码 封装好的工具类,可以直接使用
JavaWeb项目 filter练习,编码过滤,登录过滤,较详细。
java的web程序经常出现中文乱码的问题,用一个实现了Filter接口的过滤器类可以较好地解决这个问题。
1. Filter 1.1.概念: web 中的过滤器:当访问服务器的资源时,过滤器可以将请求拦 截下来,完成一些特殊的功能。 过滤器的作用: 用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤 2. 动态代理 2.1....
下面小编就为大家分享一篇基于tomcat8 编写字符编码Filter过滤器无效问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
JavaWeb Servlet中Filter过滤器的详解 1.简述 Filter过滤器,对web服务器所有web资源进行过滤,从而实现一些特殊的功能(权限访问控制、过滤敏感词汇、压缩响应信息)。Filter能够对Servlet容器的请求和响应进行检查...
Java编码过滤器。 public class SetCharacterEncodingFilter implements Filter
信道编码matlab代码python-guided-filter (快速)Guided Filter的Numpy / Scipy实现。 改编自Kaiming的Matlab代码。 gf.py:guided_filter在一个或三个通道的引导图像(I)上运行过滤器,并在任意数量的通道上过滤...
环境:XP + VC6 + DirectShow 这是本人写的一个Xvid编码过滤器,支持对YV12、RGB24、RGB32的编码,支持外部接口调用SetFrameRate、SetEncodeQuant分别设置编码时的帧率、编码质量
用于中文乱码问题,仅限于表单提交,不适于JS提交,JS提交请自己另设response
一般来说,Windows操作系统已经自带了MP3的解码器——Fraunhofer-Gesellschaft ⅡS MPEG Layer-3 Audio Decoder(Windows XP下),因此采用MP3格式做的DVDrip音频我们都可以听到。但对于以AC3(或DTS格式)格式音频...