Javaweb课堂测试

一、 考试要求:

 

1登录账号:要求由612位字母、数字、下划线组成,只有字母可以开头;(1分)

2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)

3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)

4学号:要求八位数字组成,前四位为2018”开头,输入自己学号;(1分)

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

5电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;(1分)

6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)

7可以演示连接上数据库。(2分)

代码如下:

User.java

  1 package Bean;
  2 
  3 public class User {
  4     private String user;
  5     private String password;
  6     private String sex;
  7     private String name;
  8     private String number;
  9     private String email;
 10     private String school;
 11     private String major;
 12     private String classroom;
 13     private String enteryear;
 14     private String city;
 15     private String comment;
 16 
 17 
 18     public String getNumber() {
 19         return number;
 20     }
 21 
 22     public void setNumber(String number) {
 23         this.number = number;
 24     }
 25 
 26     public String getSchool() {
 27         return school;
 28     }
 29 
 30     public void setSchool(String school) {
 31         this.school = school;
 32     }
 33 
 34     public String getMajor() {
 35         return major;
 36     }
 37 
 38     public void setMajor(String major) {
 39         this.major = major;
 40     }
 41 
 42     public String getClassroom() {
 43         return classroom;
 44     }
 45 
 46     public void setClassroom(String classroom) {
 47         this.classroom = classroom;
 48     }
 49 
 50     public String getEnteryear() {
 51         return enteryear;
 52     }
 53 
 54     public void setEnteryear(String enteryear) {
 55         this.enteryear = enteryear;
 56     }
 57 
 58     public String getComment() {
 59         return comment;
 60     }
 61 
 62     public void setComment(String comment) {
 63         this.comment = comment;
 64     }
 65 
 66     public String getUser() {
 67         return user;
 68     }
 69 
 70     public void setUser(String user) {
 71         this.user = user;
 72     }
 73 
 74     public String getPassword() {
 75         return password;
 76     }
 77 
 78     public void setPassword(String password) {
 79         this.password = password;
 80     }
 81 
 82     public String getName() {
 83         return name;
 84     }
 85 
 86     public void setName(String name) {
 87         this.name = name;
 88     }
 89 
 90     public String getSex() {
 91         return sex;
 92     }
 93 
 94     public void setSex(String sex) {
 95         this.sex = sex;
 96     }
 97 
 98     public String getCity() {
 99         return city;
100     }
101 
102     public void setCity(String city) {
103         this.city = city;
104     }
105 
106     public String getEmail() {
107         return email;
108     }
109 
110     public void setEmail(String email) {
111         this.email = email;
112     }
113 
114     public User(String user1, String password, String sex,String name, String number, String email,String school, String major,String classroom,String enteryear,String city,String comment ) {
115 
116         this.user = user1;
117         this.password = password;
118         this.sex = sex;
119         this.name = name;
120         this.number = number;
121         this.email = email;
122         this.school = school;
123         this.major = major;
124         this.classroom = classroom;
125         this.enteryear = enteryear;
126         this.city = city;
127         this.comment = comment;
128         
129 
130     }
131 
132 }

userdao.java

 1 package dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.Statement;
 5 
 6 import Bean.User;
 7 import util.DBUtil;
 8 
 9 public class userdao {
10   public static boolean add(User user) {
11       String sql = "insert into denglu(user,password,sex,name,number,email,school,major,classroom,enteryear,city,comment)values('"+user.getUser()+"','"+user.getPassword()+"','"+user.getSex()+"','"+user.getName()+"','"+user.getNumber()+"','"+user.getEmail()+"','"+user.getSchool()+"','"+user.getMajor()+"','"+user.getClassroom()+"','"+user.getEnteryear()+"','"+user.getCity()+"','"+user.getComment()+"')";
12         // 创建数据库链接
13         Connection conn = DBUtil.getConn();
14         Statement state = null;
15         boolean f = false;
16         int a = 0;
17         try {
18             state = conn.createStatement();
19             a = state.executeUpdate(sql);
20         } catch (Exception e) {
21             e.printStackTrace();
22         } finally {
23             // 关闭连接
24             DBUtil.close(state, conn);
25         }
26 
27         if (a > 0) {
28             f = true;
29         }
30         return f;
31   }
32 }

