看了别人写的一个项目,里面有段代码看不懂
大概意思是这样
在登陆JSP页面登陆成功后,利用session.setAttribute("A",permisionList)把登陆用户的权限全部放入session中
然后在主页面根据session.getAttribute("A",permisionList)拿出登陆用户的权限控制显示一些内容,但是他并不是在主页面使用的时候
利用session.getAttribute("A",permisionList)取出放入session中的内容,而是单独建了一个JSP页面,里面内容为如下:
<%
Object allPermissions=session.getAttribute("AllPermissions");
if (null==allPermissions){
response.sendRedirect("../login.jsp");
return;
}
%>
然后就在这个项目的所有JSP页面中直接使用allPermissions这个对象来代替用户的权限使用,但是我在整个项目中没看有那调用了这个页面
我想问问这个页面是在什么时候执行的,为什么没调用也执行了,这是什么原理??
望大家指教,我初学实在有点看不懂!

解决方案 »

  1.   

    这个页是不是被每个页都引入进来了??
    <%@ include file="/inc/session.jsp"%>
      

  2.   

    session.getAttribute("A",permisionList)...
    谁这么写能编译过去...牛的啊! >_<这个页肯定是在每个页都引入的!
    <%@ include file....
    <jsp:include....你看一下struts-config找最初的那个页面,看有没有!
      

  3.   

    是这样,不引用这个页面,这个对象allPermissions怎么会被使用呢?
      

  4.   

    <% 
    Object allPermissions=session.getAttribute("AllPermissions"); 
    if (null==allPermissions){ 
    response.sendRedirect("../login.jsp"); 
    return; 

    %> 
    这段代码的页面比如说是:a.jsp
    你就到其它页面搜索:a.jsp,看能不能找到。找到就引用了,没找到就没有引用
      

  5.   

    肯定是引用了某个jsp页面。而这个JSP页面里包含的一些代码。
      

  6.   

    很简单嘛,如果忽略你那个session.getAttribute("A",permisionList)这个错误的话,你的意思是不是说权限的问题?也就是访问控制~ 
    <% 
    Object allPermissions=session.getAttribute("AllPermissions"); 
    if (null==allPermissions){ 
    response.sendRedirect("../login.jsp"); 
    return; 

    %> 这段的意思就是说如果你登陆页面了,那么那个session就有值了,那你访问需要登陆的页面,从session里面就能够获取出来你登陆时候的值,那个if条件就不会成立,下面就不会跳转;相反,如果你是登陆需要登陆信息的页面,而你没有登陆,那么session里面就没有值,那么if条件就成立了,就会帮你跳转到那个login.jsp的页面,实现的就是登陆控制,不知道你是不是这个意思~