servlet过滤器

需要实现filter接口implements Filter


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

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

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

上一篇:/p/java web 拦截器

下一篇:软件安装流程

本文转自: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-pa