日期:2014-05-17  浏览次数:20712 次

struts2登录 权限验证问题
struts.xml文件
XML code
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
<struts>
    <package name="main" extends="struts-default">
        <interceptors>
            <interceptor name="authentication" class="interceptor.AuthorizationInterceptor"/>
            
            <interceptor-stack name="myStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="authentication"/>
            </interceptor-stack>
        </interceptors>
        
        
        <action name="adminAction" class="action.AdminAction">
            <result name="admin">admin.jsp</result>
            <result name="login">login.jsp</result>
            <interceptor-ref name="myStack" />
        </action>
        
    
    </package>

</struts>

文件结构

拦截器类文件
Java code
package interceptor;

import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import java.util.*;

public class AuthorizationInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        // TODO Auto-generated method stub
        ActionContext ctx = invocation.getInvocationContext();
        Map session = ctx.getSession();
        String user = (String)session.get("username");
        if(user!=null && "admin".equals(user))
            return invocation.invoke();
        else
            return Action.LOGIN;
    }

}

AdminAction.java文件
Java code
package action;

import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import java.util.*;
import dao.AdminDAO;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.lang.*;


public class AdminAction extends ActionSupport{
    private String name;
    private String password;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    public String execute() throws Exception
    {
        String adminname=null;
        String adminpassword=null;
        String driverClass = "com.mysql.jdbc.Driver";
        String dburl = "jdbc:mysql://localhost:3306/cms_lawyer?characterEncoding=UTF-8";
        String dbuser = "root";
        String dbpassword = "12345678";
        Connection conn=null;
        System.out.println("before");
         try
            {
                Class.forName(driverClass);
            }
            catch(ClassNotFoundException