📄 loginaction.java
字号:
package com.stuman.web.struts.action;import java.io.UnsupportedEncodingException;import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.beanutils.BeanUtilsBean;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionMessages;import org.apache.struts.validator.DynaValidatorForm;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import com.stuman.dao.hibernate.HibernateUtil;import com.stuman.domain.Admin;import com.stuman.domain.Student;import com.stuman.domain.Teacher;import com.stuman.web.struts.form.LoginForm;public class LoginAction extends Action { private BeanUtilsBean beanUtilsBean; public LoginAction() { this.beanUtilsBean = new BeanUtilsBean(); } /** * Method execute * * @param mapping * @param form * @param request * @param response * @return ActionForward * @throws UnsupportedEncodingException */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { // TODO Auto-generated method stub HttpSession session = request.getSession(); Session s = HibernateUtil.currentSession(); LoginForm loginForm = new LoginForm(); DynaValidatorForm dform = (DynaValidatorForm) form; try { this.getBeanUtilsBean().copyProperties(loginForm, dform); } catch (IllegalAccessException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (InvocationTargetException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // 声明字符串型变量sort,并调用loginForm的getSort函数取得类型为其赋值 String sort = loginForm.getSort(); // 声明字符串型变量username,并调用loginForm的getUsername函数取得用户名为其赋值 String username = loginForm.getUsername(); // 声明字符串型变量password,并调用loginForm的getPassword函数取得密码为其赋值 String password = loginForm.getPassword(); // 声明整型变量loginSort,将上面的字符串类型变量sort表示的数字转换成整型为其赋值 int loginSort = Integer.parseInt(sort); // 声明字符串类型数组userlist String[] userlist = new String[2]; // 分别将刚刚取得的用户名和密码存入到userlist中 userlist[0] = username; userlist[1] = password; List list = new ArrayList(); try { // 开始事务 HibernateUtil.beginTransaction(); String str = new String(); // 使用程序结构控制语句swicth,根据loginSort的值进入不同的分支 switch (loginSort) { // 类型1为学生用户 case 1: str = " from Student as stu where stu.name=:stuName and stu.password=:stuPassword"; Query query = s.createQuery(str); // System.out.println(username + " " + password); // 调用其setString方法,并为str中的stuName,stuPassword赋值为username // 和password query.setString("stuName", username); query.setString("stuPassword", password); // 调用query对象的list函数执行查询, list = query.list(); if (list.size() > 0) { // 如果结果大于0,表示找到该用户名,关闭Session对象s request.getSession().setAttribute("stuid", ((Student) list.get(0)).getId()); request.getSession().setAttribute("deptment", ((Student) list.get(0)).getDepartment()); s.close(); // 页面跳转 return mapping.findForward("studentLoginsuccess"); } else // 否则表示该用户不存在 break; case 2: str = " from Teacher tea where tea.name =? and tea.password ='" + password + "'"; Query query2 = s.createQuery(str); // System.out.println(username + " " + password); query2.setString(0, username); list = query2.list(); if (list.size() > 0) { request.getSession().setAttribute("teaid", ((Teacher) list.get(0)).getId()); request.getSession().setAttribute("teacherId", ((Teacher) list.get(0)).getId()); s.close(); return mapping.findForward("teacherLoginsuccess"); } else break; case 3: str = " from Admin admin where admin.name = ? and admin.password ='" + password + "'"; // System.out.println(username + " " + password); Query query3 = s.createQuery(str); query3.setString(0, username); list = query3.list(); if (list.size() > 0) { request.getSession().setAttribute("id", ((Admin) list.get(0)).getId()); s.close(); return mapping.findForward("adminLoginsuccess"); } else break; default: break; } } catch (HibernateException e) { // 如果有异常,打印出异常结果 e.printStackTrace(); } finally { s.close(); } // 创建ActionMessages类的对象errors,用来保存错误信息 ActionMessages errors = new ActionMessages(); errors.add("login error", new ActionMessage("login.error")); saveErrors(request, errors); return mapping.getInputForward(); } public BeanUtilsBean getBeanUtilsBean() { return beanUtilsBean; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -