题目要求:

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. JVM:Java 类的加载机制

    虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制. 类的生命周期 类从被加载到虚拟机内 ...

  2. crashpad 应用程序异常解决方案

    衡量某个应用程序的稳定性的一个重要指标即它自身的崩溃率的统计,但是如何判断应用程序崩溃,且上报崩溃产生的dmp文件进行分析? google提供了一套开源的系统 Crashpad,详细了解参见 http ...

  3. 使用 json 模块,使json数据格式与Python字典dict数据格式互相转换,获取数据更加方便

    一.定义 JSON 是一种数据格式 使用 javaScript (Java 死鬼破特)对象表示法 二.特点 1.JSON 与 XML格式数据的区别 ====== 两种格式的数据,都是跨语言,跨平台 c ...

  4. 数据结构——java Queue类

    定义 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作. LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用 图例 Que ...

  5. 树莓派1 安装使用 ZeroTier

    基于P2P网络的Private LAN工具:ZeroTier Linux (DEB and RPM distributions) We've found a way to make the easy ...

  6. 【测试】性能测试及性能测试工具Loadrunner

    性能测试简介 软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等.这些都是可以衡量一个软件系统性能好坏的指标.而性能测试是指通过自动化测试工具去模拟多种正 ...

  7. 077-PHP数组删除元素

    <?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 echo '删除元素之前数组中的元素个数为:'.count($arr); //输出数组 ...

  8. 《ES6标准入门》(阮一峰)--2.let 和 const 命令

    1.let命令 基本用法 let只在命令所在的代码块内(花括号内)有效. for循环的计数器,就很合适使用let命令. //var var a = []; for (var i = 0; i < ...

  9. springmvc(@ResponseBody)无法跳转到对应的jsp页面

    项目框架:spring+springmvc+mybatis 问题描述:Controller返回jsp页面名称后,前端无法跳转到该页面,而是将该jsp名称打印到前端页面 前端异常信息:无 后端异常信息: ...

  10. 记-OSPF学习

    LSA Type 1:Router LSA1.传播范围 :只能在本区域2.通告者 :每台路由器 (router-id作为标识)3.内容 :路由和拓扑信息show ip ospf database ro ...