错误原因:

1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的).

2.代码的某些名称错误,导致数据库数据存储错误。

添加的Dao类如下:

 package com.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 com.DBUtil.UserDBUtil; import jdk.nashorn.internal.ir.RuntimeNode.Request; public class Dao {
public boolean add(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) {
String sql = "insert into use02 values ('" + username + "','" + password +"','" + name +"','" +studentID +"','" + sex +"','" +phone +"','" + email +"','" +xueyuan +"','"+xi +"','"+classes +"','"+year+"','"+shengyuandi +"','"+beizhu +"')";
// 创建数据库链接
Connection conn = UserDBUtil.getConnection();
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;
}
}

修改后的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 com.Dao.*;
import com.DBUtil.*; /**
* Servlet implementation class UserServlet
*/
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public AddServlet() {
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 name = req.getParameter("name");
String studentID = req.getParameter("studentID");
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("classes");
String year = req.getParameter("year");
String shengyuandi = req.getParameter("shengyuandi");
String beizhu = req.getParameter("beizhu");
if(dao.add(username,password,name,studentID,sex,phone,email,xueyuan,xi,classes,year,shengyuandi,beizhu)) {
req.setAttribute("message", "注册成功!");
req.getRequestDispatcher("index1.jsp").forward(req, resp);
return;
}else {
req.setAttribute("message", "账号重复,请重新输入!");
req.getRequestDispatcher("index1.jsp").forward(req, resp);
return;
}
//req.getRequestDispatcher("index1.jsp").forward(req, resp);
} }

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;
} }

数据库连接程序:

 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(); }

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=add" 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" >
<br/> <span class="sex">性别</span>
<input type="radio" name="sex" id="sexnan" value="M">男
&nbsp;
<input type="radio" name="sex" id="sexnv" value="F">女
<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数据库连接的理解:

Java类:

1.servlet 类 处理从前端接受的信息,即jsp 与数据库连接的接口

2.DBUtil 类  加载数据库驱动, 建立对数据库的连接。

3.Dao 类  实现对数据库的增删改查

4.Bean 类 存储信息的基础类

5.在lib目录下导入需要的jar的包

6. jsp 实现界面。

本人目前处于初学阶段,代码大部分都是对模板进行修改,没有完全理解,仍旧有许多需要学习的地方。

数据库的JDBC桥接:

面向对象的应用程序接口,制定了统一的访问各种关系型数据库的标准接口。

JDBC任务:

1.与数据库建立连接

2.向数据库发生sql语句

3.处理从数据库返回的结果

以下是之前的错误代码:

https://www.cnblogs.com/cxy0210/p/11715924.html

以上代码如有错误,敬请指正,感激不尽。

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

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

    题目要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单 ...

  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. uboot配置和编译过程详解

    根据朱有鹏老师讲解整理 一.uboot主Makefile分析 1.uboot version确定(Makefile的24-29行) include/version_autogenerated.h文件是 ...

  2. Intellij IDEA中配置TFS

    TFS是微软推出的一款研发过程管理利器,C#阵营的VS里做了默认集成,但是对于Java阵营的Intellij IDEA,需要安装插件并进行相应配置才能使用: 1.打开配置 2.搜索并安装插件 3.配置 ...

  3. docker安装并设置开机启动(Linux)

    docker 开机启动: systemctl enable docker 使用的linux系统为CentOS7.2 docker分为CE和EE版本,EE版本收费,一般我们使用CE版本就满足要求了 do ...

  4. A convenient way to recognize and handwrite multidimensional arrays in Numpy

    As a new learner of Numpy, it is very common to be confused by the form of array, braces nested in b ...

  5. SSH和SFTP的简单使用

    ssh命令 ssh 命令用来远程登录linux主机:ssh username@hostname 默认端口是22,如果设定了其他端口,那么使用-p参数来指明,例如端口若改为6666, 则登录命令变为 s ...

  6. P1429 平面最近点对(加强版)(分治)

    P1429 平面最近点对(加强版) 主要思路: 分治,将点按横坐标为第1关键字升序排列,纵坐标为第2关键字升序排列,进入左半边和右半边进行分治. 设d为左右半边的最小点对值.然后以mid这个点为中心, ...

  7. 指令——pwd

    完整的指令的标准格式:Linux通用的格式 #指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令pwd: 用法:#pwd(print workin ...

  8. python面试题整理(二)

    1.进程,线程,协程定义,有什么区别 进程是操作系统分配资源的最小单位,一个进程对应一块CPU 线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至 ...

  9. 用 Python 分析网易严选 Bra 销售信息,告诉你她们真实的 Size

    今天通过爬虫数据进行分析,一起来看看网易严选商品评论的获取和分析. 声明:这是一篇超级严肃的技术文章,请本着学习交流的态度阅读,谢谢! !   ​ 网易商品评论爬取 分析网页 评论分析 进入到网易严选 ...

  10. Bean XML 配置(1)- 通过XML配置加载Bean

    系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...