⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginaction.java

📁 采用Eclispe开发平台
💻 JAVA
字号:
package com.whatratimes.edu.webedu;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.validator.DynaValidatorActionForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.whatratimes.dbms.QuerySQLExecuter;
import com.whatratimes.dbms.UserSQLExecuter;
import com.whatratimes.tables.t_user;
import com.whatratimes.tables.t_student;
import com.whatratimes.webedu.student.StudyHelper;

import java.util.logging.Logger;

/**
 * User: Tao
 * Date: Jun 9, 2003
 * Time: 12:30:50 AM
 */
public class LoginAction extends Action
{
    static Logger logger = Logger.getLogger("com.whatratimes.edu.webedu");

    public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception
    {
        DynaValidatorActionForm form = (DynaValidatorActionForm) actionForm;

        if (form.get("UserName") == null || form.get("Password") == null)
        {
            delay(3000);
            return actionMapping.findForward("failed");
        }

        QuerySQLExecuter sql = new QuerySQLExecuter();

        sql.setReturnClassName("t_user");
        sql.appendColumn("*");
        sql.appendTableName("t_user");
        sql.appendWhereCondition("LoginName", "=", form.get("UserName"));
        sql.appendWhereCondition("LoginPassword", "=", form.get("Password"));
//        sql.appendWhereCondition("State", "=", new Integer(1));


        Object[] objs = sql.executeQuery();

        form.initialize(actionMapping);

        if (objs.length == 0)
        {
            delay(3000);
            return actionMapping.findForward("failed");
        }

        t_user user = (t_user) objs[0];

        if (user.State != 1)
        {
            return actionMapping.findForward("closed");
        }

        if ((!user.LoginName.equals("admin")) && UserSQLExecuter.executeQuery("select * from t_school where State = 1 AND SchoolId = '" + user.SchoolId + "'").length == 0)
        {
            return actionMapping.findForward("closed");
        }

        HttpSession session = httpServletRequest.getSession();

        Object obj =  session.getAttribute("User");
        String remote_address = httpServletRequest.getRemoteAddr();

        if ( obj == null )
        {
            System.gc();
            obj = SessionControl.loginedUsers.get(new Integer(user.UserId));

            if ( obj != null )
            {
                SessionTracker st = (SessionTracker) obj;
                if ( st.RemoteAddress.equals(remote_address))
                {
                    System.out.println ("Same IP : " + remote_address );
                    st.logout();
                    SessionControl.loginedUsers.remove(new Integer(user.UserId));

                    return actionMapping.findForward("same");
                }

                return actionMapping.findForward("logined");
            }
        }

        String forward = null;
        session.setAttribute("User", user);

        if (user.UserType == 3)
        {
            session.setAttribute("CourseDeveloper", user);
            forward = "course";
            session.setMaxInactiveInterval(60 * 60);

        } else if (user.UserType == 2)
        {
            session.setAttribute("Teacher", user);
//            SetExamHelper.setTeacherClasses(user.UserId, session);
//            SetExamHelper.setTeacherCourses(user.UserId, session);
//            UserHelper.setSchoolList(user.SchoolId, session);

            forward = "teacher";
            session.setMaxInactiveInterval(60 * 60);
        } else if (user.UserType == 1)
        {
            Object[] temp = UserSQLExecuter.executeQuery(
                    "select * from t_class a, t_student b " +
                    "where a.ClassId = b.ClassId AND " +
                    "a.State = 1 AND " +
                    "b.UserId = " + user.UserId);

            if (temp.length == 0)
            {
                return actionMapping.findForward("closed");
            }

            session.setAttribute("User", user);
            t_student student = StudyHelper.setStudent(user, session);
            if (null != StudyHelper.setClass(student, session))
            {
                StudyHelper.setCourses(session);
                forward = "student";
            } else
            {
                delay(3000);
                return actionMapping.findForward("failed");
            }

            session.setMaxInactiveInterval(60 * 120);

        } else
        {
            delay(3000);
            return actionMapping.findForward("failed");
        }

        SessionTracker st = new SessionTracker(user.UserId, remote_address, session);
        SessionControl.loginedUsers.put(new Integer(user.UserId), st);
        session.setAttribute("SessionTracker", new SessionTracker(user.UserId, remote_address, session));

        return actionMapping.findForward(forward);


    }

    public static void delay(int ms)
    {
        try
        {
            Thread.sleep(ms);
        } catch (Exception e)
        {
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -