用Enterprise 开发JSP,怎么写过滤器filter来过滤登入验证,比如管理员文件夹admin,怎么过滤里面的所有页面,而不是一个一个页面单独过滤,这样的过滤器怎么写,还麻烦大家能把过滤代码贴出来,详细点,还要把web.xml里的配置也告诉下,一定要详细,最好能一步一步告诉我,急啊,谢谢各位了

解决方案 »

  1.   

    参考
    http://www.family168.com/oa/springsecurity/html
      

  2.   

    过滤器类
    package com.company.servlet;import java.io.IOException;
    import java.io.PrintWriter;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.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class AdminFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    // 未登陆用户禁止访问后台的任何页面
            HttpServletRequest request = (HttpServletRequest) arg0;
            Object user = request.getSession().getAttribute("usermodel");
            if (null == user || "".equals(user)) {
                // 直接到登陆截面
                request.getRequestDispatcher("/admin/backlogin.jsp").forward(arg0, arg1);
            } else {
                arg2.doFilter(arg0, arg1);
            } } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub } /**
     * Constructor of the object.
     */
    public AdminFilter() {
    super();
    } /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    }
    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
    // Put your code here
    }}
    web.xml配置
     <!--过滤是否用户已登录 -->
      <filter>
         <filter-name>AdminFilter</filter-name>
        <filter-class>com.company.servlet.AdminFilter</filter-class>
      </filter>
      <filter-mapping>
         <filter-name>AdminFilter</filter-name>
         <url-pattern>/admin/pages/*</url-pattern>
      </filter-mapping>
    AdminFilter 类名
    com.company.servlet.AdminFilter 路径