




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JavaWeb 實現登錄注冊(超詳細附代碼)前相信剛學Javaweb的伙伴第個接觸的個項都是從項的登錄注冊開始的。 下個項中的登錄注冊將會帶家從零開始學習怎么設計登錄注冊流程.登錄注冊設計流程注冊的數據流程那么我們的前端數據是怎么傳向后端的? 1.先這我們是 表單傳遞 通過form提交2.在這,我們輸的姓名和密碼,點擊注冊按鈕。此時輸的這三個數據,我們可以看做成是個表單的數據,這些數據會提交到服務器上:3.此時,個叫Tomcat的東西會處理這個請求,4.得到請求之后,Tomcat會將這個請求交由Servlet來進處理5.Servlet調Dao層寫的各種實現法,與數據庫進交互(curd調仔)那么
2、下就是注冊操作的主要調流程圖register.jspregistServletUserDB第步第步第三步4.登錄的數據流程登錄操作的主要調流程圖Login.jspLoginServletUserDB第步第步第三步第四步部分代碼的展register.jsp注冊頁 通過表單實現跳轉到servlet123456789world message board of the future10 11 1213Register14 15 16 171819202122232425 26 27 28 2930 31 32 33 3435$message36 37 38 39 40 復制代碼RegisterSer
3、vlet.java業務層:處理注冊業務12package Sevlet;3import java.io.IOException;4import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http
4、.HttpSession;567891011 import javaBean.User;12 import useBean.UserDB;1314 WebServlet(/RegistServlet)15 public class RegistServlet extends HttpServlet 16 private static final long serialVersionUID = 1L;17 String message =;17 String message =;1819202122public RegistServlet() super();23 protected void
5、doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 242526272829303132request.setCharacterEncoding(utf-8);/獲取隱藏域的信息String action = request.getParameter(action);String url =register.jsp;if(action.equals(regist)url = registerUser(request,response);getS
6、ervletContext().getRequestDispatcher(url).forward(request, response);33 /注冊函數34 private String registerUser(HttpServletRequest request,HttpServletResponse response) 3536373839404142434445464748495051525354555657585960616263646566676869707172String username = request.getParameter(username);String pas
7、sword = request.getParameter(password);String password2 = request.getParameter(password2);String message = ;/HttpSession類型的對象HttpSession session = request.getSession();/User對象User user = new User();user.setusername (username);user.setpassword(password);String url = /login.jsp;if(password.equals(pass
8、word2)if( !UserDB.UserExists(username) ) message = Registration successful! and login in;session.setAttribute(message, message);/將注冊戶信息寫數據庫UserDB.insert(user);return url;elsemessage = The user name already exists;url = /register.jsp;session.setAttribute(message, message);return url;elsemessage = The
9、 password is inconsistent;session.setAttribute(message, message);url = /register.jsp;return url;73 復制代碼Dao層實現判斷戶名是否存在和插數據庫的法 UserDB.java12/注冊時判斷戶名是否存在public static boolean UserExists(String username) /可以建個連接池保存定數量的連接,當有對象需要數據庫連接時,直接將這個連接返回給該對象,ConnectionPool pool = ConnectionPool.getInstance();Conne
10、ction connection = pool.getConnection();PreparedStatement ps = null;34567ResultSet rs = null;89String qr = SELECT username FROM User + WHERE username = ?;101112131415161718192021222324try ps = connection.prepareStatement(qr);ps.setString(1, username);rs = ps.executeQuery();return rs.next(); catch (S
11、QLException e) System.out.println(e);return false; finally DBUtil.closeResultSet(rs);DBUtil.closePreparedStatement(ps);pool.freeConnection(connection);25 /將注冊戶信息保存數據庫26 public static int insert(User user) 27282930313233343536373839404142434445464748ConnectionPool pool = ConnectionPool.getInstance();
12、Connection connection = pool.getConnection();PreparedStatement ps = null;String qr = INSERT INTO User (username, password)+VALUES (?, ?);try ps = connection.prepareStatement(qr);ps.setString(1, user.getusername();ps.setString(2, user.getpassword();return ps.executeUpdate(); catch (SQLException e) Sy
13、stem.out.println(e);return 0; finally DBUtil.closePreparedStatement(ps);pool.freeConnection(connection);49 復制代碼login.jsp登錄界 通過表單實現跳轉到servlet12345world message board of the future67891011 12 1314login15 16 171819202122232425262728 2930register31 32 33 3435$message36 37 38 39 40 復制代碼LoginServlet.java
14、業務層:處理登錄業務123456789package Sevlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;10 import javax.servlet.http.HttpServletRequest;11 import javax.s
15、ervlet.http.HttpServletResponse;12 import javax.servlet.http.HttpSession;1314 import javaBean.Message;15 import javaBean.User;16 import useBean.UserDB;17 /*18 * Servlet implementation class Login19 */20 WebServlet(/LoginServlet)/LoginServlet完整路徑21 public class LoginServlet extends HttpServlet 22 pri
16、vate static final long serialVersionUID = 1L;23 String message=;/定義個變量24252627public LoginServlet() super();28 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 2930313233343536373839404142434445String url =/login.jsp;String action =
17、 request.getParameter(action);System.out.println(action: + action);/ 打印測試/設置編碼request.setCharacterEncoding(utf-8);/檢測頁是否完成提交if(action = null)url=/login.jsp;else if(action.equals(login)/login()函數返回個路徑url = login(request,response);/設置登是否成功的提信息request.setAttribute(message, message);/forward()法,轉發請求getS
18、ervletContext().getRequestDispatcher(url).forward(request, response);46 /login()函數47 private String login(HttpServletRequest request, HttpServletResponse response) 484950515253545556575859606162636465666768697071727374757677787980818283/()String username = request.getParameter(username);String passw
19、ord = request.getParameter(password);/HttpSession類型的對象HttpSession session = request.getSession();String userid=;/user的信息User user = UserDB.selectUser(username);String url = /register.jsp;if(user != null) /,較密碼if(user.getpassword().equals(password) /于記錄該戶狀態/cookie加戶名Cookie u = new Cookie(userid,usern
20、ame);/設置有效期u.setMaxAge(60*60*24*365*2);/設置路徑u.setPath(/);/cookie加瀏覽器response.addCookie(u);userid = user.getid();session.setAttribute(userid, userid);/selectUmessage表中讀出所有數據List mL = UserDB.selectU();/ml信息request.setAttribute(MessageList, mL);url=/MessageList.jsp;else message = Wrong password;url=/lo
21、gin.jsp;848586878889909192else message = The user does not exist;url = /login.jsp;return url;93 復制代碼UserDB.java Dao層實現查找戶的法DB.java123/usernameuserpublic static User selectUser(String username) 4/可以建個連接池保存定數量的連接,當有對象需要數據庫連接時,直接將這個連接返回給該對象,5ConnectionPool pool = ConnectionPool.getInstance();6Connection connection = pool.getConnection();7PreparedSta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電纜橋架安裝和橋架內電纜敷設安全技術交底
- 五模超材料結構的跨尺度拓撲優化方法研究
- 2025建筑工程合同誠信合作
- 黑龍江省齊齊哈爾市2024-2025學年高二下冊7月期末考試數學試卷(附答案)
- 新人教版歷史7年級上冊全冊教學課件
- 2024年上海青浦區社區工作者司法社工招聘真題
- 神經內科神經肌肉疾病基礎知識點歸納
- 輪崗工作匯報交流群
- 歷史建筑群社區活動規劃基礎知識點歸納
- 湘西州保靖縣事業單位招聘筆試真題2024
- 叉車工安全考試
- 第一課-入鄉隨俗《發展漢語-初級綜合2》
- 2025年離婚協議書內容
- 西湖大學《土木工程CAD》2023-2024學年第二學期期末試卷
- 建立健全各項管理制度
- 公司工傷報銷管理制度
- 病媒生物試題及答案
- 農村果園承包合同范本
- 2025年中藥材行業市場分析報告
- 拆遷款收款協議書
- GB/T 17642-2025土工合成材料非織造布復合土工膜
評論
0/150
提交評論