架構執行個體之Demo_JSP_JavaBean,demo_jsp_javabean
架構執行個體之Demo_JSP_JavaBean
1、開發工具和開發環境
開發工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13
開發環境:WIN10
2、Demo_JSP_JavaBean實現功能
使用者登入、使用者註冊、退出登入。
3、Demo_JSP_Java_Bean使用技術
本執行個體使用了JSP、JavaBean和JDBC來實現使用者登入、使用者註冊和退出登入功能。系統架構圖一所示:
圖一:Demo_JSP_Java_Bean系統架構圖
下面請看圖二(系統中JSP與JavaBean之間的邏輯關係圖):
圖二:系統中JSP與JavaBean之間的邏輯關係圖
4、具體實現
(1)在MyEclipse中建立一個Web project項目,並命名為Demo_JSP_JavaBean;
(2)向Demo_JSP項目中匯入mysql-connector-java-5.1.6-bin.jar,這個包是實現Java串連資料庫功能的包(不會匯入包的同學,可以百度喲);
附:mysql-connector-java-5.1.6-bin.jar百度雲下載連結:http://pan.baidu.com/s/1i5psdDF 密碼:meyg
(3)在Demo_JSP項目中建立以下JavaBean檔案和JSP檔案(PS:其中JSP檔案代碼此處只貼出部分代碼,其他JSP檔案代碼請參考本人上一篇部落格哦(連結地址:http://www.cnblogs.com/liuzhen1995/p/5700409.html)):
1)建立Java類DBAccess,包名取為liu,該類實現資料庫登入串連的功能,具體代碼如下:
package liu;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBAccess { private String drv = "com.mysql.jdbc.Driver"; private String url = "jdbc:mysql://localhost:3306/library_system"; private String usr = "root"; private String pwd = "root"; private Connection conn = null; private Statement stm = null; private ResultSet rs = null; public boolean createConn() { boolean b = false; try { Class.forName(drv).newInstance(); conn = DriverManager.getConnection(url, usr, pwd); b = true; } catch (SQLException e) { } catch (ClassNotFoundException e) { } catch (InstantiationException e) { } catch (IllegalAccessException e) { } return b; } public boolean update(String sql) { boolean b = false; try { stm = conn.createStatement(); stm.execute(sql); b = true; } catch (Exception e) { System.out.println(e.toString()); } return b; } public void query(String sql) { try { stm = conn.createStatement(); rs = stm.executeQuery(sql); } catch (Exception e) { } } public boolean next() { boolean b = false; try { if(rs.next())b = true; } catch (Exception e) { } return b; } public String getValue(String field) { String value = null; try { if(rs!=null)value = rs.getString(field); } catch (Exception e) { } return value; } public void closeConn() { try { if (conn != null) conn.close(); } catch (SQLException e) { } } public void closeStm() { try { if (stm != null) stm.close(); } catch (SQLException e) { } } public void closeRs() { try { if (rs != null) rs.close(); } catch (SQLException e) { } } public Connection getConn() { return conn; } public void setConn(Connection conn) { this.conn = conn; } public String getDrv() { return drv; } public void setDrv(String drv) { this.drv = drv; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public ResultSet getRs() { return rs; } public void setRs(ResultSet rs) { this.rs = rs; } public Statement getStm() { return stm; } public void setStm(Statement stm) { this.stm = stm; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsr() { return usr; } public void setUsr(String usr) { this.usr = usr; }}
2)在上一步中建立的包下,再建立一個Java類UserBean,該類實現資料庫查詢和寫入功能,具體代碼如下:
package liu;public class UserBean { public boolean valid(String username, String password) { boolean isValid = false; DBAccess db = new DBAccess(); if(db.createConn()) { String sql = "select * from userInfo where username='"+username+"' and password='"+password+"'"; db.query(sql); if(db.next()) { isValid = true; } db.closeRs(); db.closeStm(); db.closeConn(); } return isValid; } public boolean isExist(String username) { boolean isExist = false; DBAccess db = new DBAccess(); if(db.createConn()) { String sql = "select * from userInfo where username='"+username+"'"; db.query(sql); if(db.next()) { isExist = true; } db.closeRs(); db.closeStm(); db.closeConn(); } return isExist; } public void add(String username, String password, String email) { DBAccess db = new DBAccess(); if(db.createConn()) { String sql = "insert into userInfo(username,password,mail) values('"+username+"','"+password+"','"+email+"')"; db.update(sql); db.closeStm(); db.closeConn(); } }}
3)login_action.jsp,接受login.jsp頁面中使用者輸入的使用者名稱和密碼,通過調用JavaBean實現登入認證,具體代碼如下:
<%@ page import="liu.UserBean" %><%//get parametersString username = request.getParameter("username");String password = request.getParameter("password");//check nullif (username == null || password == null) { response.sendRedirect("login.jsp");}//validateUserBean userBean = new UserBean();boolean isValid = userBean.valid(username, password);if (isValid) { session.setAttribute("username", username); response.sendRedirect("welcome.jsp");} else { response.sendRedirect("login.jsp");}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'login_action.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> </body></html>
4)register_action.jsp,通過調用JavaBean實現註冊,並把資料寫入資料庫,具體代碼如下:
<%@ page import="liu.UserBean" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%//get parametersString username = request.getParameter("username");String password1 = request.getParameter("password1");String password2 = request.getParameter("password2");String email = request.getParameter("email");//check nullif (username == null || password1 == null || password2 == null || !password1.equals(password2)) { response.sendRedirect("register.jsp");}//validateUserBean userBean = new UserBean();boolean isExist = userBean.isExist(username);if(!isExist) { userBean.add(username, password1, email); response.sendRedirect("login.jsp");} else { response.sendRedirect("register.jsp");}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'register_action.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> </body></html>
5、運行結果展示
具體運行結果請參考本人上一篇部落格哦,運行結果是一模一樣的(連結地址:http://www.cnblogs.com/liuzhen1995/p/5700409.html)~~~
附:Demo_JSP_JavaBean項目源碼檔案百度雲下載連結:http://pan.baidu.com/s/1sl1nd9r 密碼:lrdk; 本執行個體所使用資料庫建表sql語句檔案下載連結:http://pan.baidu.com/s/1eS0n9aM 密碼:7ttd