第三周02
今天学习了 Servlet 过滤器,它是 Java Web 中的一个重要组件,用于对请求和响应进行预处理和后处理。过滤器可以拦截进入 Servlet 的请求,在请求到达 Servlet 之前进行一些操作,如身份验证、日志记录、字符编码设置等,也可以在 Servlet 处理完请求后对响应进行处理。
创建一个简单的过滤器,实现字符编码设置功能。首先编写一个实现Filter接口的类:
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 java.io.IOException;
public class CharacterEncodingFilter implements Filter {
private String encoding;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
if (encoding == null) {
encoding = "UTF-8";
}
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
}
@Override
public void destroy() {
// 清理资源
}
}
然后在web.xml文件中配置该过滤器:
这样,所有匹配/*路径的请求在进入 Servlet 之前都会经过这个过滤器,确保请求和响应的字符编码都被设置为 UTF - 8。通过使用过滤器,提高了代码的可维护性和复用性,能够集中处理一些通用的功能。
浙公网安备 33010602011771号