用javaweb寫一個注冊界面,並將數據保存到后台數據庫(全部完成)(課堂測試)


一、題目:WEB界面鏈接數據庫

1.考試要求:

 

 

 

1登錄賬號:要求由6到12位字母、數字、下划線組成,只有字母可以開頭;(1分)

2登錄密碼:要求顯示“• ”或“*”表示輸入位數,密碼要求八位以上字母、數字組成。(1分)

3性別:要求用單選框或下拉框實現,選項只有“男”或“女”;(1分)

4學號:要求八位數字組成,前四位為“2018”開頭,輸入自己學號;(1分)

5姓名:輸入自己的姓名;

5電子郵箱:要求判斷正確格式xxxx@xxxx.xxxx;(1分)

6點擊“添加”按鈕,將學生個人信息存儲到數據庫中。(3分)

7可以演示連接上數據庫。(2分)

二、設計思路:

1、首先在users.jsp代碼中,用HTML寫一個添加表單即可

2、在DBUtil.java文件編寫中對數據庫進行連接和關閉的操作

3、在Dao.java文件中編寫向數據庫中插入數據的SQL語句,以及判斷Servelet.java中傳遞的數據是否為空。

4、在 users.jsp 文件中對表單用javascript進行form表單校驗,將滿足所有添加要求的數據傳入Servelet.java中,用post方式傳遞。

5、在Selvlet.java 文件調用DBUtil.java文件和Dao.java文件,得到Dao.java中判斷Servelet.java中傳遞的數據是否為空的函數,並進行二次表單校驗。

6、Servelet.java中若數據合理,調用DBUtil.java的方法,連接數據庫將數據通過參數的形式傳遞給在Dao.java文件中向數據庫中插入數據的SQL語句,將數據添加到數據庫。若添加成功,給出提示信息並返回users.jsp代碼中action跳轉的Servlet?method=add頁面。若添加失敗,給出提示信息並返回users.jsp代碼中action跳轉的Servlet?method=add頁面。

 

三、源代碼

1、Dao.java文件

 

 1 package Dao;  2 
 3 import java.sql.Connection;  4 import java.sql.Statement;  5 
 6 import DBUtil.DBUtil;  7 
 8 import Entity.User;  9 
10 public class Dao { 11 
12     public boolean add(User user) { 13         //將數據插入數據庫的SQL語句
14         String sql = "insert into uses1 (username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext) values('"+ user.getUsername() + "','"+ user.getPassword() +"','"+ user.getSex() +"','"+user.getName() +"','"+ user.getStuname() +"','"+user.getEmail()+"','"+ user.getXueyuan() +"','"+user.getXi()+"','"+user.getBanji()+"','"+user.getYear()+"','"+user.getAddress()+"','"+user.getAddtext()+"')"; 15         // 創建數據庫鏈接
16         Connection conn = DBUtil.getConn(); 17         Statement state = null; 18         boolean f = false; 19         int a = 0; 20       
21         try { 22             state = conn.createStatement(); 23             a=state.executeUpdate(sql); 24         } catch (Exception e) { 25  e.printStackTrace(); 26         } finally { 27             // 關閉z 連接
28  DBUtil.close(state, conn); 29  } 30    
31         if (a > 0) { 32             f = true; 33  } 34         return f; 35 
36 } 37 
38 
39 }

 

2、DBUtil.java文件

 1 package DBUtil;  2 
 3 
 4 
 5 import java.sql.Connection;  6 import java.sql.DriverManager;  7 import java.sql.PreparedStatement;  8 import java.sql.ResultSet;  9 import java.sql.SQLException; 10 import java.sql.Statement; 11 
