您的位置:首页 > 理论基础 > 计算机网络

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

2013-02-20 09:34 441 查看
过滤类篇:

importjava.io.IOException;

importjavax.servlet.Filter;

importjavax.servlet.ServletRequest;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletResponse;

importjavax.servlet.FilterChain;

//实现javax.servlet.Filter类,强制实现3个方法

publicclassSetCharacterEncodingFilterimplementsFilter

{

Stringencoding="";

//初始化方法

publicvoidinit(FilterConfigfilterConfig)throwsServletException

{

//从web.xml文件中获取编码格式,参数名为’encoding’

encoding=filterConfig.getInitParameter("encoding");

if(encoding==null){//判断,若编码格式为空,赋默认值为GBK

encoding="GBK";

}

}

//执行操作方法

publicvoiddoFilter(ServletRequestrequest,

ServletResponseresponse,

FilterChainchain)

throwsIOException,ServletException

{

//判断,若项目中没有设置编码格式时,给予设置

if(request.getCharacterEncoding()==null)

{

//将编码格式设置成获取的参数值

request.setCharacterEncoding(encoding);

}

//设置response的编码格式,

response.setContentType("text/html;charset="+encoding);

//将程序继续运行下去

chain.doFilter(request,response);

}

//销毁方法

publicvoiddestroy()

//将编码格式变量清空

{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>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: