Javaweb课堂测试
一、?考试要求: ? ? ? ? ? 1登录账号:要求由6到12位字母、数字、下划线组成,只有字母可以开头;(1分) 2登录密码:要求显示“? ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分) 3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分) 4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号;(1分) 5姓名:输入自己的姓名; 5电子邮箱:要求判断正确格式[email?protected];(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-9u4e00-u9fa5][email?protected][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,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,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>姓 别:</td> 24 <td><select name="sex"> 25 <option value="男">男</option> 26 <option value="女">女</option> 27 </select> 28 <td> 29 </tr> 30 <tr> 31 <td>姓 名:</td> 32 <td><input type="text" name="name"></td> 33 </tr> 34 <tr> 35 <td>学 号:</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>学 院:</td> 44 <td><input type="text" name="school"></td> 45 </tr> 46 <tr> 47 <td>所在 系:</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>生源 地:</td> 66 <td><input type="text" name="city" ></td> 67 </tr> 68 <tr> 69 <td>备 注:</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.如果不满足:由6到12位字母、数字、下划线组成,只有字母可以开头 ?则 ? ? ?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安装插件很费劲。而且新版本有的时候插件难找,可以去官网下载一个包,不是安装程序的那个,直接下载过来就可以直接使用的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |