课堂测试_WEB界面链接数据库

一,题目:

一、 考试要求:

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

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

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

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

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

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

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

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

二,设计思路:

1,首先按要求编写出WEB网页。

2,在DB.java文件编写中对数据库进行连接和关闭的操作。

3,在Dao.java文件中编写对 sql 语句的拼接以及执行 sql 语句向数据库中添加东西的函数。

4,先在 .jsp 文件中对表单进行前端校验,将符合要求的传递给Selvlet.java.文件。

5,在Selvlet.java 文件导入DB.java文件和Dao.java文件并对表单进行二次校验。

6,若数据合法,调用DB.java的方法,连接数据库将数据通过参数的形式传递给在Dao.java文件中向数据库中添加东西的函数,将数据添加到数据库。若添加成功给出提示并返回WEB网页。若失败,给出提示,并返回WEB网页。

三,源代码

WEB网页:shangke.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册界面</title>
<script type="text/javascript">
/*表单校验*/
function check() {
f=0;
var re = /^[\w\u4e00-\u9fa5]{6,8}$/; //判断字符串是否为数字和字母组合
var myPattern = new RegExp("^[a-zA-Z]"); // 以英文字母开头
var username = document.getElementById("username").value;
//alert(username.length);
if(!(username.length>5&&username.length<13)){
alert("用户名长度错误!");return false;
}
else if(!(re.test(username))){
alert("用户名组成内容错误!");return false;
}else if(!(myPattern.exec(username))){
alert("用户名开头必须是字母!");return false;
}
var password = document.getElementById("password").value;
if(password.length<8){f++;alert("密码长度错误!");} return false; var xuehao = document.getElementById("xuehao").value;
if(xuehao.length!=8){
alert("学号长度错误!");return false;
}
if(xuehao[0]=='2'&&xuehao[1]=='0'&&xuehao[2]=='1'&&xuehao[3]=='8'){f++;}
else{
alert("学号格式错误!");return false;
} var mail = document.getElementById("mail").value;
if(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(mail)){f++;}
else{
alert("邮箱格式错误!");return false;
}
if(f>1){
alert("添加成功");
return true;
}
else{
return false;
} } </script>
</head>
<body background="1.jpg">
<form action="UserServlet?method=add" method="post" onsubmit="return check()"><br/><br/><br/><br/><br/><br/><br/>
<table align="center">
<tr>
<td>登入账号:</td>
<td><input type="text" id="username" name="username" value="" ></td>
</tr>
<tr>
<td>登入密码:</td>
<td> <input type="password" id="password" name="password" value="" ></td>
</tr>
<tr>
<td>性&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
<td>
<select id="sex" name="sex" >
<option>--请选择--</option>
<option value="男">男</option>
<option value="女">女</option>
</select>
</td>
</tr>
<tr>
<td>姓&nbsp;&nbsp;&nbsp;&nbsp;名:</td>
<td> <input type="text" name="name" value="" ></td>
</tr>
<tr>
<td>学&nbsp;&nbsp;&nbsp;&nbsp;号:</td>
<td> <input type="text" name="xuehao" id="xuehao" value="" ></td>
</tr>
<tr>
<td>电子邮件:</td>
<td> <input type="text" id="mail" name="mail" value="" ></td>
</tr>
<tr>
<td>所在学院:</td>
<td> <input type="text" id="xueyuan" name="xueyuan" value="" ></td>
</tr>
<tr>
<td>所在系:</td>
<td> <input type="text" id="xi" name="xi" value="" ></td>
</tr>
<tr>
<td>所在班级:</td>
<td> <input type="text" id="ban" name="ban" value="" ></td>
</tr>
<tr>
<td>入学年份(届):</td>
<td>
<select id="year" name="year">
<option>--请选择--</option> <option value="2018">2018</option>
<option value="2017">2019</option>
<option value="2016">2018</option>
<option value="2015">2019</option>
<option value="2014">2018</option>
</select>
</td>
</tr>
<tr>
<td>生源地:</td>
<td>
<select name="address">
<option value ="河北省">河北省</option>
<option value ="北京市">北京市</option>
<option value ="天津市">天津市</option>
<option value ="邱县">邱县</option>
</select>
</td>
</tr>
<tr>
<td>备注:</td>
<td> <input type="text" id="beizhu" name="beizhu" value="" ></td>
</tr>
<tr>
<td> <button type="submit" >添&nbsp;&nbsp;&nbsp;&nbsp;加</button></td>
</tr>
</table>
</form>
</body>
</html>

