一.基本需求

二.设计思路:

    1.首先创建一个与数据库数据属性对应的类User,并添加get和set方法。

    2.之后建立另一个类UserDao用于生成一条完整的数据对象。

    3.再建立一个类DButil用于与数据库的连接

    4.最后建立一个类AddUserServlet用于对数据库的内容进行添加操作

    5.同时还要写一个JSP文件完成界面的呈现和细节要求的实现

三.源代码:

    1.User类:

package bean;
public class User {
 private int id; 
 private String username;
 private String password;
 private String name;
 private String sex;
 private String num;
 private String xueyuan;
 private String mail;
 private String xi;
 private String classes;
 private String year;
 private String home;
 private String other;
 public User() {
  super();
 }
 public User(int id, String username,String num, String password,String name,String sex,String mail,String xueyuan,String xi,String classes,String year,String home,String other) {
  super();
  this.id = id;
  this.username = username;
  this.password = password;
  this.name = name;
  this.sex = sex;
  this.num =num;
  this.xueyuan = xueyuan;
  this.classes=classes;
  this.home=home;
  this.other=other;
  this.xi=xi;
  this.mail = mail;
  this.year=year;
 
 }
 
 
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 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 getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public String getNum() {
  return num;
 }
 public void setNum(String num) {
  this.num = num;
 }
 public String getXueyuan() {
  return xueyuan;
 }
 public void setXueyuan(String xueyuan) {
  this.xueyuan = xueyuan;
 }
 public String getMail() {
  return mail;
 }
 public void setMail(String mail) {
  this.mail = mail;
 }
 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 getHome() {
  return home;
 }
 public void setHome(String home) {
  this.home = home;
 }
 public String getOther() {
  return other;
 }
 public void setOther(String other) {
  this.other = other;
 }
 public String toString() {
  return "User [id=" + id + ", userName=" + username + ", password=" + password + "]";
 }
}
2.UserDao类:
package dao;
import bean.User;
import util.DButil;
import java.sql.*;
public class UserDao {
 /**
  * 生成单例
  */
 DButil DB =new DButil();
  private static UserDao userDao =new UserDao();
  public static UserDao getUserDao()
  {
 return userDao;
  
  }
  public boolean addUser(User user)
  {
   String sql="insert into info(username,password,sex,name,num,mail,xueyuan,xi,class,year,home,other)values(?,?,?,?,?,?,?,?,?,?,?,?)";
   Connection conn =null;
   PreparedStatement ps=null;
   boolean flag =false;
   try {
  conn=DB.getConn();
  ps=conn.prepareStatement(sql);
  ps.setString(1, user.getUsername());
  ps.setString(2, user.getPassword());
  ps.setString(3, user.getSex());
  ps.setString(4, user.getName());
  ps.setString(5, user.getNum());
  ps.setString(6, user.getMail());
  ps.setString(7, user.getXueyuan());
  ps.setString(8, user.getXi());
  ps.setString(9, user.getClasses());
  ps.setString(10, user.getYear());
  ps.setString(11, user.getHome());
  ps.setString(12, user.getOther());
  int a=ps.executeUpdate();
  if(a!=0)
  {
   flag =true;
  } 
 } catch (Exception e) {
  // TODO: handle exception
  e.printStackTrace();
 }
   finally {
  DB.close(conn);
  DB.close(ps);
 }
 return flag;
  
  }
}
3.DButil类:
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 数据库的工具类
 *
 * @author
 *
 */
public final class DButil {
 
 /**
  *  数据库的连接函数
  *  可修改的
  *
  * @return 数据库的连接
  */
 public  Connection getConn()
 {
  Connection connection =null;
  // student 为数据库名称  ? 后面加的是条件
  String db_url="jdbc:mysql://localhost:3306/user?serverTimezone=UTC";
  try {
   Class.forName("com.mysql.cj.jdbc.Driver");
   connection = DriverManager.getConnection(db_url, "root", "123456");
   System.out.println("Success connect MySql server!"); 
   
  } catch (Exception e) {
   
  }
  
  
  
  return connection;
 }
 
