?? logonaction.java
字號(hào):
package cn.hxex.exam.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.hxex.exam.dao.DAOFactory;
import cn.hxex.exam.dao.StudentDAO;
import cn.hxex.exam.dao.TeacherDAO;
import cn.hxex.exam.dao.UserDAO;
import cn.hxex.exam.form.UserForm;
import cn.hxex.exam.model.Student;
import cn.hxex.exam.model.Teacher;
import cn.hxex.exam.model.User;
import cn.hxex.exam.struts.BaseAction;
import cn.hxex.exam.struts.StrutsConstants;
/**
* The action about user login
*
* @struts.action name="userForm" path="/logon" scope="request"
* input="/logon.jsp" validate="false" parameter="p"
* roles="unspecified,logon"
*
* @struts.action-forward name="admin" path="/admin.jsp"
*
* @struts.action-forward name="student" path="/student.jsp"
*
* @struts.action-forward name="teacher" path="/teacher.jsp"
*
* @struts.action-forward name="password" path="/manage/password.jsp"
*
* @author Administrator
*
*/
public class LogonAction extends BaseAction
{
protected final Log log = LogFactory.getLog(getClass());
/**
* 缺省的處理方法 其功能是跳轉(zhuǎn)到登錄頁(yè)面
*/
@Override
public ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
return mapping.getInputForward();
}
/**
* 用戶登錄功能
*/
public ActionForward logon(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到用戶提交的參數(shù)
UserForm user = (UserForm) form;
// 檢索用戶信息
UserDAO dao = DAOFactory.getDao(UserDAO.class);
User u = dao.getUserByName(user.getName());
if (u != null && u.getPassword().equals(user.getPassword()))
{
// 登錄成功,保存用戶信息到Session中
HttpSession session = request.getSession();
session.setAttribute(StrutsConstants.SESSION_USER, u);
return mapping.findForward(u.getUserType());
}
// 登錄失敗,設(shè)置提示信息,返回登錄頁(yè)面
addMessage(request, "logon.failed");
return mapping.getInputForward();
}
/**
* 用戶退出登錄功能
*/
public ActionForward logoff(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
HttpSession session = request.getSession();
session.invalidate();
return mapping.getInputForward();
}
/**
* 進(jìn)入用戶修改密碼頁(yè)面
*/
public ActionForward passwordin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
return mapping.findForward("password");
}
/**
* 用戶修改密碼功能
*/
public ActionForward password(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到用戶提交的信息
UserForm user = (UserForm) form;
// 得到當(dāng)前用戶的信息
HttpSession session = request.getSession();
User u = (User) session.getAttribute(StrutsConstants.SESSION_USER);
// 取得用戶輸入的舊密碼
String oldpassword = request.getParameter("oldpassword");
if (u.getPassword().equals(oldpassword))
{
// 修改用戶密碼
if (u.isAdmin())
{
UserDAO dao = DAOFactory.getDao(UserDAO.class);
User us = dao.findById(u.getId(), true);
us.setPassword(user.getPassword());
session.setAttribute(StrutsConstants.SESSION_USER, us);
}
else if (u.isTeacher())
{
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
Teacher t = dao.findById(u.getId(), true);
t.setPassword(user.getPassword());
session.setAttribute(StrutsConstants.SESSION_USER, t);
}
else
{
StudentDAO dao = DAOFactory.getDao(StudentDAO.class);
Student s = dao.findById(u.getId(), true);
s.setPassword(user.getPassword());
session.setAttribute(StrutsConstants.SESSION_USER, s);
}
// 設(shè)置修改成功的提示信息
addMessage(request, "user.msg.pwdsuccess");
}
else
{
// 設(shè)置修改失敗的提示信息
addMessage(request, "user.msg.pwdfail");
}
return mapping.findForward("password");
}
/**
* 跳轉(zhuǎn)到用戶首頁(yè)的方法
*/
public ActionForward homepage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到當(dāng)前登錄用戶的信息
HttpSession session = request.getSession();
User u = (User) session.getAttribute(StrutsConstants.SESSION_USER);
// 跳轉(zhuǎn)到用戶的首頁(yè)
return mapping.findForward(u.getUserType());
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -