案例46-crm練習客戶登錄
阿新 • • 發佈:2018-03-08
登錄密碼 table pass del imp HA 登錄名 fig return
1 login.jsp代碼
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/frameset.dtd"> <HTML xmlns="http://www.w3.org/1999/xhtml"> <HEAD> <META http-equiv=Content-Type content="text/html; charset=utf-8"> <STYLE type=text/css> BODY { FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋體 } TD { FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋體 } </STYLE> <META content="MSHTML 6.00.6000.16809"name=GENERATOR></HEAD> <BODY> <FORM id=form1 name=form1 action="${pageContext.request.contextPath }/UserAction_login" method=post> <DIV id=UpdatePanel1> <DIV id=div1 style="LEFT: 0px; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #0066ff"></DIV> <DIV id=div2 style="LEFT: 0px; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #0066ff"></DIV> <DIV> </DIV> <DIV> <TABLE cellSpacing=0 cellPadding=0 width=900 align=center border=0> <TBODY> <TR> <TD style="HEIGHT: 105px"><IMG src="images/login_1.gif" border=0></TD></TR> <TR> <TD background=images/login_2.jpg height=300> <TABLE height=300 cellPadding=0 width=900 border=0> <TBODY> <TR> <TD colSpan=2 height=35></TD></TR> <TR> <TD width=360></TD> <TD> <TABLE cellSpacing=0 cellPadding=2 border=0> <TBODY> <TR> <TD style="HEIGHT: 28px" width=80>登 錄 名:</TD> <TD style="HEIGHT: 28px" width=150><INPUT id=txtName style="WIDTH: 130px" name="user_code"></TD> <TD style="HEIGHT: 28px" width=370><SPAN id=RequiredFieldValidator3 style="FONT-WEIGHT: bold; VISIBILITY: hidden; COLOR: white">請輸入登錄名</SPAN></TD></TR> <TR> <TD style="HEIGHT: 28px">登錄密碼:</TD> <TD style="HEIGHT: 28px"><INPUT id=txtPwd style="WIDTH: 130px" type=password name="user_password"></TD> <TD style="HEIGHT: 28px"><SPAN id=RequiredFieldValidator4 style="FONT-WEIGHT: bold; VISIBILITY: hidden; COLOR: white">請輸入密碼</SPAN></TD></TR> <TR> <TD style="HEIGHT: 28px">驗證碼:</TD> <TD style="HEIGHT: 28px"><INPUT id=txtcode style="WIDTH: 130px" name=txtcode></TD> <TD style="HEIGHT: 28px"> </TD></TR> <TR> <TD style="HEIGHT: 18px"></TD> <TD style="HEIGHT: 18px"><span style="color:red"><s:property value="exception.message"/></span></TD> <TD style="HEIGHT: 18px"></TD></TR> <TR> <TD></TD> <TD><INPUT id=btn style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" type=image src="images/login_button.gif" name=btn> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD><IMG src="images/login_3.jpg" border=0></TD></TR></TBODY></TABLE></DIV></DIV> </FORM> <s:debug></s:debug> </BODY></HTML>
2 UserAction
package www.test.web.action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import www.test.domain.User; import www.test.service.UserService; import www.test.service.impl.UserServiceImpl; public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); private UserService us = new UserServiceImpl(); public String login() throws Exception { //1 調用Service 執行登陸操作 User u = us.login(user); //2 將返回的User對象放入session域作為登陸標識 ActionContext.getContext().getSession().put("user", u); //3 重定向到項目的首頁 return "toHome"; } @Override public User getModel() { return user; } }
3 UserServiceImpl
package www.test.service.impl; import www.test.dao.UserDao; import www.test.dao.impl.UserDaoImpl; import www.test.domain.User; import www.test.service.UserService; import www.test.utils.HibernateUtils; public class UserServiceImpl implements UserService { private UserDao ud = new UserDaoImpl(); @Override public User login(User user) { //打開事務 HibernateUtils.getCurrentSession().beginTransaction(); //1.調用Dao根據登陸名稱查詢User對象 User existU = ud .getByUserCode(user.getUser_code()); //提交事務 HibernateUtils.getCurrentSession().getTransaction().commit(); if(existU==null){ //獲得不到=>拋出異常提示用戶名不存在 throw new RuntimeException("用戶名不存在!"); } //2 比對密碼是否一致 if(!existU.getUser_password().equals(user.getUser_password())){ //不一致=>拋出異常提示密碼錯誤 throw new RuntimeException("密碼錯誤!"); } //3 將數據庫查詢的User返回 return existU; } }
4 UserDaoImpl
package www.test.dao.impl; import org.hibernate.Query; import org.hibernate.Session; import www.test.dao.UserDao; import www.test.domain.User; import www.test.utils.HibernateUtils; public class UserDaoImpl implements UserDao { @Override public User getByUserCode(String user_code) { //HQL查詢 //1.獲得Session Session session = HibernateUtils.getCurrentSession(); //2 書寫HQL String hql = "from User where user_code = ? "; //3 創建查詢對象 Query query = session.createQuery(hql); //4 設置參數 query.setParameter(0, user_code); //5 執行查詢 User u = (User) query.uniqueResult(); return u; } }
5 struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 指定struts2是否以開發模式運行 1.熱加載主配置.(不需要重啟即可生效) 2.提供更多錯誤信息輸出,方便開發時的調試 --> <constant name="struts.devMode" value="true"></constant> <package name="crm" namespace="/" extends="struts-default" > <global-exception-mappings> <!-- 如果出現名為java.lang.RuntimeException的異常,就跳轉到名為error的結果 --> <exception-mapping result="error" exception="java.lang.RuntimeException"></exception-mapping> </global-exception-mappings> <action name="CustomerAction_*" class="www.test.web.action.CustomerAction" method="{1}" > <result name="list" >/jsp/customer/list.jsp</result> <result name="toList" type="redirectAction"> <param name="actionName">CustomerAction_list</param> <param name="namespace">/</param> </result> </action> <action name="UserAction_*" class="www.test.web.action.UserAction" method="{1}" > <result name="toHome" type="redirect">/index.htm</result> <result name="error" type="dispatcher">/login.jsp</result> </action> </package> </struts>
案例46-crm練習客戶登錄