securefilter.java

来自「OA典型例子」· Java 代码 · 共 50 行

JAVA
50
字号
package com.sure.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class SecureFilter extends HttpServlet implements Filter {
    private static String loginPage = "/index.jsp";
    private static String userInfo = "userInfo";

    private FilterConfig filterConfig;
    //Handle the passed-in FilterConfig
    public void init(FilterConfig filterConfig) {
        this.filterConfig = filterConfig;
        String theLoginPage = filterConfig.getInitParameter("loginpage");
        String theUserInfo = filterConfig.getInitParameter("userinfo");
        if(theLoginPage != null) loginPage = theLoginPage;
        if(theUserInfo != null) userInfo = theUserInfo;
    }
    //Process the request/response pair
    public void doFilter(ServletRequest request,
            ServletResponse response, FilterChain filterChain) {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpSession session = req.getSession();
        String URL = req.getRequestURI();
        if(session.getAttribute(userInfo) == null) {
            if(!URL.equals(loginPage) || URL.equals("/")){
                try {
                    ((HttpServletResponse) response).sendRedirect(loginPage);
                } catch(IOException uee) {

                }
                return;
            }
        }
        try {
            filterChain.doFilter(request, response);
        }
        catch(ServletException sx) {
            filterConfig.getServletContext().log(sx.getMessage());
        }
        catch(IOException iox) {
            filterConfig.getServletContext().log(iox.getMessage());
        }
    }
    //Clean up resources
    public void destroy() {
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?