12 /**
13  * @author Hu 14  * 15  */
16 public class DBUtil { 17     
18     public static String db_url = "jdbc:mysql://localhost:3306/user?serverTimezone=UTC";//登錄數據庫
19     public static String db_user = "root"; 20     public static String db_pass = "123"; 21     
22     public static Connection getConn () { 23         Connection conn = null; 24         
25         try { 26             Class.forName("com.mysql.cj.jdbc.Driver");//加載驅動
27             conn = DriverManager.getConnection(db_url, db_user, db_pass); 28         } catch (Exception e) { 29  e.printStackTrace(); 30  } 31         
32         return conn; 33  } 34      /**
35  * 關閉與數據庫的連接 36  * @param state 37  * @param conn 38      */
39     public static void close (Statement state, Connection conn) { 40         if (state != null) { 41             try { 42  state.close(); 43             } catch (SQLException e) { 44  e.printStackTrace(); 45  } 46  } 47         
48         if (conn != null) { 49             try { 50  conn.close(); 51             } catch (SQLException e) { 52  e.printStackTrace(); 53  } 54  } 55  } 56     
57     public static void close (ResultSet rs, Statement state, Connection conn) { 58         if (rs != null) { 59             try { 60  rs.close(); 61             } catch (SQLException e) { 62  e.printStackTrace(); 63  } 64  } 65         
66         if (state != null) { 67             try { 68  state.close(); 69             } catch (SQLException e) { 70  e.printStackTrace(); 71  } 72  } 73         
74         if (conn != null) { 75             try { 76  conn.close(); 77             } catch (SQLException e) { 78  e.printStackTrace(); 79  } 80  } 81  } 82     public static void main(String[] args) throws SQLException { 83         Connection conn = getConn(); 84         PreparedStatement pstmt = null; 85         ResultSet rs = null; 86         String sql ="select * from users"; 87         pstmt = conn.prepareStatement(sql); 88         rs = pstmt.executeQuery(); 89         if(rs.next()){ 90             System.out.println("空"); 91         }else{ 92             System.out.println("不空"); 93  } 94  } 95 }

 

 

3、User.java(用戶屬性類)文件

 1 package Entity;  2 
 3 public class User {  4     
 5     private String username;  6     private String password;  7     private String sex;  8     private String name;  9     private String stuname;  10     private String email;  11     private String xueyuan;  12     private String xi;  13     private String banji;  14     private String year;  15     private String address;  16     private String addtext;  17     
 18     public String getUsername() {  19         return username;  20  }  21 
 22     public void setUsername(String username) {  23         this.username = username;  24  }  25 
 26     public String getPassword() {  27         return password;  28  }  29 
 30     public void setPassword(String password) {  31         this.password = password;  32  }  33 
 34     public String getSex() {  35         return sex;  36  }  37 
 38     public void setSex(String sex) {  39         this.sex = sex;  40  }  41 
 42     public String getName() {  43         return name;  44  }  45 
 46     public void setName(String name) {  47         this.name = name;  48  }  49 
 50     public String getStuname() {  51         return stuname;  52  }  53 
 54     public void setStuname(String stuname) {  55         this.stuname = stuname;  56  }  57 
 58     public String getEmail() {  59         return email;  60  }  61 
 62     public void setEmail(String email) {  63         this.email = email;  64  }  65 
 66     public String getXueyuan() {  67         return xueyuan;  68  }  69 
 70     public void setXueyuan(String xueyuan) {  71         this.xueyuan = xueyuan;  72  }  73 
 74     public String getXi() {  75         return xi;  76  }  77 
 78     public void setXi(String xi) {  79         this.xi = xi;  80  }  81 
 82     public String getBanji() {  83         return banji;  84  }  85 
 86     public void setBanji(String banji) {  87         this.banji = banji;  88  }  89 
 90     public String getYear() {  91         return year;  92  }  93 
 94     public void setYear(String year) {  95         this.year = year;  96  }  97 
 98     public String getAddress() {  99         return address; 100  } 101 
102     public void setAddress(String address) { 103         this.address = address; 104  } 105 
106     public String getAddtext() { 107         return addtext; 108  } 109 
110     public void setAddtext(String addtext) { 111         this.addtext = addtext; 112  } 113 
114     public User() {} 115     
116 public User(String username,String password,String sex,String name,String stuname,String email,String xueyuan, String xi,String banji,String year,String address,String addtext) { 117         
118         
119         this.username=username; 120         this.password=password; 121         this.sex=sex; 122         this.name=name; 123         this.stuname=stuname; 124         this.email=email; 125         this.xueyuan=xueyuan; 126         this.xi=xi; 127         this.banji=banji; 128         this.year=year; 129         this.address=address; 130         this.addtext=addtext; 131         
132  } 133     
134 
135 }

 

