servlet过滤器的使用方法

本文详细介绍了如何在Java中实现MyFilter过滤器,通过`doFilter`方法处理HTTP请求参数的乱码问题,并设置了服务器响应的字符集。关键步骤包括设置请求和响应的字符编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例:编码过滤

编写过滤器代码:

MyFilter.java:
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//过滤器初始化执行,只执行一次
System.out.println(“filter init…”);
}

					@Override
					public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
							throws IOException, ServletException {
						//过滤器执行方法
						HttpServletRequest req = (HttpServletRequest) servletRequest;
						//处理请求参数乱码
						req.setCharacterEncoding("UTF-8");
						HttpServletResponse resp = (HttpServletResponse) servletResponse;
						//设置服务器字符集为UTF-8
						resp.setContentType("text/html;charset=UTF-8");
						//放行数据
						filterChain.doFilter(req, resp);
					}
					@Override
					public void destroy() {
						//过滤器销毁,只执行一次
						System.out.println("filter destroy...");
					}
				}

在web.xml中配置过滤器

web.xml:

MyFilter
com.mywork.wkr.filter.MyFilter


MyFilter
/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值