 public void close(Connection conn)
 {
  if(conn!=null)
  {
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }
 
 public  void close(Statement state) {
  if (state != null) {
   try {
    state.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  
 
 }
 public  void close(PreparedStatement ps) {
  if (ps != null) {
   try {
    ps.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  
 
 }
 public  void close(ResultSet rs) {
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  
 }
}
4.AddUserServlet类:
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.User;
import dao.UserDao;
/**
 * Servlet implementation class AddUserServlet
 */
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
 
 private static final long serialVersionUID = 1L;
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddUserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  int s=0;
  request.setCharacterEncoding("utf-8");
  String username=request.getParameter("username");
  String num=request.getParameter("num");
  String password=request.getParameter("password");
  String name=request.getParameter("name");
  String sex=request.getParameter("sex");
  String mail=request.getParameter("mail");
  String xueyuan=request.getParameter("xueyuan");
  String xi=request.getParameter("xi");
  String classes=request.getParameter("class");
  String year=request.getParameter("year");
  String home=request.getParameter("home");
  String other=request.getParameter("other");
  User user=new User();
  user.setUsername(username);
  user.setPassword(password);
  user.setName(name);
  user.setSex(sex);
  user.setNum(num);
  user.setXueyuan(xueyuan);
  user.setMail(mail);
  user.setXi(xi);
  user.setClasses(classes);
  user.setYear(year);
  user.setHome(home);
  user.setOther(other);
  
  
  UserDao userDao=UserDao.getUserDao();
  if(userDao.addUser(user))
  {
   
   request.setAttribute("message", "添加成功");
   request.getRequestDispatcher("addUser.jsp").forward(request,response);
   }
   
  else
  {
   if(s==1)
   {request.setAttribute("message", "添加失败");
   request.getRequestDispatcher("addUser.jsp").forward(request,response);
   }
   else if(s==0)
   {request.getRequestDispatcher("addUser.jsp").forward(request,response);
   s=1;}
   }
   
   
 }
 
 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  doGet(request, response);
 }
}
5.JSP:
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>login</title>
<style>
</style>
</head>
<body>
<%
      Object message = request.getAttribute("message");
      if(message!=null && !"".equals(message)){
 
 %>
      <script type="text/javascript">
           alert("<%=request.getAttribute("message")%>");
      </script>
 <%} %>
<form action="AddUserServlet" method="post" onsubmit="return check()">
<div align="center">
登录账号:<input id ="username" name="username" type="text"  value=""  onChange="chang1(this.value)">
<br>
登录密码:<input id ="password" name="password" type="password"   value=""  onChange="chang2(this.value)">
<br>
姓名:<input id ="name" name="name" type="text">
<br>
性别: <input id ="sex" name="sex" type="radio" value="男"> 男
    <input id ="sex" name="sex" type="radio" value="女"> 女
   <br>
   学号:<input id ="num" name="num" type="text"  value=""  onChange="chang3(this.value)">
   <br>
    电子邮箱:<input id ="mail" name="mail" type="text" value=""  onChange="chang4(this.value)">
   <br>
   所在学院:<input id ="xueyuan" name="xueyuan" type="text">
   <br>
   所在系:<input id ="xi" name="xi" type="text">
   <br>
   所在班级:<input id ="class" name="class" type="text">
   <br>
入学年份(届):<select name="year">
    <option value="2016">2016</option>
    <option value="2017">2017</option>
    <option value="2018">2018</option>
    <option value="2019">2019</option>
  </select>届
  <br>
 
  生源地:<input id ="home" name="home" type="text">
  <br>
 
  备注:<input id ="other" name="other" type="text">
  <br>
 
   <input type="submit" value="注册">
   
</div>
</form>
<script type="text/javascript">
var reg=/^[a-zA-Z]\w*$/;
var flag1=false,flag2=false,flag3=false;
function chang1(obj)

if(obj.length<6||name.length>12)
{  
 alert("用户名要求6-12位");  }
if(!reg.test(obj))
{   
 alert("用户名由字母开头,后字母、数字或下划线!");
}
}
function chang2(obj)

if(obj.length<8)
{  
 alert("密码要求8位以上");  }
}
function chang3(obj)

if(obj.length!=8)
{  
  alert("学号为8位"); 
}
else if(obj.length==8)
{
 var fdStart = obj.indexOf("2018");
    if(fdStart !=0){
  alert("学号应以2018开头"); 
 }
 
}
}
function chang4(obj)    
{    
         
        if(obj.length!=0){   
        reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;   
        if(!reg.test(obj)){   
            alert("对不起,您输入的邮箱格式不正确!");//请将“字符串类型”要换成你要验证的那个属性名称!   
        }   
        }   
}    
     
   
 
