题目要求:

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

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

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

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

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

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

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

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

com.Bean

 public class User {
private String username;
private String password;
private String name;
private String studentID;
private String sex;
private String phone;
private String email;
private String xueyuan;
private String xi;
private String classes;
private String year;
private String shengyuandi;
private String beizhu;
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 getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudentID() {
return studentID;
}
public void setStudentID(String studentID) {
this.studentID = studentID;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getXueyuan() {
return xueyuan;
}
public void setXueyuan(String xueyuan) {
this.xueyuan = xueyuan;
}
public String getXi() {
return xi;
}
public void setXi(String xi) {
this.xi = xi;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getShengyuandi() {
return shengyuandi;
}
public void setShengyuandi(String shengyuandi) {
this.shengyuandi = shengyuandi;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public User(String username, String password, String name, String studentID, String sex, String phone, String email,
String xueyuan, String xi, String classes, String year, String shengyuandi, String beizhu) {
super();
this.username = username;
this.password = password;
this.name = name;
this.studentID = studentID;
this.sex = sex;
this.phone = phone;
this.email = email;
this.xueyuan = xueyuan;
this.xi = xi;
this.classes = classes;
this.year = year;
this.shengyuandi = shengyuandi;
this.beizhu = beizhu;
} }

数据库驱动加载与连接()

 package com.DBUtil;

 import java.sql.Connection;

 import java.sql.DriverManager;
//import java.sql.ResultSet;
import java.sql.SQLException;
//import java.sql.Statement; public class UserDBUtil {
static Connection con;
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B88&serverTimezone=GMT%2B8&useSSL=false","root","101032");
System.out.println("数据库链接成功!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return con;
} public static void main(String[] args) {
UserDBUtil c=new UserDBUtil();
c.getConnection(); }

出现如图所示输出,说明数据库的驱动加载成功,数据库连接成功。

servlet是运行在web服务器或应用服务器的程序,用来处理客户端请求的动态资源.即后台的服务程序

 package com.Servlet;

 import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
//import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; //import com.Bean.*;
import com.DBUtil.*; public class AddServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException {
req.setCharacterEncoding("UTF-8"); String username = req.getParameter("username");
String password= req.getParameter("password");
String name= req.getParameter("name");
String studnetID = req.getParameter("studnetID");
String sex= req.getParameter("sex");
String phone= req.getParameter("phone");
String email= req.getParameter("email");
String xueyuan = req.getParameter("xueyuan");
String xi = req.getParameter("xi");
String classes = req.getParameter("clsaaes");
String year = req.getParameter("year");
String shengyuandi = req.getParameter("shengyuandi");
String beizhu = req.getParameter("beizhu"); Connection conn = UserDBUtil.getConnection();
Statement state =null;
String addsql = null;
try {
state = conn.createStatement();
addsql = "insert into use01 (username,password,name,studnetID,sex,phone,email,xueyuan,xi,clsaaes,year,shengyuandi,beizhu) values ('"+username+"','"+password+"','"+name+"','"+studnetID+"','"+sex+"','"+phone+"','"+email+"','"+xueyuan+"','"+xi+"','"+classes+"','"+year+"','"+shengyuandi+"','"+beizhu+"')";
state.executeUpdate(addsql);
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
resp.sendRedirect(req.getContextPath()+"/index.jsp"); }
}

网页的排版编码:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
</head>
<body> <script type="text/javascript" src="./js/jquery-3.3.1.min.js"></script> <div class="container">
<section>
<form action="AddServlet" method="post" onsubmit="return check(this)">
<span class="username">登陆账号</span>
<input type="text" name="username" placeholder=" username" id="username">
<br/> <span class="password">登陆密码</span>
<input type="password" name="password" placeholder=" password" id="password">
<br/> <span class="name">姓名</span>
<input type="text" name="name" placeholder=" name" id="name">
<br/> <span class="studentID">学号</span>
<input type="text" name="studentID" placeholder=" studentID" id="studentID" value="2018">
<br/> <span class="sex">性别</span>
<input type="radio" name="sex" id="sexnan" value="男">男
&nbsp;
<input type="radio" name="sex" id="sexnv" value="女">女
<br/> <!-- <span class="diqu">地区</span> -->
<!-- <select name="diqu"> -->
<!-- <option value ="北京市">北京市</option> -->
<!-- <option value ="天津市">天津市</option> -->
<!-- <option value="河北省">河北省</option> -->
<!-- </select> -->
<!-- <br/> --> <span class="phone">手机号</span>
<input type="text" name="phone" placeholder=" phone" id="phone">
<br/> <span class="email">邮箱</span>
<input type="text" name="email" placeholder=" email" id="email">
<br/> <span class="xueyuan">所在学院:</span>
<input type="text" name="xueyuan" placeholder=" xueyuan" id="xueyuan">
<br/> <span class="xi">所在系:</span>
<input type="text" name="xi" placeholder=" suozaixi" id="xi">
<br/> <span class="classes">所在班级:</span>
<input type="text" name="classes" placeholder=" classes" id="classes">
<br/> <span class="year">入学年份(届):</span>
<select name="year">
<option value ="2014">2014</option>
<option value ="2015">2015</option>
<option value ="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value ="2019">2019</option>
</select>
<br/> <span class="shengyuandi">生源地:</span>
<input type="text" name="shengyuandi" placeholder=" shengyuandi" id="shengyuandi">
<br/> <span class="beizhu">备注:</span>
<input type="text" name="beizhu" placeholder=" beizhu" id="beizhu">
<br/> <input type="submit" value="保存" class="butn">
<!-- <input type="reset" value="重置" class="butn"> -->
<br/>
</form>
</section>
</div> <script>
//正则表达式
function check(form){ if(form.username.value.length<6 || form.username.value.length>12 || new RegExp("[^0-9a-zA-Z]").test(form.username.value)){
alert("登陆账号必须由6-12位英文字符或数字组成!");
form.user.focus();
return false;
}
if(new RegExp("[^a-zA-Z]").test(form.username.value.substring(0,1))){
alert("登陆账号必须以英文字母开头!");
form.user.focus();
return false;
}
if(form.password.value.length <= 8 || new RegExp("[^0-9a-zA-Z]").test(form.password.value)){
alert("密码必须由八位以上字母、数字组成!");
form.phone.focus();
return false;
}
if(form.studentID.value.length != 8 || new RegExp("[^0-9]").test(form.studentID.value)){
alert("请输入八位学号!");
form.phone.focus();
return false;
} if(form.phone.value.length != 11 || new RegExp("[^0-9]").test(form.phone.value)){
alert("手机号请输入11位数字!");
form.phone.focus();
return false;
} //以数字字母开头,中间可以是多个数字字母或下划线;然后是“@”;然后是数字字母;然后是“.”;最后是2-4个字母结尾
var regex = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
if(!regex.test(form.email.value)){
alert("邮箱格式错误!");
form.email.focus();
return false;
}
return true;
}
</script> </body>
</html>

网页面板如下:

问题:

当数据输入到界面时,界面跳转失败,无法录入数据到数据库。

错误原因如下:

目前仍旧没由修正。

学生信息的添加 Java web简单项目初试(失败)的更多相关文章

  1. 学生信息的添加 Java web简单项目初试(修改)

    错误原因: 1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的). 2.代码的某些名称错误,导致数据库数据存储错误. ...

  2. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  3. JAVA WEB期末项目第二阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 1.开发环境 开发编辑器使用:Visual Studio Code 数据库使用:MySQL8 ...

  4. IDEA Java Web(Spring)项目从创建到打包(war)

    创建Maven管理的Java Web应用 创建新项目,"create new project",左侧类型选择"maven",右侧上方选择自己的SDK,点击&qu ...

  5. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  6. Java web期末项目第一阶段成果发表

    摘要 我们做的系统是一个基于Java web与MySQL的食堂订餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 我们的第一阶段主要完成以下三件事: 完成项目的需求分析 完成项目的领域逻辑(domai ...

  7. 【转】IntelliJ IDEA 创建 hello world Java web Maven项目

    学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...

  8. IntelliJ IDEA 创建 hello world Java web Maven项目从头到尾都有图有真相2017版本

    学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...

  9. JAVA Web期末项目第三阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...

随机推荐

  1. 解决datagridview 横向的scrollbar不显示

    下午遇到这个问题.看到了网上各种解决办法.都没搞定. 新建了一个datagridview.发现是没问题了.仔细对比了一下它们的属性. 在Columns的属性中,有一项:Frozen, 把这个值改顺默认 ...

  2. torch.nn.Conv2d()使用

    API 输入:[ batch_size, channels, height_1, width_1 ] Conv2d输入参数:[ channels, output, height_2, width_2 ...

  3. 十九、React UI框架Antd(Ant Design)的使用——及react Antd的使用 button组件 Icon组件 Layout组件 DatePicker日期组件

    一.Antd(Ant Design)的使用:引入全部Css样式 1.1 antd官网: https://ant.design/docs/react/introduce-cn 1.2 React中使用A ...

  4. POJO,JavaBean,entity的理解

    POJO本质是就是JavaBean JavaBean JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去.所有遵循“一 ...

  5. 【剑指Offer】面试题32 - III. 从上到下打印二叉树 III

    题目 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉树: [3,9,20,nu ...

  6. LeetCode1217 玩筹码(贪心)

    题目: 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 ...

  7. DragonFlyBSD 5.6 RC1 发布

    导读DragonFlyBSD操作系统下一个主要版本的第一个候选版本RC1现在可以进行测试.DragonFlyBSD 5.6将成为一个功能更新的版本,该功能更新将于周二晚上发布,是第一个候选版本,同时将 ...

  8. POJ1611 && POJ2524 并查集入门

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 28293   Accepted: 13787 De ...

  9. centos6.5搭建hadoop单节点

    1.添加用户 groupadd  hadoop useradd -d /home/hadoop -m hadoop -g hadoop passwd hadoop    修改密码 付给用户sudo权限 ...

  10. matlab和fortran混合编程

    matlab2016b+vs2010+ivf2013+f90 其实默认是f77语法,但通过配置可以改变为自由格式. 默认只能f77代码,怎样修改: https://ww2.mathworks.cn/m ...