现在的位置: 首页 > 综合 > 正文

java网络编程–解析通过web.xml文件控制利用过滤器实现编码格式步骤

2013年07月25日 ⁄ 综合 ⁄ 共 1340字 ⁄ 字号 评论关闭
过滤类篇:
 
import java.io.IOException;
 
 
 
import javax.servlet.Filter;
 
import javax.servlet.ServletRequest;
 
import javax.servlet.FilterConfig;
 
import javax.servlet.ServletException;
 
import javax.servlet.ServletResponse;
 
import javax.servlet.FilterChain;
 
 
 
//实现javax.servlet.Filter类,强制实现3个方法
 
public class SetCharacterEncodingFilter implements Filter
 
{
 
    String encoding = "";
 
    //初始化方法
 
    public void init(FilterConfig filterConfig) throws ServletException
 
{
 
    //从web.xml 文件中获取编码格式,参数名为’encoding’
 
        encoding = filterConfig.getInitParameter("encoding");
 
        if(encoding==null){//判断,若编码格式为空,赋默认值为GBK
 
            encoding = "GBK";
 
       }
 
}
 
//执行操作方法
 
    public void doFilter(ServletRequest request,
 
                         ServletResponse response,
 
                         FilterChain chain)
 
                  throws IOException, ServletException
 
{
 
    //判断,若项目中没有设置编码格式时,给予设置
 
        if (request.getCharacterEncoding() == null)
 
        {
 
           //将编码格式设置成获取的参数值
 
            request.setCharacterEncoding(encoding);
 
        }
 
       //设置response的编码格式,
 
        response.setContentType("text/html; charset="+encoding);
 
       //将程序继续运行下去
 
        chain.doFilter(request, response);
 
}
 
//销毁方法
 
public void destroy()
 
//将编码格式变量清空
 
    { this.encoding = null; }
 
}
 
Web.xml文件篇: 

<filter>
 
  <filter-name>aa</filter-name>
 
    //filter.SetCharacterEncodingFilter为过滤器类路径
 
  <filter-class>filter.SetCharacterEncodingFilter</filter-class>
 
  <init-param>//配置过滤器参数
 
   <param-name>encoding</param-name>//参数名
 
   <param-value>GBK</param-value>//参数值
 
  </init-param>
 
 </filter>
 
 <filter-mapping>
 
  <filter-name>aa</filter-name>
 
  <url-pattern>/*</url-pattern>//过滤器匹配的范围
 
 </filter-mapping>


【上篇】
【下篇】

抱歉!评论已关闭.