数据库的连接与关闭:DB.java

package DateBase;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DB {
public static String db_url = "jdbc:mysql://localhost:3306/web08?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";//?serverTimezone=GMT%2B8 public static String db_user = "root";
public static String db_pass = "root"; public static Connection getConn () {
Connection conn = null; try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
conn = DriverManager.getConnection(db_url, db_user, db_pass);
} catch (Exception e) {
e.printStackTrace();
} return conn;
} /**
* 关闭连接
* @param state
* @param conn
*/
public static void close (Statement state, Connection conn) {
if (state != null) {
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static 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();
}
}
} public static void main(String[] args) throws SQLException {
Connection conn = getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql ="select * from USER";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
System.out.println("空");
}else{
System.out.println("不空");
}
} }

执行sql语句:Dao.java

package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import DateBase.DB;
import Entity.FileUploadUtils;
import Entity.User;
import jdk.nashorn.internal.ir.RuntimeNode.Request; public class Dao {
public boolean add(String username,String password,String sex,String name,String xuehao,String mail,String xueyuan,String xi,String ban,String year,String address,String beizhu) {
String sql = "insert into shangke values ('" + username + "','" + password +"','" + sex +"','" +name +"','" + xuehao +"','" + mail +"','" +xueyuan +"','"+xi +"','"+ban +"','"+year+"','"+address +"','"+beizhu +"')";
// 创建数据库链接
Connection conn = DB.getConn();
Statement state = null;
boolean f = false;
int a = 0;
try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭z 连接
DB.close(state, conn);
} if (a > 0) {
f = true;
}
return f;
}
}

Selvlet:UserSelvlet.java

package Servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import Entity.User;
import Dao.Dao; /**
* Servlet implementation class UserServlet
*/
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public UserServlet() {
super();
// TODO Auto-generated constructor stub
}
Dao dao = new Dao(); protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if ("add".equals(method)) { add(req, resp);
//System.out.println("!!!");
}
}
private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
// TODO Auto-generated method stub
String username = req.getParameter("username");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String name = req.getParameter("name");
String xuehao = req.getParameter("xuehao");
String mail = req.getParameter("mail");
String xueyuan = req.getParameter("xueyuan");
String xi = req.getParameter("xi");
String ban = req.getParameter("ban");
String year = req.getParameter("year");
String address = req.getParameter("address");
String beizhu = req.getParameter("beizhu");
if(dao.add(username,password,sex,name,xuehao,mail,xueyuan,xi,ban,year,address,beizhu)) {
req.setAttribute("message", "注册成功!");
req.getRequestDispatcher("shangke.jsp").forward(req, resp);
}else {
req.setAttribute("message", "账号重复,请重新输入!");
req.getRequestDispatcher("shangke.jsp").forward(req, resp);
}
} }

四,运行测试

1,正确添加

2,登入账号校验:

3,密码校验:

4, 学号校验:

5,邮箱校验:

