首先準(zhǔn)備工作
1、將mysql的jar包拷貝到項目的WEB-INF的lib目錄下
2、將db.properties配置文件拷貝到項目中
需要檢查配置文件中的數(shù)據(jù)庫名和賬號密碼是否正確
3、拷貝工具類到項目中(DBUtil數(shù)據(jù)庫工具類、StringUtil字符串工具類)
測試一下mysql連接是否正常
4、在WebContent目錄下創(chuàng)建statics目錄,用來存放靜態(tài)資源(js、css、image)
需要bootstrap框架和Jquery,將相關(guān)的依賴拷貝到statics目錄下
導(dǎo)入項目
選擇項目右鍵,選擇"Build Path",選擇"Configure Build Path"
1、修改jdk版本
2、添加Tomcat服務(wù)
用戶模塊
通過判斷用戶行為的值調(diào)用不同的方法
用戶行為名稱 actionName
用戶登錄 actionName="login"
用戶列表 actionName="list"
用戶刪除 actionName="delete"
用戶修改 actionName="update"
用戶添加 actionName="add"
用戶退出 actionName="logout"
得到用戶行為
String actionName = request.getParameter("actionName");
判斷用戶行為
if ("login".equals(actionName)) {
?調(diào)用指定方法
用戶登錄();
}
一、用戶登錄
前臺
表單
提交地址:userServlet
提交方式:POST
id屬性值:loginForm
表單元素:
隱藏域:
name="actionName",value="login",設(shè)置隱藏域,傳遞用戶行為給后臺Servlet;后臺Servlet根據(jù)不同的用戶行為調(diào)用對應(yīng)的方法
文本框
name="userName",id="userName",用戶姓名
密碼框
name="userPwd",id="userPwd",用戶密碼
普通按鈕
id="asubmit",綁定點擊事件,判斷參數(shù)非空,提交表單
提示元素:
span元素,用來做提示信息顯示
給"登錄"按鈕綁定點擊事件
1、獲取表單元素的值(用戶姓名、用戶密碼)
2、判斷值是否為空
如果為空,將錯誤信息設(shè)置span元素中,并return
3、如果不為空,提交表單
后臺
1、獲取前臺傳遞的參數(shù) (用戶姓名、用戶密碼)
2、通過字符串工具類StringUtil的isEmpty方法,判斷參數(shù)是否為空
如果為空
將狀態(tài)碼和錯誤原因及響應(yīng)的對象設(shè)置到resultInfo響應(yīng)對象中
將resultInfo響應(yīng)對象設(shè)置到request作用域中
請求轉(zhuǎn)發(fā)跳轉(zhuǎn)到登錄頁面
return
3、如果不為空,通過用戶名從數(shù)據(jù)庫中查詢用戶對象,返回用戶對象(要么查到一個對象,要么為空)
4、判斷用戶對象是否為空
如果為空
將狀態(tài)碼和錯誤原因及響應(yīng)的對象設(shè)置到resultInfo響應(yīng)對象中
將resultInfo響應(yīng)對象設(shè)置到request作用域中
請求轉(zhuǎn)發(fā)跳轉(zhuǎn)到登錄頁面
return
5、如果用戶存在,將數(shù)據(jù)庫中查詢到的用戶密碼與前臺傳遞的用戶密碼作比較
如果密碼不正確
將狀態(tài)碼和錯誤原因及響應(yīng)的對象設(shè)置到resultInfo響應(yīng)對象中
將resultInfo響應(yīng)對象設(shè)置到request作用域中
請求轉(zhuǎn)發(fā)跳轉(zhuǎn)到登錄頁面
如果密碼正確
將用戶對象存到session作用域中
重定向跳轉(zhuǎn)index.jsp
二、用戶列表
前臺
后臺
1、查詢用戶表中的數(shù)據(jù),得到用戶集合
2、判斷用戶集合是否為空
如果為空
將狀態(tài)碼和錯誤原因設(shè)置到resultInfo響應(yīng)對象中
如果不為空
將狀態(tài)碼和錯誤原因及用戶集合設(shè)置到resultInfo響應(yīng)對象中
將對象轉(zhuǎn)換成json格式的字符串,響應(yīng)給ajax的回調(diào)函數(shù)
1、設(shè)置響應(yīng)類型及編碼格式 (json格式)
response.setContentType("application/json;charset=UTF-8");
2、得到字符輸出流
3、通過fastjson的方法將resultInfo對象轉(zhuǎn)換成json字符串
4、通過輸出流輸出json格式的字符串
5、關(guān)閉資源
三、用戶刪除
前臺
1、給每個tr元素添加id屬性值 id="tr_"+userId
2、給刪除按鈕綁定點擊事件,傳遞參數(shù):userId
3、彈出提示框詢問用戶是否確認(rèn)刪除
4、如果是,則發(fā)送ajax請求
code
1=成功
提示刪除成功,移除指定tr記錄
0=失敗
提示刪除失敗
后臺
1、獲取參數(shù)(用戶ID)
2、判斷參數(shù)是否為空
3、通過用戶ID刪除指定記錄,返回受影響的行數(shù)
4、判斷受影響的行數(shù)是否大于0
如果大于0,輸出"1";否則輸出"0"
四、用戶修改
前臺
給"修改"按鈕綁定點擊事件
1、打開修改模態(tài)框 $("#模態(tài)框的ID屬性值").modal("show");
2、通過用戶ID得到要修改的tr對象
3、獲取tr的所有子元素td
4、分別得到具體的td的值,賦給模態(tài)框中的文本
給模態(tài)框中的"提交更改"按鈕綁定點擊事件
1、獲取元素的值(用戶ID、姓名、密碼、年齡、性別)
2、參數(shù)的非空判斷
如果為空,提示用戶
3、發(fā)送ajax請求
返回"1"或"0"
成功
關(guān)閉模態(tài)框
修改指定tr記錄的人單元格的值
提示用戶
失敗
提示用戶
后臺
1、獲取參數(shù)
2、判斷參數(shù)是否為空
3、通過用戶ID修改指定用戶記錄,返回受影響的行數(shù)
4、判斷受影響的行數(shù)是否大于0
如果大于0,輸出"1";否則輸出"0"
五、用戶添加
前臺
給"添加"按鈕綁定點擊事件
1、打開添加模態(tài)框
給模態(tài)框中的"提交更改"按鈕綁定點擊事件
1、獲取元素的值(姓名、密碼、年齡、性別)
2、參數(shù)的非空判斷
如果為空,提示用戶
3、發(fā)送ajax請求
獲取的返回值:? 成功或失敗狀態(tài)碼,返回的主鍵
返回resultInfo對象
code 1=成功;0=失敗
result 主鍵(添加用戶記錄成功后數(shù)據(jù)庫生成的主鍵)
判斷是否添加成功
result.code == 1
關(guān)閉模態(tài)框
添加tr記錄
提示用戶
result.code != 1
提示用戶
后臺
1、獲取參數(shù)
2、判斷參數(shù)是否為空
3、添加用戶記錄,返回主鍵
4、判斷主鍵是否大于0
如果大于0,resultInfo對象的code為1,result的值為主鍵
如果不大于0,resultInfo對象的code為0
六、用戶退出