📄 loginaction.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 + -