zoukankan      html  css  js  c++  java
  • 第三十五章——过滤器和监听器

    过滤器代码示例:

    package com.hanqi.maya.filter;
    
    import java.io.IOException;
    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 javax.servlet.annotation.WebFilter;
    import javax.servlet.annotation.WebInitParam;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet Filter implementation class SessionFilter
     */
    @WebFilter(filterName="sessionFilter", 
        value={"/*"}, initParams={@WebInitParam(name="initp", value="message.jsp;login.jsp;LoginOrRegisterServlet")})
    public class SessionFilter implements Filter {
    
        private String initParams;
        
        /**
         * Default constructor. 
         */
        public SessionFilter() {
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see Filter#destroy()
         */
        public void destroy() {
            // TODO Auto-generated method stub
        }
    
        /**
         * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
         */
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest)req;
            HttpServletResponse response = (HttpServletResponse)resp;
            
            String[] ss = initParams.split(";");
            
            String reqUrl = request.getRequestURI();
            for(String s : ss) {
                if(reqUrl.indexOf(s)!=-1) {
                    chain.doFilter(request, response);
                    return;
                }
            }
            
            Object obj = request.getSession().getAttribute("currentUser");
            if(obj==null) {
                response.sendRedirect("login.jsp");
            } else {
                chain.doFilter(request, response);
            }
        }
    
        /**
         * @see Filter#init(FilterConfig)
         */
        public void init(FilterConfig fConfig) throws ServletException {
            initParams = fConfig.getInitParameter("initp");
        }
    
    }

    监听器:

  • 相关阅读:
    python的eval、exec函数使用总结
    sorted()&enumerate()
    递归
    作用域
    Python3 os.stat() 方法
    android 电容屏(一):电容屏基本原理篇
    Linux 2.6内核与Linux 3.0 的区别!
    struct device的成员变量bus_id到哪里去了?
    Linux内核中ioremap映射的透彻理解
    Android 通过串口模拟 模拟物理按键
  • 原文地址:https://www.cnblogs.com/yuanlaihenkuang/p/7109612.html
Copyright © 2011-2022 走看看