交给服务器,把jsp文件放在一个文件夹内,使用服务器的 file security realm,只有登陆的用户才能访问jsp文件

解决方案 »

  1.   

    来个过滤器吧,过滤器的功能就是对每次请求操作都会自动判断session是否不为空,如果为空就跳到首页。
    * 用于判断session是否过期的过滤器
     *
     *
     */
    /*
     * 如何调用:需在项目的web.xml中加入以下内容
     * <filter> 
        <filter-name>accessControl</filter-name> 
        <filter-class>publicClass.AccessControlFilter</filter-class> 
        <init-param> 
          <param-name>loginPage</param-name> 
          <param-value>/index.jsp</param-value> 
        </init-param> 
      </filter> 
      
      <filter-mapping> 
        <filter-name>accessControl</filter-name> 
        <url-pattern>*.jsp</url-pattern> 
      </filter-mapping>
      
      <filter-mapping> 
        <filter-name>accessControl</filter-name> 
        <url-pattern>*.do</url-pattern> 
      </filter-mapping>
     */
    public class AccessControlFilter extends HttpServlet implements Filter { 
      protected FilterConfig filterConfig; 
      private String loginPage; 
      private static final String CONTENT_TYPE = "text/html; charset=GBK";
      public void init(FilterConfig config) throws ServletException { 
        this.filterConfig = config; 
        loginPage = config.getInitParameter("loginPage"); 
        if (loginPage == null) { 
          throw new ServletException("loginPage init param missing"); 
        } 
      } 
      public void doFilter(final ServletRequest req, final ServletResponse 
                           res, FilterChain chain) throws IOException, 
          ServletException { 
        
          
        HttpServletRequest hreq = (HttpServletRequest) req; 
        HttpServletResponse hres = (HttpServletResponse) res; 
        hres.setContentType(CONTENT_TYPE);
        hreq.setCharacterEncoding("GBK");    PrintWriter out = hres.getWriter();
        HttpSession session = hreq.getSession();
        String uri = hreq.getRequestURI();
        User user = (User) session.getAttribute("user");
        if(user!=null || uri.equals("/IndexAction.do") || uri.equals("/exitSystem.do")){//检查是否登录
            chain.doFilter(req,res);
            return;
        } 
        else if(uri.equals("/index.jsp") || "/".equals(uri) || "".equals(uri) || uri.equals("//index.jsp")){
         chain.doFilter(req,res);
            return;
        }
        else{
            out.println("<script language='javascript'>alert('您还没有登录或很久未操作系统,请重新登录!');parent.parent.location.href='/index.jsp';</script>");    }
      } 
      public void destroy() { 
        this.filterConfig = null; 
      }   public void setFilterConfig(final FilterConfig filterConfig) { 
        this.filterConfig = filterConfig; 
      } }
    这是我们原来项目中用到的,我改了下,给你参考下