4、Servlet.java文件

 1 package Servlet;  2 
 3 import java.io.IOException;  4 
 5 import javax.servlet.ServletException;  6 import javax.servlet.annotation.WebServlet;  7 import javax.servlet.http.HttpServlet;  8 import javax.servlet.http.HttpServletRequest;  9 import javax.servlet.http.HttpServletResponse; 10 
11 import Dao.Dao; 12 
13 import Entity.User; 14 
15 
16 
17 
18 @WebServlet("/Servlet") 19 public class Servlet extends HttpServlet { 20     private static final long serialVersionUID = 1L; 21        
22     
23     public Servlet() { 24         super(); 25         
26  } 27     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 28         req.setCharacterEncoding("utf-8"); 29         String method = req.getParameter("method"); 30         if ("add".equals(method)) { 31  add(req, resp); 32  } 33  } 34     
35     
36     public void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 37         req.setCharacterEncoding("utf-8"); 38         String username = req.getParameter("username"); 39         String password = req.getParameter("password"); 40         String sex = req.getParameter("sex"); 41         String name = req.getParameter("name"); 42         String stuname = req.getParameter("stuname"); 43         String email = req.getParameter("email"); 44         String xueyuan = req.getParameter("xueyuan"); 45         String xi= req.getParameter("xi"); 46         String banji= req.getParameter("banji"); 47         String year= req.getParameter("year"); 48         String address= req.getParameter("address"); 49         String addtext= req.getParameter("addtext"); 50         //調用用戶屬性類
51         User user = new User(username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext); 52         //接受判斷函數返回值
53         Dao dao =new Dao(); 54         boolean f=dao.add(user); 55         //提示信息
56         if(f) { 57             req.setAttribute("message", "注冊成功!"); 58             req.getRequestDispatcher("users.jsp").forward(req,resp); 59  } 60         else { 61             req.setAttribute("message", "已有賬號,重復登錄!"); 62             req.getRequestDispatcher("users.jsp").forward(req,resp); 63  } 64  } 65 }

 

