jsp字符拦截器

来源:互联网 发布:南方电网供电局 知乎 编辑:程序博客网 时间:2024/06/06 03:22

很多在学习jsp的时候遇到乱码的问题吧,解决方法其实很简单,自定义一个字符拦截器即可。

为了不耦合在业务代码中,我们应该将字符转换代码独立出来,做成一个字符拦截器

直接上代码:

package com.jdbc.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CharacterFilter implements Filter {private FilterConfig config;public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;// 从web.xml文件中获取encoding对应的init-param中的param-valueString encoding = config.getInitParameter("encoding");// 只要定义了变量;就要判断是否为空;不然会报空指针异常if (encoding != null) {// 指明内容请求格式的字符编码集response.setContentType("text/html ;charset=" + encoding);// 请求时规范字符编码格式request.setCharacterEncoding(encoding);// 指明输出的格式字符编码集response.setCharacterEncoding(encoding);}// 进入下一个拦截器chain.doFilter(request, response);}// FilterConfig 是拦截器的全局变量public void init(FilterConfig config) throws ServletException {this.config = config;}public void destroy() {}}


接下来要让请求先进入字符拦截器中,在web.xml文件中配置

<!-- 字符编码集拦截器 -->  <filter>      <filter-name>CharacterFilter</filter-name>      <filter-class>com.jdbc.filter.CharacterFilter</filter-class>      <!-- 配置初始化参数 -->      <init-param>          <param-name>encoding</param-name>          <param-value>UTF-8</param-value>      </init-param>  </filter>  <!-- 映射路径 -->  <filter-mapping>      <filter-name>CharacterFilter</filter-name>      <url-pattern>/*</url-pattern>  </filter-mapping>  

以上便是字符拦截器,独立于业务代码,只需要copy到项目中即可。


一点点学习,一点点成长,有什么疑问和建议可以留言,我会及时处理。
更多干货等你来拿 http://www.itit123.cn/




1 0
原创粉丝点击