三种思路。
1, 就想你说的用session 通过判断session中是否有对应的值来判断用户是否登陆。 
       最好做成一个自定义的标签。将你需要登陆的页面嵌入这个标签就可以了。

2,将需要权限才能登录的jsp文件放到WEN-INF目录下,通过转发跳转到该目录下的jsp文件进行访问

3, 通过过滤器来处理 . 将你需要登陆后才能访问的页面放到 一个目录下(非WEN-INF目录)。
      然后 在过滤器中判断你的请求是否能够进入这个目录就可以了。

 

 

1.写一个FILTER,用来判断用户是否有权限进入指定页面。



java 代码


1. import
2.   
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10. import
11. import
12. import
13.   
14. import
15.   
16. import
17. import
18.   
19. /******************************************************************************* 
20.  * 在过滤器中实现权限控制类,用来检验用户是否有权限进入当前页面 
21.  *  
22.  * @作者:kiral 
23.  * @日期:2006-6-24 
24.  * @版本: 1.0 
25.  ******************************************************************************/
26. public class FilterServlet extends HttpServlet implements
27. private static final long

    1. private static Logger LOG = Logger.getLogger(FilterServlet.class);    
    2. private String allowRole = null;  //配置允许的角色 
    3. private String redirectURl = null;   //重定向的URL



    1.   
    1. public void init(FilterConfig filterConfig) throws
    2. // 得到允许的角色,这个参数是由web.xml里的allowRole所指定 
    3. "allowRole");    
    4. // 指定要重定向的页面 
    5. "/locker/index.html";    
    6.     }   
    7.   
    8. /** 
    9.      * 在过滤器中实现权限控制 
    10.      */
    11. public void
    12. throws
    13.         HttpServletRequest request = (HttpServletRequest) sRequest;   
    14.         HttpServletResponse response = (HttpServletResponse) sResponse;   
    15.         HttpSession session = request.getSession();   
    16.   
    17. // 如果会话中的用户为空,页面重新定向到登陆页面 
    18. if (session.getAttribute(UserAction.CURRENT_USER) == null) {    
    19.             response.sendRedirect(redirectURl);   
    20. else
    21.        // 会话中存在用户,则验证用户是否存在当前页面的权限 
    22.             User user = (User) session.getAttribute(UserAction.CURRENT_USER);   
     
     
    1. try
    2. // 如果用户有当前页的权限,   过滤链继续传递请求和响应
    3. if ("0".equals(allowRole) || user.hasPower(allowRole)) {    
    4.                     filterChain.doFilter(sRequest, sResponse);   
    5. else
    6. // 如果用户没有当前页的权限,页面重新定向到登陆页面
    7.                     response.sendRedirect(redirectURl);   
    8.                 }   
    9. catch
    10. "权限过滤时候出现错误", e);    
    11. throw new RuntimeException("权限过滤时候出现错误", e);    
    12.             }   
    13.         }   
    14.     }   
    15.   
    16. public void
    17.     }   
    18.   
    19. }

     

    在web.xml中配置 要过滤的页面和能进入当前页面的角色



    xml 代码



    1. <!---->
    2. <filter>
    3. <filter-name>UserAdmin </filter-name>
    4. <filter-class>com.emap.web.FilterServlet </filter-class>
    5. <init-param>
    6. <param-name>allowRole </param-name>
    7. <param-value>1 </param-value>
    8. init-param>



      1. filter>
      2. <filter-mapping>
      3. <filter-name>UserAdmin </filter-name>
      4. <url-pattern>/jsp/security/* </url-pattern>
      5. filter-mapping>
      6. 上面配置的意思是说,当用户进入/jsp/security文件夹下的页面的时候,程序会进入FilterServlet 里的doFilter方法里,进行权限判断



       

      其他的页面权限控制:

        1.你可以在filter里判断用户是否登录,然后需要特殊权限能访问的页面,在页面里进行判断。

        2.推荐使用开源框架ACEGI来进行权限控制。