adServlet.java

  1 package Servlet;
  2 import java.io.IOException;
  3 import java.io.PrintWriter;
  4 import java.sql.Connection;
  5 import java.sql.ResultSet;
  6 import java.sql.Statement;
  7 import java.util.regex.Matcher;
  8 import java.util.regex.Pattern;
  9 
 10 import javax.servlet.ServletException;
 11 import javax.servlet.annotation.WebServlet;
 12 import javax.servlet.http.HttpServlet;
 13 import javax.servlet.http.HttpServletRequest;
 14 import javax.servlet.http.HttpServletResponse;
 15 import javax.servlet.http.HttpSession;
 16 
 17 import Bean.User;
 18 import dao.userdao;
 19 import util.DBUtil;
 20 
 21 /**
 22  * Servlet implementation class adServlet
 23  */
 24 @WebServlet("/adServlet")
 25 public class adServlet extends HttpServlet {
 26     private static final long serialVersionUID = 1L;
 27        
 28     /**
 29      * @see HttpServlet#HttpServlet()
 30      */
 31     public adServlet() {
 32         super();
 33         // TODO Auto-generated constructor stub
 34     }
 35 
 36     /**
 37      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 38      */
 39     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 40         // TODO Auto-generated method stub
 41                 request.setCharacterEncoding("UTF-8");
 42                 response.setContentType("text/html;charset=UTF-8");
 43                 String user1=request.getParameter("user");
 44                 String password=request.getParameter("password");
 45                 String sex=request.getParameter("sex");
 46                 String name=request.getParameter("name");
 47                 String number=request.getParameter("number");
 48                 String email=request.getParameter("email");
 49                 String school=request.getParameter("school");
 50                 String major=request.getParameter("major");
 51                 String classroom=request.getParameter("classroom");
 52                 String enteryear=request.getParameter("enteryear");
 53                 String city=request.getParameter("city");
 54                 String comment=request.getParameter("comment");
 55                 Pattern p = null;
 56                 Pattern s = null;
 57                 Pattern t = null;
 58                 Pattern q = null;
 59                 Matcher m = null;
 60                 Matcher n = null;
 61                 Matcher y = null;
 62                 Matcher w = null;
 63                 boolean b = false;
 64                 boolean c = false;
 65                 boolean u = false;
 66                 boolean e = false;
 67                 p = Pattern.compile("^[2][0][1][8][\d]{4}$"); //判断学号
 68                 m = p.matcher(number);
 69                 b = m.matches();
 70                 s= Pattern.compile("^[A-Za-z][A-Za-z0-9_]{5,11}$") ;
 71                 n = s.matcher(user1);
 72                 c =n.matches();
 73                 t= Pattern.compile("^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$") ;
 74                 y = t.matcher(email);
 75                 u =y.matches();
 76                 q= Pattern.compile("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8}$") ;
 77                 w = q.matcher(password);
 78                 e =w.matches();
 79                 if(!c){
 80                     PrintWriter out = response.getWriter();
 81                     out.print("<script>alert('用户名格式不正确!');window.history.go(-1)</script>");
 82                 }else if(!e){
 83                     PrintWriter out = response.getWriter();
 84                     out.print("<script>alert('密码格式不正确!');window.history.go(-1)</script>");
 85                 }else if(!b) {
 86                     PrintWriter out = response.getWriter();
 87                     out.print("<script>alert('学号格式错误!');window.history.go(-1)</script>");
 88             }else  if(!u){
 89                 PrintWriter out = response.getWriter();
 90                 out.print("<script>alert('邮箱格式不正确!');window.history.go(-1)</script>");
 91             }else
 92             {
 93                 Connection conn = DBUtil.getConn();
 94                 Statement state = null;        
 95                 String sql="select user from denglu where user='"+user1+"'";
 96                 try {
 97                     state = conn.createStatement();
 98                     ResultSet a= state.executeQuery(sql);
 99                     if(a.next()) 
100                     {
101                         PrintWriter out = response.getWriter();
102                         out.println("<script>alert('用户名已存在!');</script>");
103                         out.println("<script>window.history.go(-1)</script>");    
104                     }else
105                     {
106                         User useradd=new User( user1, password,sex,name,number,email,school,major,classroom,enteryear,city,comment);
107                         userdao.add(useradd);
108                         PrintWriter out = response.getWriter();
109                         out.println("<script>alert('添加成功!');</script>");
110                         //out.println("<script>window.history.go(-1)</script>");
111                         request.getRequestDispatcher("test.jsp").forward(request, response);
112                     }
113                 }catch(Exception e1) {
114                     e1.printStackTrace();
115                 } 
116            }
117             }
118 
119     /**
120      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
121      */
122     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
123         // TODO Auto-generated method stub
124         doGet(request, response);
125     }
126 
127 }

DBUtil.java

 1 package util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 
