struts2的验证登陆问题?
只有登陆才能访问其它的页面....不知道谁能详细的说说

解决方案 »

  1.   

    http://download.csdn.net/source/311148
      

  2.   

    请仔细参考 struts2 拦截器 相关
      

  3.   


    如果用struts2的话,用拦截器吧
    同样先在loginAction中把用户信息放入sessionstruts.xml中配置拦截器
    <package name="authority-default" extends="struts-default">
    <interceptors>
    <interceptor  class="com.lan.baseproject.interceptor.AuthorityInterceptor" name="authority"/> 
    <interceptor-stack name="mydefault">
            <interceptor-ref name="defaultStack"></interceptor-ref>
    <interceptor-ref name="authority"></interceptor-ref>
    </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="mydefault"/>
    <global-results>
    <result name="login" type="redirect">/login.jsp</result>
    </global-results>
    </package>
    <!--login继承自struts-default这样login不会被认证拦截器拦截-->
    <package name="login" extends="struts-default">
    <action name="checkCodeExists" class="loginAction" method="checkCodeExists"></action>
    <action name="login" class="loginAction" method="login">
    </action>
    <action name="logout" class="loginAction" method="logout">
    <result name="success" type="redirect">/login.jsp</result>
    </action>
    </package>
    <!--以下配置文件继承自authority-default这样所有action会被认证拦截器拦截-->
    <include file="xxx/user.xml"/>
    ......
    拦截器的简单实现public class AuthorityInterceptor extends AbstractInterceptor { /* (non-Javadoc)
     * @see com.opensymphony.xwork2.interceptor.AbstractInterceptor#intercept(com.opensymphony.xwork2.ActionInvocation)
     */
    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
    ActionContext context = arg0.getInvocationContext();
    Map<String, User> session = context.getSession();
    User loginUser = session.get("loginUser");
    if(null == loginUser){
    return Action.LOGIN;
    }

    return arg0.invoke();
    }}如果涉及到用户的菜单权限的话,在这里也可以进一步处理
      

  4.   

    用filter或
    把登录后信息放入Session中,这样在其它页面就可以是否登录,如没有登录则返回登录页面。如果已经登录则不用转发到其它页面。
      

  5.   

    两种方法:
    一、加过滤器,把除了登陆页面外的所有页面都过滤
    二、把登陆信息放到session中,每个页面判断一下,如果得不到值就跳到登陆页面
      

  6.   

    是的,Struts的拦截器是一个很好的办法
    不过用filter也可以,可以直接在filter中构建一个简单的登陆页面来判断用户的输入
    如果输入正确就导航到现实的页面,如果不正确就进不去