石家庄铁道大学2019年秋季
2018 级课堂测试试卷(六)(10分)
课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟
一、 考试要求:
1登录账号:要求由6到12位字母、数字、下划线组成,只有字母可以开头;(1分)
2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)
3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)
4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号;(1分)
5姓名:输入自己的姓名;
5电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;(1分)
6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)
7可以演示连接上数据库。(2分)
由于是第一次自己进行javaweb,数据库连接操作,用了一下午勉强完成基本要求。
以下是我的程序源代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function validate() { var Id=document.forms["myForm"]["xuehao"].value; if(Id<20180000|Id>20189999) { alert("学号必须以2018开头"); return false; } } </script> <body> <form action="test_deal.jsp" name="myForm" onsubmit="return validate()"> <table border="1" align="center"> <tr> <td>登录账号</td> <td><input type="text" name="zhanghao" ></td> </tr> <tr> <td>登录密码</td> <td><input type="password" name="pass"></td> </tr> <tr> <td>性别</td> <td> <select name="x1"> <option value="男">男</option> <option value="女">女</option> </select> </td> </tr> <tr> <td>姓名</td> <td><input type="text" name="x2"></td> </tr> <tr> <td>学号 </td> <td><input type="text" name="xuehao"> </td> </tr> <tr> <td>电子邮箱</td> <td><input type="text" name="x3"></td> </tr> <tr> <td>所在学校 </td> <td><input type="text" name="xuexiao"> </td> </tr> <tr> <td> 所在系</td> <td> <input type="text" name="xi"></td> </tr> <tr> <td> 所在班级</td> <td><input type="text" name="banji"> </td> </tr> <tr> <td>入学年份(届) </td> <td> <input type="text" name="nian">届</td> </tr> <tr> <td>生源地 </td> <td> <input type="text" name="shengyuandi"></td> </tr> <tr> <td>备注 </td> <td> <input type="text" style="height:100px" name="beizhu"></td> </tr> <tr> <td> <input type="submit" value="添加"></td> </tr> </table> </form> </body> </html>
这个是我写的web界面,使用了几种标签,<td> <tr> <input>....这几种标签属性在百度中都可以查到
<%@page import="Dao.Dao"%> <%@page import="java.util.regex.Pattern"%> <%@page import="java.util.regex.Matcher"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> </head> <body> <% request.setCharacterEncoding("utf-8"); String username=request.getParameter("zhanghao"); String password=request.getParameter("pass"); String x1=request.getParameter("x1"); String x2=request.getParameter("x2"); String xuehao=request.getParameter("xuehao"); String x3=request.getParameter("x3"); String xuexiao=request.getParameter("xuexiao"); String xi=request.getParameter("xi"); String banji=request.getParameter("banji"); String nian=request.getParameter("nian"); String shengyuandi=request.getParameter("shengyuandi"); String beizhu=request.getParameter("beizhu"); String user="^[a-zA-Z][a-zA-Z0-9_]{5,12}$"; Pattern puser = Pattern.compile(user); Matcher muser = puser.matcher(username); boolean isMatch3 = muser.matches(); String pass="^[a-zA-Z][a-zA-Z0-9_]{7,20}$"; Pattern ppass = Pattern.compile(pass); Matcher mpass = ppass.matcher(password); boolean isMatch2 = mpass.matches(); String mail = "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"; Pattern pmail = Pattern.compile(mail); Matcher mmail = pmail.matcher(x3); boolean isMatch1 = mmail.matches(); if(isMatch3){ if(isMatch2){ if(isMatch1){ if(Dao.add(username, password, x1, x2, xuehao, x3, xuexiao,xi,banji,nian,shengyuandi,beizhu)==1) { { out.print("<script language = 'javascript'>alert('添加成功');</script>"); response.setHeader("refresh", "0;url=test.jsp"); } } else{ out.print("<script language = 'javascript'>alert('添加失败');</script>"); response.setHeader("refresh", "0;url=test.jsp"); } }else{ out.print("<script language = 'javascript'>alert('您的邮箱" +x3 + "是错误格式!!!');</script>"); out.print("<script>window.history.go(-1); </script>"); } } else { out.print("<script language = 'javascript'>alert('您的密码" +password + "是错误格式!!!应为八位以上字母数字组成!');</script>"); out.print("<script>window.history.go(-1); </script>"); } }else{ out.print("<script language = 'javascript'>alert('您的用户名" +username + "是错误格式!!!应为6-12位以上字母数字下划线组成!字母开头');</script>"); out.print("<script>window.history.go(-1); </script>"); } %> </body> </html>
这一篇是我为了完成要求写的jsp语句,其中使用了验证的正则表达式
package Dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; import util.util; public class Dao { static Connection conn; static PreparedStatement ps = null; static ResultSet rs; static String sql = "select * from WeiHu"; static util ut= new util(); static Scanner in = new Scanner(System.in); static int num1=1; //平台维护信息录入 public static int add(String w1,String w2,String w3,String w4,String w5,String w6,String w7,String w8,String w9,String w10,String w11,String w12) throws SQLException { int b=0; conn= ut.getConn(); String sql="insert into register values(?,?,?,?,?,?,?,?,?,?,?,?)"; try { ps=conn.prepareStatement(sql); ps.setString(1,w1); ps.setString(2,w2); ps.setString(3,w3); ps.setString(4,w4); ps.setString(5,w5); ps.setString(6,w6); ps.setString(7,w7); ps.setString(8,w8); ps.setString(9,w9); ps.setString(10,w10); ps.setString(11,w11); ps.setString(12,w12); int a=ps.executeUpdate(); if(a>0) { b++; System.out.println("添加成功"); } else { System.out.println("添加失败"); } }catch(Exception e) { e.printStackTrace(); } try { if(ps!=null)ps.close(); if(conn!=null)conn.close(); }catch(Exception e2) { e2.printStackTrace(); } return b; } }
这一篇定义了一个java的Dao类,是把数据导入到数据库中的方法
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class util { String user="sa"; String password="123456"; String url="jdbc:sqlserver://localhost:1433;DatabaseName=software"; public Connection getConn(){ Connection conn=null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn=DriverManager.getConnection(url, user, password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public void close(ResultSet rs, Statement state, Connection conn) { if(rs!=null) { try { rs.close(); } catch(SQLException e) { e.printStackTrace(); } } if(state!=null) { try { state.close(); } catch(SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } }
这一篇是数据库的 连接数据库。
以下是我的操作过程:
这是数据库中存入的信息
收获:通过这次和大三学长一对一的学习,我的收获很大,其中学长帮我们完成了环境的搭配,以及一些入门级别的操作,学到了很多很多。如:数据库的画表,连接库,增加信息,以及web,jsp 正则表达式等等,总之,这两天收获很大。