</script  >
</body>
</html>
 

对简易网页版注册系统的制作(连接MySQL数据库)的更多相关文章

  1. 电脑重装系统后如何恢复Mysql数据库

    电脑重装系统后如何恢复Mysql数据库 一.[设置mysql的path]

  2. jsp-3 简单的servlet连接mysql数据库 使用mvc的登录注册

    简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...

  3. 电脑重装系统后如何恢复 Mysql 数据库

    电脑重装系统后如何恢复 Mysql 数据库 一.[设置mysql的path] 比如:我的mysql在:D:\DataBase\mysql-5.7.13-winx64,可以在环境变量中重新新建一个环境变 ...

  4. Linux系统下 解决Qt5无法连接MySQL数据库的方法

    Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...

  5. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...

  6. 系统重装后,Mysql数据库重装加载原来数据库

    相信不只我一个人因为重新装了系统后,导致mysql数据库无法使用的问题.尽管可以重新安装一个mysql服务端程序在自己的电脑上,但是要如何才能够将之前的数据库也一并重新恢复呢? 今天,我找到了解决之道 ...

  7. 关于wind7重新安装系统后,连接mysql的问题

    系统重装对于我们来说,可以说是家常便饭了.但重装系统之后 ,又要装很多的应用软件是会很烦的.特别是重装一些数据库软件,时间长不说,搞不好数据丢失了会让人抓狂. 今天我简单介绍一个不用重装mysql的方 ...

  8. Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能

    1 环境搭建 1.1 Python安装 1.2 MySQL环境搭建 1.3安装MySQLdb  2 具体实现 2.1 登陆界面 2.2 注册界面 2.3 具体实现部分代码   1 环境搭建 1.1 P ...

  9. CentOS 6.5系统中安装配置MySQL数据库

    就像Windows server 2003,2008中一般安装的是Sql Server 数据库,在linux系统中一般安装的是mysql数据库,而且Mysql数据库的第一个版本就是发行在Linux系统 ...

随机推荐

  1. Amoeba介绍及原理

    Amoeba的中文意思是变型虫 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库 ...

  2. Kosaraju's algorithm

    推荐到我的这篇博客中看完整版的. 该算法用于求解有向图的强连通分量,也就是强连通子图的个数. 算法实现摘自Kosaraju's algorithm - 百度百科: #include <iostr ...

  3. phpRedis函数使用总结【分类详细】

    <?php /*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host, ...

  4. abp方法权限

    一.自定义一个权限实体,也可以直接用abp的PermissionNames类 二.重写PermissionChecker中的IsGrantedAsync方法 public override async ...

  5. Codeforces Round #576 (Div. 2) 题解

    比赛链接:https://codeforc.es/contest/1199 A. City Day 题意:给出一个数列,和俩个整数\(x,y\),要求找到序号最靠前的数字\(d\),使得\(d\)满足 ...

  6. 《JavaScript高级程序设计》读书笔记(四)变量、作用域和内存问题

    内容---理解基本类型和引用类型的值---理解执行环境---理解垃圾收集 --JavaScript变量松散类型的本质--决定了它只是在特定时间用于保存特定值的一个名字而已--变量的值及其数据类型可以在 ...

  7. C/C++程序从文本文件中读取(保存)数据

    :本文仅供初学者参阅,解惑 在C程序中: 与程序代码外的数据(文件)打交道,我们使用到流(stream)这个概念,实现进程的虚拟内存与文件之间的数据交换. ——文件流:C标准库提供了FILE(之所以命 ...

  8. (Java多线程系列九)线程池

    线程池 1.什么是线程池 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程.线程池中线程的数量通常取决于可用内存数量和应用程序的需求. ...

  9. Spring Boot Mybatis 使用教程

    Mybatis 在当下互联网开发环境,十分重要.本章主要讲述 Mybatis 如何使用. 从本系列开始,都需要用到 mysql 数据库 和其他一些参考的数据库.请准备相关环节.本章需要以下环境支撑: ...

  10. 关于雷达(Radar)信道

    有些时候,我们在实际的无线网络中,会遇到无线信道一致flapping的情况,即便我们自定义了信道的,发现也会出现flapping.如果这种情况,可能需要确认是否你使用的信道上检测到了雷达. 这里记录一 ...