10 /**
11  * 数据库连接工具
12 
13  *
14  */
15 public class DBUtil {
16     
17     public static String db_url = "jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC";
18     public static String db_user = "root";
19     public static String db_pass = "sS20000608";
20     
21     public static Connection getConn () {
22         Connection conn = null;
23         
24         try {
25             Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
26             conn = DriverManager.getConnection(db_url, db_user, db_pass);
27         } catch (Exception e) {
28             e.printStackTrace();
29         }
30         
31         return conn;
32     }
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 
83     /*public static void main(String[] args) throws SQLException {
84         Connection conn = getConn();
85         PreparedStatement pstmt = null;
86         ResultSet rs = null;
87         String sql ="select * from course";
88         pstmt = conn.prepareStatement(sql);
89         rs = pstmt.executeQuery();
90         if(rs.next()){
91             System.out.println("空");
92         }else{
93             System.out.println("不空");
94         }
95     }*/
96 }

web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
 3  
 4   <display-name>wangye</display-name>
 5   <welcome-file-list>
 6     <welcome-file>index.html</welcome-file>
 7     <welcome-file>index.htm</welcome-file>
 8     <welcome-file>index.jsp</welcome-file>
 9     <welcome-file>default.html</welcome-file>
10     <welcome-file>default.htm</welcome-file>
11     <welcome-file>default.jsp</welcome-file>
12   </welcome-file-list>
13    <servlet>
14     <description></description>
15     <display-name>adServlet</display-name>
16     <servlet-name>adServlet</servlet-name>
17     <servlet-class>Servlet.adServlet</servlet-class>
18   </servlet>
19   <servlet-mapping>
20     <servlet-name>adServlet</servlet-name>
21     <url-pattern>/Servlet/adServlet</url-pattern>
22   </servlet-mapping>
23 </web-app>

test.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 </head>
 9 <body >
10     <form action="adServlet" method="post">
11         <div align="center" style="margin-top: 100px">
12             <table align="center" border="0">
13                 <tr>
14                     <td>登录账号:</td>
15                     <td><input type="text" name="user" ></td>
16                 </tr>
17                 
18                 <tr>
19                     <td>登录密码:</td>
20                     <td><input type="password" name="password" ></td>
21                 </tr>
22                 <tr>
23                 <td>&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
24                     <td><select name="sex">
25                             <option value="男"></option>
26                             <option value="女"></option>
27                     </select>
28                     <td>
29                 </tr>
30                 <tr>
31                     <td>&nbsp;&nbsp;&nbsp;&nbsp;名:</td>
32                     <td><input type="text" name="name"></td>
33                 </tr>
34                 <tr>
35                     <td>&nbsp;&nbsp;&nbsp;&nbsp;号:</td>
36                     <td><input type="text" name="number"></td>
37                 </tr>
38                 <tr>
39                     <td>电子邮件:</td>
40                     <td><input type="text" name="email"></td>
41                 </tr>
42                 <tr>
43                     <td>&nbsp;&nbsp;&nbsp;&nbsp;院:</td>
44                     <td><input type="text" name="school"></td>
45                 </tr>
46                 <tr>
47                     <td>所在&nbsp;&nbsp;系:</td>
48                     <td><input type="text" name="major" ></td>
49                 </tr>
50                 <tr>
51                     <td>所在班级:</td>
52                     <td><input type="text" name="classroom" ></td>
53                 </tr>
54                 <tr>
55                 <td>入学年份(届):</td>
56                     <td><select name="enteryear">
57                             <option value="2016">2016</option>
58                             <option value="2017">2017</option>
59                             <option value="2018">2018</option>
60                             <option value="2019">2019</option>
61                     </select>
62                     <td>
63                 </tr>
64                 <tr>
65                     <td>生源&nbsp;&nbsp;地:</td>
66                     <td><input type="text" name="city" ></td>
67                 </tr>
68                 <tr>
69                     <td>&nbsp;&nbsp;&nbsp;&nbsp;注:</td>
70                     <td><textarea name="comment" rows="4" cols="20"></textarea></td>
71                 </tr>
72             </table>
73         </div>
74 
75         <div align="center" style="margin-top: 30px">
76             <input type="submit" value="添加">
77         </div>
78 
79     </form>
80 </body>
81 </html>

注册登录界面如下:

注:

1.如果不满足:612位字母、数字、下划线组成,只有字母可以开头

 则

 2.如果密码不是8位且不是由字母、数字组成

3.如果学号不是8位且前四位为“2018”开头

 4.如果邮箱不是******@***.***的格式

 5.若用户名已经存在

 6.添加成功后数据库:

 7.servlet文件不要随意更改,也不能用别人的复制过来,容易造成Tomcat不能运行出现错误。

8.一定要导入一个jar包在此路径下

9.web.xml文件也不要随意更改,在创建web工程时,不直接点击finish,点击next,next,在左下角有个

 可以勾选这个,就不用管web了。

10.一定是eclipse企业版javaEE,不然在纯净版的eclipse安装插件很费劲。而且新版本有的时候插件难找,可以去官网下载一个包,不是安装程序的那个,直接下载过来就可以直接使用的。

原文地址:https://www.cnblogs.com/Aming-/p/11716908.html