课堂测试_WEB界面链接数据库的更多相关文章

  1. 用javaweb写一个注册界面,并将数据保存到后台数据库(全部完成)(课堂测试)

    一.题目:WEB界面链接数据库 1.考试要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母. ...

  2. 课堂测试——jsp登录界面设计

    实现结果:在login.jsp页面提交用户名和密码(可以验证是否为空),点击登录跳转到loginResult.jsp页面进行验证并显示结果 JSP + JDBC + MySQL login.jsp 设 ...

  3. JDBC链接数据库步骤

    java中定义链接数据库的标准:JDBC 1.导包:不同数据库有不同的jdbc驱动包,而且jdbc驱动包和数据库版本必须对应 2.测试 3.写代码 try { 1.//加载JDBC驱动    Clas ...

  4. 耿丹CS16-2班课堂测试作业汇总

    Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...

  5. PHP 链接数据库1(连接数据库&简单的登录注册)

    对 解析变量的理解 数据库的名称和表的名称不能重复 从结果中取出的数据   都是以数组的形式取出的 1.PHP查询数据库中的某条信息 //PHP链接数据库 /*1.造链接对象 IP地址 用户名 密码 ...

  6. Linux下链接数据库图形化工具

    (一).Linux环境下mysql的安装.SQL操作 Linux下安装MySQL (rmp --help) 基本步骤:上传软件->检查当前Linux环境是否已经安装,如发现系统自带的,先卸载-& ...

  7. Spring 链接数据库

    一.前言 Spring 现在是我们在做 JavaWeb 开发中,用的最主流的框架.以后是不是我们暂时不知道,但现在是.废话不多我就介绍 Spring 中.链接数据库的三种方式: git源码地址 需要的 ...

  8. 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现

    20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...

  9. 20155228 2017-5-31 课堂测试:编写MyOD.java

    20155228 2017-5-31 课堂测试:编写MyOD.java 题目和要求 编写MyOD.java:用java MyOD XXX实现Linux下od -tx -tc XXX的功能 提交测试代码 ...

随机推荐

  1. 第1节 kafka消息队列:3、4、kafka的安装以及命令行的管理使用

    6.kafka的安装 5.1三台机器安装zookeeper 注意:安装zookeeper之前一定要确保三台机器时钟同步 */1 * * * * /usr/sbin/ntpdate us.pool.nt ...

  2. JS enter键一键登录

    $("body").keydown(function (event) { ) { //enter键键值为13 $('.finish-btn').click(); // $('.fi ...

  3. boost::timer demo

    #include <iostream> #include <boost/timer.hpp> //timer的头文件 using namespace boost; //打开bo ...

  4. vue 使用 element-ui 时报错ERROR in ./node_modules/element-ui/lib/theme-chalk/fonts/element-icons.ttf

    在vue项目中引用 element-ui 时,虽然按照 element-ui 的官方文档一步步操作,还是产生了下面的错误 解决这个问题的方法,就是在  web pack.config.js  文件中进 ...

  5. 吴裕雄--天生自然JAVAIO操作学习笔记:压缩流与回退流

    import java.io.File ; import java.io.FileInputStream ; import java.io.InputStream ; import java.util ...

  6. LR的深入理解资料汇集

    今天面试被问到LR的算法的梯度和正则化项,自己不太理解,所以找了一些相关资料,发现LR的算法在梯度下降,正则化和sigmoid函数方面都有很深的研究,期间也发现一些比较好的资料,记录一下. 这篇论文推 ...

  7. Typora: Markdown Reference (Typora下Markdown语法使用说明)

    引言 由于一直在使用Typora,这个是我使用过的最棒的Markdown编辑器,但是总是忽略某一个功能,于是决定认真看一下其帮助文档 这里做一个简单主要功能的中文翻译(按键对应Windows下). 标 ...

  8. 5G/NR 帧结构

    原文链接:http://www.sharetechnote.com/html/5G/5G_FrameStructure.html 在学术界和3GPP中对帧结构进行了长时间的讨论,现在我们就NR(5G) ...

  9. 第3节 sqoop:5、实现数据的控制导入

    导入表数据子集 我们可以导入表的使用Sqoop导入工具,"where"子句的一个子集.它执行在各自的数据库服务器相应的SQL查询,并将结果存储在HDFS的目标目录. where子句 ...

  10. vSphere HA 原理与配置

    内容预览: 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控 ...