5、users.jsp文件

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <script>
 9   //表單校驗
 10  function check() {  11         flag=0;  12         var rep =  /^[\w\u4e00-\u9fa5]{6,8}$/;  //判斷字符串是否為數字和字母組合 
 13         var myPattern = new RegExp("^[a-zA-Z]"); // 以英文字母開頭
 14         var username = document.getElementById("username").value;  15         //alert(username.length);
 16         if(!(username.length>5&&username.length<13)){  17             alert("用戶名長度錯誤!");return false;  18  }  19         else if(!(rep.test(username))){  20             alert("用戶名組成內容錯誤!");return false;  21         }else if(!(myPattern.exec(username))){  22             alert("用戶名開頭必須是字母!");return false;  23  }  24         var password = document.getElementById("password").value;  25         if(password.length<8){  26             alert("密碼長度錯誤");  27             return false;  28  }  29         
 30         var stuname = document.getElementById("stuname").value;  31         if(stuname.length!=8){  32             alert("學號長度錯誤!");  33             return false;  34  }  35         if(stuname [0]=='2'&&stuname[1]=='0'&&stuname[2]=='1'&&stuname[3]=='8'){  36             flag++;  37  }  38         else{  39             alert("學號格式錯誤!");  40             return false;  41  }  42         
 43         var email = document.getElementById("email").value;  44         if(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){  45             flag++;  46  }  47         else{  48             alert("郵箱格式錯誤!");  49             return false;  50  }  51         //標志法判斷是否添加成功
 52         if(flag>1){  53             alert("添加成功");  54             return true;  55  }  56         else{  57             alert("添加失敗");  58             return false;  59  }  60 }  61 </script>
 62 </head>
 63     
 64     <body>
 65     
 66     
 67     
 68         <table border="0px" cellpadding="10px" cellspacing="0px"
 69                 style="width: 50%;margin:auto;background:rgb(195,195,195)"  bordercolor="red" >
 70                     <form action="Servlet?method=add" method="post"
 71             onsubmit="return check()">
 72             <caption>當前位置:添加學生信息</caption>
 73           
 74              
 75                 <tr>
 76                     <td>登錄賬號:</td>
 77                     <td><input type="text" name="username" id="username"></td>
 78                 </tr>
 79                 <tr>
 80                     <td>登錄密碼:</td>
 81                     <td><input type="password" name="password" id="password" ></td>
 82                 </tr>
 83                 <tr>
 84                     <td>性別:</td>
 85                     <td>
 86                     <select name="sex">
 87                             <option value="男">男</option>
 88                             <option value="女">女</option>
 89                       </select>
 90                     </td>
 91                 </tr>
 92                 <tr>
 93                     <td>姓名:</td>
 94                     <td><input type="text" name="name"></td>
 95                 </tr>
 96                 <tr>
 97                      <td>學號:</td>
 98                     <td><input type="text" name="stuname" id="stuname"></td>
 99                 </tr>
100                   <tr>
101                     <td>電子郵箱:</td>
102                     <td><input type="text" name="email" id="email"></td>
103                 </tr>
104                 <tr>
105                     <td>所在學院:</td>
106                     <td><input type="text" name="xueyuan"></td>
107                 </tr>
108                  <tr>
109                     <td>所在系:</td>
110                     <td><input type="text" name="xi"></td>
111                 </tr>
112                 <tr>
113                     <td>所在班級:</td>
114                     <td><input type="text" name="banji"></td>
115                 </tr>
116                 <tr>
117                     <td>入學年份(屆):</td>
118                     <td>
119                         <select name="year">
120                             <option value="1998">1998</option>
121                             <option value="1999">1999</option>
122                             <option value="2000">2000</option>
123                             <option value="2001">2001</option>
124                             <option value="2002">2002</option>
125                             <option value="2003">2003</option>
126                             <option value="2004">2004</option>
127                             <option value="2005">2005</option>
128                             <option value="2006">2006</option>
129                             <option value="2007">2007</option>
130                             <option value="2008">2008</option>
131                             <option value="2009">2009</option>
132                             <option value="2010">2010</option>
133                             <option value="2011">2011</option>
134                             <option value="2012">2012</option>
135                             <option value="2013">2013</option>
136                             <option value="2014">2014</option>
137                             <option value="2015">2015</option>
138                             <option value="2016">2016</option>
139                             <option value="2017">2017</option>
140                             <option value="2018">2018</option>
141                             <option value="2019">2019</option>
142                         </select>
143                     </td>
144                 </tr>
145                  <tr>
146                     <td>生源地:</td>
147                     <td><input type="text" name="address"></td>
148                 </tr>
149                  <tr>
150                     <td>
151  備注: 152                     </td>
153                     <td>
154                     <input type="text" name="addtext" >
155                     </td>
156                 </tr>
157                 <tr>
158                     <th colspan="2">
159                         <input type="submit" value="添加">
160                     </th>
161                 </tr>
162             </form>
163         </table>
164     </body>
165 </html>

 

四、程序測試

 

 

                                  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM