书城项目第三阶段及其源码
生活随笔
收集整理的這篇文章主要介紹了
书城项目第三阶段及其源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
書城項目第三階段
- 1.第三階段:
- 頁面樣式
- 首頁
- 登錄
- 登錄成功
- 注冊
- 注冊成功
- a) 頁面jsp動態化
- 所有需要的jar包
- index.jsp
- 源碼pages目錄下
- user
- login.jsp
- login_success.jsp
- regist.jsp
- regist_success.jsp
- cart包
- cart.jsp
- checkout.jsp
- manager包
- book_edit.jsp
- book_manager.jsp
- manager.jsp
- order_manager.jsp
- order
- order.jsp
- b)抽取頁面中相同的內容
- common包 在pages下新建
- i. head 中css、 jquery、base標簽
- head.jsp
- ii.每個頁面的頁腳
- footer.jsp
- iii.登錄成功后的菜單
- login_sucess_menu.jsp
- iv. manager模塊的菜單
- manager_menu.jsp
- c)登錄,注冊錯誤提示,及表單回顯
- d) BaseServlet的抽取
- 代碼優化一:合并LoginServlet和RegistServlet程序為UserServlet
- 代碼優化二:使用反射優化到了else if 代碼
- UserServletTest test包下測試類
- 抽取BaseServlet程序
- BaseServlet
- e)數據的封裝和抽取BeanUtis的使用
- WebUtils 在Utils包下
- UserServlet 在web包下
1.第三階段:
頁面樣式
首頁
登錄
登錄成功
注冊
注冊成功
a) 頁面jsp動態化
注意導jsp和EL表達式有關的jar包,以及配置
所有需要的jar包
注意collections要用3.x的,不能是4.x的
1、在html頁面頂行添加page指令
2、修改文件后綴名為.jsp
3、使用IDEA搜索替換.html為.jsp(快捷鍵Ctrl+Shift+R)
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>書城首頁</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%></head> <body><div id="header"><img class="logo_ing" alt="" src="static/img/logo.gif"><span class= "wel_word">網上書城</span><div><a href="pages/user/login.jsp">登錄</a><a href="pages/user/regist.jsp">注冊</a><a href="pages/cart/cart.jsp">購物車</a><a href="pages/manager/manager.jsp">后臺管理</a></div><div id="main"><div id="book"><div class="book_cond"><form action="" method="get">價格:<input id="min" type="text" name="min" valuen="">元-<input id="max" type="text" name="max" value="">元<input type="submit" value="查詢"/></form></div><div style="..."><span>您的購物車中有3件商品</span><div>您剛剛將<span style="...">時間簡史</span>加入到了購物車中</div></div><div class="b_list"><div class="img_div"><img class="book_img" alt="static/img/default.jpg"/></div><div class="book_info"><div class="book_name"><span class="sp1">書名:</span><span class="sp2">時間簡史</span></div><div class="book_author"><span class="sp1">作者:</span><span class="sp2">霍金</span></div><div class= "book_price"><span class="sp1">價格:</span><span class="sp2">¥30.00</span></div><div class="book_sales"><span class="sp1">銷量:</span><span class="sp2">230</span></div><div class="book_amount"><span class="sp1">庫存:</span><span class="sp2">1000</span></div><div class="book_add"><button>加入購物車:</button></div></div></div></div><div id="page_nav"><a href="#">首頁</a><a href="#">上一頁</a><a href="">3</a>【4】<a href="#">5</a><a href="#">下一頁</a><a href="#">末頁</a>共10頁,30條記錄 到第<input value="4" name="pn" id="pn_input"/>頁<input type="button" value="確定"></div></div></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>源碼pages目錄下
user
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>尚硅谷會員登錄頁面</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%></head> <body><div id="login_header"><img class="logo_img" alt="" src="static/img/logo.gif" ></div><div class="login banner"><div id="l_content"><span class="login_word">歡迎登錄</span></div><div id="content"><div class="login_form"><div class="login_box"><div class="tit"><h1>尚硅谷會員</h1><a href="pages/user/regist.jsp">立即注冊</a></div><div class="msg_cont"><b></b><span class="errorMsg"><%=request.getAttribute("msg")==null?"請輸入用戶名和密碼":request.getAttribute("msg")%><%-- 請輸入用戶名和密碼--%></span></div><div class="form"><form action="userServlet" method="post"><input type="hidden" name="action" value="login"/><label>用戶名稱:</label><input class="itxt" type="text" placeholder="請輸入用戶名"autocomplete="off" tabindex="1" name="username"value="<%=request.getAttribute("username")==null?"":request.getAttribute("username")%>"/><br/><br/><label>用戶密碼:</label><input class="itxt" type="password" placeholder="請輸入密碼" autocomplete="off" tabindex="1" name="password"/><br/><br/><input type="submit" value="登錄" id="sub_btn"/></form></div></div></div></div></div><%--靜態包含頁腳內容--%><%@ include file="/pages/common/footer.jsp" %></body> </html>login_success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>尚硅谷會員登錄</title><style type="text/css">h1{text-align: center;margin-top: 200px;}h1 a {color: red;}</style> </head> <body> <div id="header"><img class="logo_img" alt="" src="static/img/logo.gif"><%-- 靜態包含登錄成功之后的菜單--%><%@ include file="/pages/common/login_sucess_menu.jsp"%><div id="main"><h1>歡迎回來<a href="../../index.jsp">轉到主頁</a></h1></div> </div><%--靜態包含頁腳內容--%> <%@include file="/pages/common/footer.jsp"%></body> </html>regist.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html><html><head><meta charset="UTF-8"><title>尚硅谷會員注冊頁面</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><script type="text/javascript">//頁面加載完成之后$(function () {//給注冊綁定單擊事件$("#sub_btn").click(function () {//驗證用戶名:必須由字母,數字下劃線組成,并且長度為5到12位//1獲取用戶名輸入框里的內容var usernameText=$("#username").val();//2創建正則表達式對象var usernamePatt=/^\w{5,12}$/;//3使test方法驗證if(!usernamePatt.test(usernameText)){//4提示用戶結果$("span.errorMsg").text("用戶名不合法!");return false;}//驗證密碼:必須由字母,數字下劃線組成,并且長度為5到12位//1獲取用戶名輸入框里的內容var passwordText=$("#password").val();//2創建正則表達式對象var passwordPatt=/^\w{5,12}$/;//3使test方法驗證if(!passwordPatt.test(passwordText)){//4提示用戶結果$("span.errorMsg").text("密碼不合法!");return false;}//驗證確認密碼:和密碼相同//1獲取確認密碼內容var repwdText=$("#repwd").val();//2和密碼相比較if (repwdText!=passwordText){//3提示用戶$("span.errorMsg").text("確認密碼和密碼不一致!");return false;}//郵箱驗證:xxxxx@xxx.com//1獲取郵箱里的內容var emailText=$("#email").val();//2創建正則表達式對象var emailPatt=/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;//3使test方法驗證if(!emailPatt.test(emailText)){//4提示用戶結果$("span.errorMsg").text("郵箱格式不合法!");return false;}//驗證碼現在只需要驗證用戶已輸入。因為還沒講到服務器。驗證碼生成。var codeText=$("#code").val();//去掉驗證碼前后空格alert("去空格前["+codeText+"]");codeText=$.trim(codeText);alert("去空格后["+codeText+"]");if (codeText==null||codeText==""){//提示用戶結果$("span.errorMsg").text("驗證碼不能為空");return false;}$("span.errorMsg").text("");});});</script><style type="text/css">.login_form {height: 420px;margin-top: 25px;}</style></head><body><div id="login_header"><img class="logo_img" alt="" src="static/img/logo.gif"> </div><div class="login_banner"><div id="l_content"><span class="login_word">歡迎注冊</span></div><div id="content"><div class="login_form"><div class="login_box"><div class="tit"><h1>注冊尚硅谷會員</h1><span class="errorMsg"><%=request.getAttribute("msg")==null?"":request.getAttribute("msg")%></span></div><div class="form"><form action="userServlet" method="post"><input type="hidden" name="action" value="regist"/><label>用戶名稱:</label><input class="itxt" type="text" placeholder="請輸入用戶名"value="<%=request.getAttribute("username")==null?"":request.getAttribute("username")%>"autocomplete="off" tabindex="1" name="username" id="username"/><br/><br/><label>用戶密碼:</label><input class="itxt" type="password" placeholder="請輸入密碼"autocomplete="off" tabindex="1" name="password" id="password"/><br/><br/><label>確認密碼:</label><input class="itxt" type="password" placeholder="確認密碼"autocomplete="off" tabindex="1" name="repwd" id="repwd"/><br/><br/><label>電子郵件:</label><input class="itxt" type="text" placeholder="請輸入郵箱地址"value="<%=request.getAttribute("email")==null?"":request.getAttribute("email")%>"autocomplete="off" tabindex="1" name="email" id="email"/><br/><br/><label>驗證碼:</label><input class="itxt" type="text" name="code" style="..." id="code"/><img alt="" src="static/img/code.bmp" style="..."><br/><br/><input type="submit" value="注冊" id="sub_btn"/></form></div></div></div></div> </div><%--靜態包含頁腳內容--%> <%@include file="/pages/common/footer.jsp"%></body></html>regist_success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>尚硅谷會員注冊頁面</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><style type="text/css">h1{text-align: center;margin-top: 200px;}h1 a {color: red;}</style> </head> <body><div id="header"><img class="logo_img" alt="" src="static/img/logo.gif"><span class="wel_word"></span><%-- 靜態包含登錄成功之后的菜單--%><%@ include file="/pages/common/login_sucess_menu.jsp"%></div><div id="main"><h1>注冊成功!<a href="../../index.jsp">轉到主頁</a></h1></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>cart包
cart.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:49To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>購物車</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%></head> <body><div id="header"><img class="logo_img" alt="" src="static/img/logo.gif"><span class="wel_word">購物車</span><%-- 靜態包含登錄成功之后的菜單--%><%@ include file="/pages/common/login_sucess_menu.jsp"%></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%> </body> </html>checkout.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:49To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>結算頁面</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><style type="text/css">h1 {text-align: center;margin-top: 200px;} </style> </head> <body><div id="header"><img class="logo_img" alt="" src="../../static/img/logo.gif"><span class="wel_word">結算</span><%-- 靜態包含登錄成功之后的菜單--%><%@ include file="/pages/common/login_sucess_menu.jsp"%></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%> </body> </html>manager包
book_edit.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:46To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>編輯圖書</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><style type="text/css">h1 {text-align: center;margin-top: 200px;}h1 a{color:red;}input {text-align: center;}</style> <body><div id="header"><img class="logo_ing" alt="" arc="../../static/1mg/logo.gif"><span class="wel_word">編輯圖書</span><%-- 靜態包含manager 管理模塊的菜單 --%><%@ include file="/pages/common/manager_menu.jsp"%></div><div id="main"><form action="book_manager.jsp"><table><tr><td>名稱</td><td>價格</td><td>作者</td><td>銷量</td><td>庫存</td><td colspan="2">操作</td></tr><tr><td><input nane="book_name" type="text" value="時間簡史"/></td><td><input nane="book_price" type="text" value="30.00"/></td><td><input name="book_author" type="text" value="霍金"/></td><td><input name="book_sales" type="text" value="200"/></td><td><input name="book_stock" type="text" value="300"/></td><td><input type= "submit" value="提交"/></td></tr></table></form></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>book_manager.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:47To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><meta charset="UTF-8"><title>圖書管理</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%></head> <body><div id="header"><img class="logo_img" alt="" src="../../static/img/logo.gif"> <span class="wel_word">圖書管理系統</span><%-- 靜態包含manager 管理模塊的菜單 --%><%@ include file="/pages/common/manager_menu.jsp"%></div><div id="main"><table><tr><td>名稱</td><td>價格</td><td>作者</td><td>銷量</td><td>庫存</td><td colspan="2">操作</td></tr><tr><td>時間簡史</td><td>20.00</td><td>霍金</td><td>200</td><td>400</td><td><a href="book_edit.jsp">修改</a> </td><td><a href="#">刪除</a> </td></tr><tr><td>時間簡史</td><td>20.00</td><td>霍金</td><td>200</td><td>400</td><td><a href="book_edit.jsp">修改</a> </td><td><a href="#">刪除</a> </td></tr><tr><td>時間簡史</td><td>20.00</td><td>霍金</td><td>200</td><td>400</td><td><a href="book_edit.jsp">修改</a> </td><td><a href="#">刪除</a> </td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td><a href="book_edit.jsp">添加圖書</a> </td></tr></table></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>manager.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:47To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>后臺管理</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><style type="text/css">h1{text-align: center;margin-top: 200px;}</style></head> <body><div id="header"><img class="logo_img" alt="" src="../../static/img/logo.gif"><span class="wel_word">后臺管理系統</span><%-- 靜態包含manager 管理模塊的菜單 --%><%@ include file="/pages/common/manager_menu.jsp"%></div><div><h1>歡迎管理員進入后臺管理系統</h1></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>order_manager.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:47To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head><title>訂單管理</title> </head> <body><div id="header"><img class="logo_img" alt="" src="../../static/img/logo.gif"><span class="wel_word">訂單管理系統</span><%-- 靜態包含manager 管理模塊的菜單 --%><%@ include file="/pages/common/manager_menu.jsp"%></div><div id="main"><table><tr><td>2015.04.20</td><td>20.00</td><td><a href="#">查看詳情</a></td><td>已發貨</td></tr><tr><td>2016.04.20</td><td>20.00</td><td><a href="#">查看詳情</a></td><td>已發貨</td></tr><tr><td>2015.04.20</td><td>20.00</td><td><a href="#">查看詳情</a></td><td>已發貨</td></tr><tr><td>2014.04.20</td><td>20.00</td><td><a href="#">查看詳情</a></td><td>已發貨</td></tr></table></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>order
order.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 02:45To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>我的訂單</title><%--靜態包含 base標簽,css樣式,jquery文件 --%><%@ include file="/pages/common/head.jsp"%><style type="text/css">h1 {text-align: center;margin-top: 200px;} </style> </head> <body><div id="header"><img class="logo_img" alt="" src="../../static/img/logo.gif"><span class="wel_word">我的訂單</span><%-- 靜態包含登錄成功之后的菜單--%><%@ include file="/pages/common/login_sucess_menu.jsp"%></div><div id="main"><table></table></div><%--靜態包含頁腳內容--%><%@include file="/pages/common/footer.jsp"%></body> </html>b)抽取頁面中相同的內容
common包 在pages下新建
i. head 中css、 jquery、base標簽
head.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 03:59To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; %><!--寫base標簽,永遠固定相對路徑跳轉的結果--> <base href="<%=basePath%>"> <link type="text/css" rel="stylesheet" href="static/css/style.css"><script type="text/javascript" src="static/script/jquery.js"></script>ii.每個頁面的頁腳
footer.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 04:37To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <div id="bottom"><span>尚硅谷書城.Copyright ?2015</span> </div>iii.登錄成功后的菜單
login_sucess_menu.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 03:51To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <div><span>歡迎<span class="um_span">韓總</span>光臨尚硅谷書城</span><a href="../order/order.jsp">我的訂單</a><a href="../../index.jsp">注銷</a><a href="../../index.jsp">返回</a> </div>iv. manager模塊的菜單
manager_menu.jsp
<%--Created by IntelliJ IDEA.User: lenovoDate: 2021/8/21Time: 下午 05:38To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <div><a href="pages/manager/book_manager.jsp">圖書管理</a><a href="order_manager.jsp">訂單管理</a><a href="../../index.jsp">返回商城</a> </div>c)登錄,注冊錯誤提示,及表單回顯
d) BaseServlet的抽取
代碼優化一:合并LoginServlet和RegistServlet程序為UserServlet
在實際的項目開發中,一個模塊,一般只使用一個Servlet程序。
給login.jsp頁面添加隱藏域action,和修改請求地址
給regist.jsp頁面添加隱藏域action,和修改請求地址
代碼優化二:使用反射優化到了else if 代碼
UserServletTest test包下測試類
package com.atguigu.test;import java.lang.reflect.Method;public class UserServletTest {public void login(){System.out.println("這是login()方法調用了");}public void regist(){System.out.println("這是regist()方法調用了");}public void updateUser(){System.out.println("這是updateUser()方法調用了");}public void updateUserPassword(){System.out.println("這是updateUserPassword()方法調用了");}public static void main(String[] args) {String action="regist";try {//獲取action業務鑒別字符串,獲取相應的業務方法 反射對象Method method = UserServletTest.class.getDeclaredMethod(action);System.out.println(method);//調用目標業務方法method.invoke(new UserServletTest());} catch (Exception e) {e.printStackTrace();}}}抽取BaseServlet程序
其他xxxServlet繼承BaseServlet即可
BaseServlet
package com.atguigu.web;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.Method;public abstract class BaseServlet extends HttpServlet {protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String action=req.getParameter("action"); // System.out.println(action);//action的value和調用的方法名是統一的 // if ("login".equals(action)){ System.out.println("處理登錄的需求"); // login(req,resp); // }else if ("regist".equals(action)){ System.out.println("處理注冊的需求"); // regist(req,resp); // }//反射try {//獲取action業務鑒別字符串,獲取相應的業務方法 反射對象Method method = this.getClass().getDeclaredMethod(action,HttpServletRequest.class,HttpServletResponse.class);//調用目標業務方法method.invoke(this,req,resp);} catch (Exception e) {e.printStackTrace();}}}e)數據的封裝和抽取BeanUtis的使用
BeanUtils 工具類,它可以一次性把所有請求的參數注入到JavaBean中。
BeanUtils不是JDK的類。而是第三方的工具類。所以需要導包。
1、導入需要的jar包
commons-beanutils-1.9.4.jar 下載地址
commons-logging-1.2.jar BeanUtils依賴logging包
2、使用BeanUtils類方法實現注入。
BeanUtils.populate(user,req.getParameterMap());//出現NoClassDefFoundError錯誤導入commons-collections 3.x.jar,4.x不行WebUtils 在Utils包下
package com.atguigu.utils;import org.apache.commons.beanutils.BeanUtils;import java.util.Map;public class WebUtils {/*** 把Map中的值注入到對應的JavaBean屬性中* @param value* @param bean** HttpServletRequest* Dao層* Service層* web層 耦合度高**/ // public static void copyParamToBean(HttpServletRequest req,Object bean ){public static <T> T copyParamToBean(Map value, T bean ){try {System.out.println("注入之前:"+bean);/*** 把所有請求的參數都注入到user對象中*/BeanUtils.populate(bean,value);//出現NoClassDefFoundError錯誤導入commons-collections3.x.jar,4.x不行System.out.println("注入之后:"+bean);} catch (Exception e) {e.printStackTrace();}return bean;}}UserServlet 在web包下
package com.atguigu.web; import com.atguigu.pojo.User; import com.atguigu.service.UserService; import com.atguigu.service.impl.UserServiceImpl; import com.atguigu.utils.WebUtils;import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;public class UserServlet extends BaseServlet {private UserService userService = new UserServiceImpl();/*** 處理登錄的功能* @param req* @param resp* @throws ServletException* @throws IOException*/protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1、獲取請求的參數String username = req.getParameter("username");String password = req.getParameter("password");//2、調用XxxService.xxx()處理業務User loginUser = userService.login(new User(null, username, password, null));//如果等于null,說明登錄失敗if (loginUser==null){// 把錯誤信息,和回顯的表單項信息,保存到Request域中req.setAttribute("msg","用戶名或密碼錯誤!");req.setAttribute("username",username);// 跳回登錄頁面req.getRequestDispatcher("/pages/user/login.jsp").forward(req,resp);}else {// 成功// 跳到成功頁面login_success.jspreq.getRequestDispatcher("/pages/user/login_success.jsp").forward(req,resp);}}/*** 處理注冊的功能* @param req* @param resp* @throws ServletException* @throws IOException*/protected void regist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1、獲取請求的參數String username = req.getParameter("username");String password = req.getParameter("password");String email = req.getParameter("email");String code = req.getParameter("code");// Map<String, String[]> parameterMap = req.getParameterMap(); // for (Map.Entry<String, String[]> entry:parameterMap.entrySet()) { // System.out.println(entry.getKey()+"="+ Arrays.asList(entry.getValue())); // }// User user=new User(); // WebUtils.copyParamToBean(req,user);//注入賦值,與User類中setXxx對應User user = WebUtils.copyParamToBean(req.getParameterMap(),new User());//注入賦值,與User類中setXxx對應// 2、檢查驗證碼是否正確 ===寫死,要求驗證碼為:abcdeif ("abcde".equalsIgnoreCase(code)){ // 3、檢查用戶名是否可用if (userService.existUsername(username)){System.out.println("用戶名["+username+"]已存在!");// 把回顯信息保存到Request域中req.setAttribute("msg","用戶名已存在!!");req.setAttribute("username",username);req.setAttribute("email",email); // 跳回注冊頁面req.getRequestDispatcher("/pages/user/regist.jsp").forward(req,resp);}else { // 可用 調用Service保存到數據庫userService.registUser(new User(null,username,password,email)); // 跳到注冊成功束面regist_success.jspreq.getRequestDispatcher("/pages/user/regist_success.jsp").forward(req,resp);}}else {// 把回顯信息保存到Request域中req.setAttribute("msg","驗證碼錯誤!!");req.setAttribute("username",username);req.setAttribute("email",email);System.out.println("驗證碼["+code+"]錯誤,");req.getRequestDispatcher("/pages/user/regist.jsp").forward(req,resp);}}}總結
以上是生活随笔為你收集整理的书城项目第三阶段及其源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ftm模块linux驱动,飞思卡尔K60
- 下一篇: jenkins使用python plug