?? logonaction.java
字號:
package com.qrsx.exam.struts.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 com.qrsx.exam.Constants;
import com.qrsx.exam.dao.DAOFactory;
import com.qrsx.exam.dao.StudentDAO;
import com.qrsx.exam.dao.TeacherDAO;
import com.qrsx.exam.dao.UserDAO;
import com.qrsx.exam.model.Student;
import com.qrsx.exam.model.Teacher;
import com.qrsx.exam.model.User;
import com.qrsx.exam.struts.BaseAction;
import com.qrsx.exam.struts.form.UserForm;
/**
* 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());
/**
* 缺省的處理方法 其功能是跳轉到登錄頁面
*/
@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 {
// 得到用戶提交的參數
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(Constants.SESSION_USER, u);
return mapping.findForward(u.getUserType());
}
// 登錄失敗,設置提示信息,返回登錄頁面
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();
}
/**
* 進入用戶修改密碼頁面
*/
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;
// 得到當前用戶的信息
HttpSession session = request.getSession();
User u = (User) session.getAttribute(Constants.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(Constants.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(Constants.SESSION_USER, t);
} else {
StudentDAO dao = DAOFactory.getDao(StudentDAO.class);
Student s = dao.findById(u.getId(), true);
s.setPassword(user.getPassword());
session.setAttribute(Constants.SESSION_USER, s);
}
// 設置修改成功的提示信息
addMessage(request, "user.msg.pwdsuccess");
} else {
// 設置修改失敗的提示信息
addMessage(request, "user.msg.pwdfail");
}
return mapping.findForward("password");
}
/**
* 跳轉到用戶首頁的方法
*/
public ActionForward homepage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到當前登錄用戶的信息
HttpSession session = request.getSession();
User u = (User) session.getAttribute(Constants.SESSION_USER);
// 跳轉到用戶的首頁
return mapping.findForward(u.getUserType());
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -