servlet过滤器

2019-02-23  javaweb jsp apache-tomcat Spring MVC          私有

需要实现filter接口implements Filter


过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。
作用
请求和回应的过滤,传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符集,或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话)。

Servlet过滤器的基本原理
在请求进入容器之后,还未进入Servlet之前进行预处理;在请求结束返回给前端之前进行后期处理。处理完成后,它会交给下一个过滤器处理,直到请求发送到目标为止。

1.过滤器是JavaEE标准,采用函数回调的方式进行。是在请求进入容器之后,还未进入Servlet之前进行预处理,并且在请求结束返回给前端这之间进行后期处理。

过滤器与拦截器区别 https://www.cnblogs.com/xzwblog/p/6832509.html
评论列表

    2019-03-15    

public class LoginFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, 
                         FilterChain filterChain) throws IOException, ServletException {
        if (((HttpServletRequest) servletRequest).getSession().
                getAttribute("username") == null){
            ((HttpServletResponse)servletResponse).sendRedirect("preLogin.action");
        } else {
            filterChain.doFilter(servletRequest,
                    servletResponse);
        }
    }

}


 <filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>filter.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>loginFilter</filter-name>
        <url-pattern>/showInfo.action</url-pattern>
        <url-pattern>/userStatus.action</url-pattern>
        <url-pattern>/setUserInfo.action</url-pattern>
    </filter-mapping>


文章内容的h2标题锚点:
评论列表