题目要求:
1、登录账号:要求由6到12位字母、数字、下划线组成,只有字母可以开头;
2、登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。
3、性别:要求用单选框或下拉框实现,选项只有“男”或“女”;
4、学号:要求八位数字组成,前四位为“2018”开头,输入自己学号;
5、姓名:输入自己的姓名;
5、电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;
6、点击“添加”按钮,将学生个人信息存储到数据库中。
7、可以演示连接上数据库。
目录:
package service; public class User { private String username; private String password; private String sex; private String name; private String number; private String email; private String school; private String xi; private String ban; private String year; private String place; private String bei; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public String getXi() { return xi; } public void setXi(String xi) { this.xi = xi; } public String getBan() { return ban; } public void setBan(String ban) { this.ban = ban; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } public String getBei() { return bei; } public void setBei(String bei) { this.bei = bei; } }
package dao; import java.sql.Connection; import java.sql.Statement; import service.User; import util.DBUtil; public class UserDao { public boolean addu(User user) { String sql = "insert into user(username, password,sex,name,number,email,school,xi,ban,year,place,bei) values('" + user.getUsername() + "','" + user.getPassword() +"','" + user.getSex() +"','"+user.getName() +"','" + user.getNumber()+"','" + user.getEmail() +"','" + user.getSchool() +"','" + user.getXi() +"','"+user.getBan()+"','"+user.getYear()+"','"+user.getPlace()+"','"+user.getBei()+ "')"; Connection conn = DBUtil.getConnection(); Statement state = null; try { state = conn.createStatement(); int a= state.executeUpdate(sql); state.close(); return a>0?true:false; } catch (Exception e) { e.printStackTrace(); } return false; } }
判断
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.regex.Matcher; import java.util.regex.Pattern; import 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.HttpSession; import dao.UserDao; import service.User; import util.DBUtil; /** * Servlet implementation class Rservlet */ @WebServlet("/Rservlet") public class Rservlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Rservlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); String sex = request.getParameter("sex"); String name = request.getParameter("name"); String number=request.getParameter("number"); String email = request.getParameter("email"); String school = request.getParameter("school"); String xi = request.getParameter("xi"); String ban = request.getParameter("ban"); String year = request.getParameter("year"); String place = request.getParameter("place"); String bei = request.getParameter("bei"); System.out.println(username); System.out.println(password); Pattern p = null; Pattern s = null; Pattern t = null; Pattern q = null; Matcher m = null; Matcher n = null; Matcher y = null; Matcher w = null; boolean b = false; boolean c = false; boolean u = false; boolean e = false; p = Pattern.compile("^[2][0][1][8][\d]{4}$"); // 判断学号 m = p.matcher(number); b = m.matches(); s= Pattern.compile("^[A-Za-z][A-Za-z0-9_]{5,11}$") ; n = s.matcher(username); c =n.matches(); t= Pattern.compile("^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$") ; y = t.matcher(email); u =y.matches(); q= Pattern.compile("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8}$") ; w = q.matcher(password); e =w.matches(); if(!c){ PrintWriter out = response.getWriter(); out.print("<script>alert('用户名格式不正确!');window.history.go(-1)</script>"); }else if(!e){ PrintWriter out = response.getWriter(); out.print("<script>alert('密码格式不正确!');window.history.go(-1)</script>"); }else if(!b) { PrintWriter out = response.getWriter(); out.print("<script>alert('学号格式错误!');window.history.go(-1)</script>"); }else if(!u){ PrintWriter out = response.getWriter(); out.print("<script>alert('邮箱格式不正确!');window.history.go(-1)</script>"); }else { Connection conn = DBUtil.getConnection(); Statement state = null; String sql="select username from user where username='"+username+"'"; try { state = conn.createStatement(); ResultSet a= state.executeQuery(sql); if(a.next()) { PrintWriter out = response.getWriter(); out.println("<script>alert('用户名已存在!');</script>"); out.println("<script>window.history.go(-1)</script>"); }else { User us=new User(); us.setPassword(password); us.setUsername(username); us.setSex(sex); us.setName(name); us.setNumber(number); us.setEmail(email); us.setSchool(school); us.setXi(xi); us.setBan(ban); us.setYear(year); us.setPlace(place); us.setBei(bei); UserDao user = new UserDao(); user.addu(us); PrintWriter out = response.getWriter(); out.println("<script>alert('添加成功!');</script>"); //out.println("<script>window.history.go(-1)</script>"); request.getRequestDispatcher("login3.jsp").forward(request, response); } }catch(Exception e1) { e1.printStackTrace(); } } } }
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBUtil { private static String URL = "jdbc:mysql://localhost:3306/test3?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"; private static String UserName = "root"; private static String Password ="123"; public static Connection getConnection() { Connection Conn=null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("加载驱动成功!!!"); } catch (ClassNotFoundException e) { // TODO: handle exception e.printStackTrace(); } try { Conn = DriverManager.getConnection(URL,UserName,Password); System.out.println("!!!!!!!"); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } return Conn; } public static void main(String[] args)throws SQLException { Connection conn = getConnection(); PreparedStatement pstmt = null; ResultSet rs = null; String sql ="select * from user"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); System.out.println(getConnection()); while(rs.next()){ System.out.println("空"); } } }
注册界面:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html > 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>注册页面</title> 8 <script type="text/javascript"> 9 function check(form) { 10 with (form) { 11 if (username.value == "") { 12 alert("用户名不能为空"); 13 return false; 14 } else if (passwordword.value == "" || passwordword1.value == "") { 15 alert("密码不能为空"); 16 return false; 17 } else 18 return true; 19 } 20 } 21 </script> 22 <style> 23 .a { 24 border: 2px solid #a1a1a1; 25 padding: 10px 40px; 26 /* background:#dddddd; */ 27 2px; 28 border-radius: 25px; 29 } 30 #bk { 31 border: 3px solid #a1a1a1; 32 padding: 5px 60px; 33 /* background:#dddddd; */ 34 px; 35 border-radius: 25px; 36 } 37 .button { 38 background-color: #ff8433; 39 border: none; 40 color: white; 41 padding: 5px 10px; 42 text-decoration: none; 43 display: inline-block; 44 font-size: 16px; 45 margin: 2px 2px; 46 cursor: pointer; 47 } 48 table{ 49 margin: auto; 50 } 51 *{margin:auto;padding:0} 52 #password{position:absolute;top:155px;opacity:0;filter:alpha(opacity=0);z-index:2;border: 3px solid #a1a1a1; 53 padding: 5px 60px; 54 /* background:#dddddd; */ 55 px; 56 border-radius: 25px;} 57 #hint_password{position:absolute;top:155px;border: 3px solid #a1a1a1; 58 padding: 5px 60px; 59 /* background:#dddddd; */ 60 px; 61 border-radius: 25px;} 62 </style> 63 64 </head> 65 <body> 66 <br> 67 <br> 68 <br> 69 <h3 align="center">注册页面</h3> 70 <hr> 71 <form action="Rservlet" method="post" 72 onsubmit="return check(this);"> 73 74 <table style="border-collapse:separate; border-spacing:0px 20px;"> 75 <tr> 76 <td>用户名</td> 77 <td><input id="bk" type="text" name="username" placeholder="6-12字母数字下划线|字母开头" ></td> 78 </tr> 79 80 <tr> 81 <td>密码</td> 82 <td> 83 <input type="text" id="hint_password" placeholder="由8位英文和数字组成" /><input type="text" id="password" name="password" placeholder="由6位英文和数字组成" /> </td> 84 <!-- <input type="text" id="hint_password" placeholder="由6位英文和数字组成" /> 85 <input type="text" id="passwordword" name="passwordword" /> --> 86 87 </tr> 88 <tr> 89 <td>性别</td> 90 <td><select style="200px;hight:20px;" name="sex"> 91 <option value=null></option> 92 <option value="男">男</option> 93 <option value="女">女</option> 94 </select></td> 95 </tr> 96 <tr> 97 <td>姓名</td> 98 <td><input id="bk" type="text" name="name"></td> 99 </tr> 100 101 <tr> 102 <td>学号</td> 103 <td><input id="bk" type="text" name="number"></td> 104 </tr> 105 <tr> 106 <td>电子邮箱</td> 107 <td><input id="bk" type="text" name="email"></td> 108 </tr> 109 <tr> 110 <td>所在学院</td> 111 <td><input id="bk" type="text" name="school"></td> 112 </tr> 113 <tr> 114 <td>所在系</td> 115 <td><input id="bk" type="text" name="xi"></td> 116 </tr> 117 <tr> 118 <td>所在班级</td> 119 <td><input id="bk" type="text" name="ban"></td> 120 </tr> 121 <tr> 122 <td>入学年份(届)</td> 123 <td><select style="200px;hight:20px;" name="year"> 124 <option value="2019">2019</option> 125 <option value="2018">2018</option> 126 <option value="2017">2017</option> 127 <option value="2016">2016</option> 128 </select></td> 129 </tr> 130 <tr> 131 <td>生源地</td> 132 <td><input id="bk" type="text" name="place"></td> 133 </tr> 134 <tr> 135 <td>备注</td> 136 <td><input id="bk" type="text" name="bei"></td> 137 </tr> 138 <tr> 139 <td></td> 140 <td><input class ="button" type="submit" value="注册"></td> 141 </tr> 142 </table> 143 </form> 144 <script> 145 var password=document.getElementById('password'); 146 var hint_password=document.getElementById('hint_password'); 147 password.onkeyup=password.onchange=function(){hint_password.value=password.value.replace(/./g,'*');}; 148 </script> 149 </body> 150 </html>
注册完界面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>注册页面</title> </head> <body> 添加成功! </body> </html>
测试:
在浏览器中打开并输入符合要求的数据:
之后显示“添加成功!”
就可以在数据库建的表里看到刚存入的数据
若是输入格式不正确
则会有提示