Java过滤器

Java过滤器

过滤器能够对目标资源的请求和响应进行截取。过滤器,顾名思义,就是把不符合规则的请求、响应进行拦截或修改。

过滤器是处于客户端与服务器之间的一道过滤网,从客户端发出的请求先在第一个filter进行过滤,然后在filter链中的下一个filter进行过滤,直至filter链中的所有filter都通过了才可以访问资源文件。过滤器通常是用来处理请求(request),也可以对返回的响应(response)进行处理。如下图所示。
在这里插入图片描述
过滤器基本了解了,下面来简单应用过滤器。

首先新建一个Class,实现接口Filter(注意:是javax.servlet.Filter)。在Class中重写Filter的doFilter(ServletRequest arg0,
ServletResponse arg1, FilterChain arg2)方法,destroy()、init(FilterConfig
arg0)不需要重写,在doFilter方法内进行过滤。同时要在web.xml中配置过滤器,如下所示。

<filter>
	<filter-name>EncodingFilter</filter-name>
	<filter-class>com.zxx.util.charsetFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>EncodingFilter</filter-name>
	<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
处理中文乱码的过滤器举例:

从jsp发出请求,内含中文数据,在后端接收到的中文数据是乱码。可以在servlet中的设置字符编码,也可以在过滤器中设置字符编码,使用过滤器区别在请求到达servlet之前,先对reques对象设置编码。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filter) throws IOException, ServletException {
	//设置编码格式
	request.setCharacterEncoding("utf-8");
	response.setCharacterEncoding("utf-8");
	filter.doFilter(request, response);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新鑫S

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值