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");
        }
    
    }

    监听器:

  • 相关阅读:
    Safe3TV
    LINQ 對付 SQL Injection 的 "免費補洞策略"
    Sstart(一个批量运行的小工具)
    从CSDN 漏洞谈.NET 安全开发
    看大成天下网站安全
    discuz获取任意管理员密码漏洞利用工具vbs版
    Wfuzz(支持各种web漏洞扫描的工具)
    Apache Tomcat UTF8编码漏洞
    VS2010下如何调试Framework源代码(即FCL)
    《Practical Clojure》学习笔记[3] Clojure中程序流程控制
  • 原文地址:https://www.cnblogs.com/yuanlaihenkuang/p/7109612.html
Copyright © 2011-2022 走看看