过滤器
过滤器的主要作用是对请求的预处理,已经对响应的处理。它可以在 servlet 一无所知的情况下,先对请求的数据进行预处理,或者对 servlet 已经处理的数据再次处理。
定义一个过滤器类:
package com.example;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class RequestFilter implements Filter {
private FilterConfig config;
// 必须实现 init() 方法,通常只需要在其中保存配置对象
public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
}
// 这个方法中并不取 Http 请求和响应对象,而是 ServletRequest 和 ServletResponse 对象,当然也可以强制转换成 http 的请求和响应对象
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// 所有的请求预处理都在这里实现。
// ServletRequest 强制转换成 HttpServletRequest。
HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
String name = httpServletRequest.getRemoteUser();
if