题目要求

完成注册界面及添加功能

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

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

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

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

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

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

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

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

设计思路

页面布局部分(.jsp):

   

add.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 style="text-align:center;">
 <%
      Object message = request.getAttribute("message");
      if(message!=null && !"".equals(message)){
 
 %>
      <script type="text/javascript">
           alert("<%=request.getAttribute("message")%>");
      </script>
 <%} %>
 <br>
 <%--换行--%>
  <h2>添加学生信息</h2>
  <hr size="1" noshade color="#000000">
  <%--横线--%>
  <form action="Servlet?method=add" method="post" id="form"
   onSubmit="return validate()">
 
   <table width="800" border="0" align="center">
    <%--表格的宽为800,居中对齐--%>
    <%--表格的宽为800,居中对齐--%>
   <tr>
    <td>账号: <input type="text" name="username"></td>
   </tr>
   <tr>
    <td>密码: <input type="password" name="password"></td>
   </tr>
   <tr>
    <td>姓名: <input type="text" name="name">
    </td>
   </tr>
   <tr>
    <td>性别:&nbsp;&nbsp;&nbsp;<input id="pingtaijb" name="sex" type="checkbox"
     value="男">男 </input> <input id="pingtaijb" name="sex"
     type="checkbox" value="女" />女 </input>
    </td>
   </tr>
   <tr>
    <td>学号: <input type="text" name="num"></td>
   </tr>
   <tr>
    <td>邮箱: <input type="text" name="e_mail">
    </td>
   </tr>
   <tr>
    <td>学校: <input type="text" name="school">
    </td>
   </tr>
   <tr>
    <td>专业: <input type="text" name="zhuan">
    </td>
   </tr>
   <tr>
    <td>班级: <input type="text" name="ban">
    </td>
   </tr>
   <tr>
    <td>年份: <input type="text" name="year">
    </td>
   </tr>
   <tr>
    <td>生源地: <select name="diqu" οnchange="showUser(this.value)">
     <option value="1">北京市</option>
     <option value="2">天津市</option>
     <option value="3">河北省</option>
     <option value="4">山西省</option>
    </select>
    </td>
   </tr>
   <tr>
    <td>备注: <input type="text" name="bei">
    </td>
   </tr>
   <tr>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input name="submit" type="submit" value="添加" />
    <input type="reset" value="重置"></td>
   </tr>
  </table>
  <p>&nbsp;</p>
 </form>
<script type="text/javascript" language="JavaScript">
  //JS
  function validate() {
   
       var num = document.forms[0].username.value;//账号
       var password = document.forms[0].password.value;//密码
       var sex = document.forms[0].sex.value; //姓名
       var name = document.forms[0].name.value; //性别
       var stunum = document.forms[0].num.value;//学号
       var e_mail = document.forms[0].e_mail.value; //邮箱
       var college = document.forms[0].school.value; //学校
       var major = document.forms[0].zhuan.value; //专业
       //var ban = document.forms[0].ban.value; //班级
       var year = document.forms[0].year.value; //年份
       var locate = document.forms[0].diqu.value; //生源地
       var beizhu = document.forms[0].bei.value; //备注
   
       /*var username = validate(document.form.user_name.value);
       var password = validate(document.form.password.value);
       var name = validate(document.form.name.value);
       var sex = validate(document.form.sex.value);
       var num = validate(document.form.num.value);
       var e_mail = validate(document.form.e_mail.value);
       var school = validate(document.form.school.value);
       var zhuan = validate(document.form.zhuan.value);
       var ban = validate(document.form.ban.value);
       var year = validate(document.form.year.value);
       var diqu = validate(document.form.diqu.value);
       var bei = validate(document.form.bei.value);*/
   
       if (username[0]<'A'||username[0]>'z') {
          alert("账号必须以字母开头!");
          return false;
       }
       else if (12<username.length||username.length <6) { //判断姓名位数,必填
          alert("账号必须6-12位!");
          return false;
       }
       else if (password.length <= 8) {
          alert("请输入八位以上的密码!");
          return false;
       }
       else if (name.length <= 0) {
          alert("姓名不能为空,请输入姓名!");
          return false;
       }
       else if (num.length<8) {
          alert("学号必须是8位!");
          return false;
       }
       else if (num[0]=='2'&&num[1]=='0'&&num[2]=='1'&&num[3]=='7') {
          alert("前四位必须是2018!");
          return false;
       }
       else if (e_mail.length <= 0) {
          alert("邮箱不能为空,请输入邮箱!");
          return false;
       }
       else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(e_mail))
       {
          alert("请输入格式正确的 e-mail 地址!");
          return false;
       }  
       else {
          return true;
       }
       //document.getElementById("form").submit();
 }
 </script>
</body>
</html>

数据库连接部分(.java):

DBUtil.java

  

package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 数据库连接工具
 * @author Hu
 *
 */
public class DBUtil {
 
   public static String dbURL="jdbc:mysql://localhost:3306/test";//数据源  !!!!注意若出现加载或者连接数据库失败一般是这里出现问题
   public static String Name="root";
   public static String Pwd="123456";
 
   public static Connection getConn () {
       Connection conn = null;
  
       try {
      Class.forName("com.mysql.jdbc.Driver");//加载驱动
      conn = DriverManager.getConnection(dbURL, Name, Pwd);
       } 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();
   }
  }
 }
}

dao.java

package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cls.admin;
import util.DBUtil;
public class dao {
 /**
  * 娣诲姞
  * @param course
  * @return
  */
 public boolean add(admin course) {
  String sql = "insert into clc(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu) "
    + "values('" +course.getNum()+  "',"
      + "'" + course.getPassword() + "',"
        + "'" + course.getSex()+ "',"
          + "'"+ course.getName()+ "',"
            + "'"+ course.getStunum() + "'"
              + ",'" + course.getE_mail() + "',"
                + "'" + course.getCollege()+ "',"
                  + "'" +course.getMajor()+"',"
                    + "'"+course.getYear() +"',"
                      + "'"+course.getLocate()+"',"
                        + "'"+course.getBeizhu()+"')";
  Connection conn = DBUtil.getConn();
  Statement state = null;
  boolean f = false;
  int a = 0;
  
  try {
   state = conn.createStatement();
   a=state.executeUpdate(sql);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(state, conn);
  }
  
  if (a > 0) {
   f = true;
  }
  return f;
 }
}
 
Lservice.java
package service;
import cls.admin;
import dao.dao;
/**
 * CourseService
 * 服务层
 * @author Hu
 *
 */
public class Lservice {
 static dao cDao = new dao();
 
 /**
  * 添加
  * @param course
  * @return
  */
 public static boolean add(admin course) {
  boolean f = false;
  
   cDao.add(course);
   f = true;
  
  return f;
 }
 
}
 
admin.java
 
package cls;
public class admin {
private String num;
private String password;
private String sex;
private String name;
private String stunum;
private String e_mail;
private String college;
private String major;
private String year;
private String locate;
private String beizhu;
public String getNum() {
 return num;
}
public void setNum(String num) {
 this.num = num;
}
public String getPassword() {
 return password;
}
public admin(String num, String password, String sex, String name, String stunum, String e_mail, String college, String major,
  String year, String locate, String beizhu) {
 super();
 this.num = num;
 this.password = password;
 this.sex = sex;
 this.name = name;
 this.stunum = stunum;
 this.e_mail = e_mail;
 this.college = college;
 this.major = major;
 this.year = year;
 this.locate = locate;
 this.beizhu = beizhu;
}
public void setPassword(String password) {
 this.password = password;
}
public String getSex() {
 return sex;
}
public void setSex(String sex) {
 this.sex = sex;
}
public String getName() {
 return name;
}
public void setName(String name) {
 this.name = name;
}
public String getStunum() {
 return stunum;
}
public void setStunum(String stunum) {
 this.stunum = stunum;
}
public String getE_mail() {
 return e_mail;
}
public void setE_mail(String e_mail) {
 this.e_mail = e_mail;
}
public String getCollege() {
 return college;
}
public void setCollege(String college) {
 this.college = college;
}
public String getMajor() {
 return major;
}
public void setMajor(String major) {
 this.major = major;
}
public String getYear() {
 return year;
}
public void setYear(String year) {
 this.year = year;
}
public String getLocate() {
 return locate;
}
public void setLocate(String locate) {
 this.locate = locate;
}
public String getBeizhu() {
 return beizhu;
}
public void setBeizhu(String beizhu) {
 this.beizhu = beizhu;
}
public void admin()
{
}
}

Servlet部分:

Servlet.java

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 service.Lservice;
import cls.admin;
/**
 * Servlet implementation class Servlet
 */
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
Lservice service = new Lservice();
 
 /**
  * 方法选择
  */
 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);
  }
 }
 /**
  * 添加
  * @param req
  * @param resp
  * @throws IOException
  * @throws ServletException
  */
 private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
  req.setCharacterEncoding("utf-8");
  String num = req.getParameter("num");
  String password = req.getParameter("password");
  String sex = req.getParameter("sex");
  String name = req.getParameter("name");
  String stunum = req.getParameter("stunum");
  String e_mail = req.getParameter("e_mail");
  String college = req.getParameter("college");
  String major = req.getParameter("major");
  String year = req.getParameter("year");
  String locate = req.getParameter("locate");
  String beizhu = req.getParameter("beizhu");
  admin course = new admin(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu);
  
  //添加后消息显示
  if(Lservice.add(course)) {
   req.setAttribute("message", "添加成功");
   req.getRequestDispatcher("add.jsp").forward(req,resp);
  } else {
   req.setAttribute("message", "姓名重复,请重新录入");
   req.getRequestDispatcher("add.jsp").forward(req,resp);
  }
 }
}

java注册界面及mysql连接的更多相关文章

  1. 吴裕雄--天生自然 JAVA开发学习:MySQL 连接

    CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DEFAULT '' ...

  2. Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决

    Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常解决 I. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity ...

  3. Java-Runoob-高级教程:Java MySQL 连接

    ylbtech-Java-Runoob-高级教程:Java MySQL 连接 1.返回顶部 1. Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL ...

  4. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  5. Java 学习(22):Java MySQL 连接

    Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库. Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mys ...

  6. Java 与 Mysql连接,并分页显示

    这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...

  7. Java Mysql连接池配置和案例分析--超时异常和处理

    前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...

  8. java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)

    java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver) 1.往项目中添加mysql-conne ...

  9. Java之旅_高级教程_Java Mysql连接(1)

    工具:Eclipse .mysql5.7 MySQL连接驱动:mysql-connector-java-5.1.27.jar    获取地址:https://dev.mysql.com/downloa ...

随机推荐

  1. 木兰国产编程语言 Mulan--附带下载地址

    我国自主研发的 编程语言:木兰. 中国新闻网 : http://www.cas.cn/cm/202001/t20200116_4731821.shtml 说明介绍 百度一番后,发现没有下载地址,没有官 ...

  2. EasyUI笔记(三)Window窗口

    本系列只列出一些常用的属性.事件或方法,具体完整知识请查看API文档 Window(窗口) 窗口控件是一个浮动和可拖拽的面板可以用作应用程序窗口.默认情况下,窗口可以移动,调整大小和关闭.它的内容也可 ...

  3. HAProxy 使用小记

    PS:写在开头,虽然HAProxy优点很多,但是现在网上可参考的HAProxy文档真的少之又少,so,我把最近在项目中使用的心得整理下,供大家参考,如有侵权或错误之处,还请联系更正,谢谢! 好了,下面 ...

  4. ssh 或 putty 连接linux报错解决方法

    由于当天多次输入错误密码,ssh和putty就连接不上了,纠结了很久解决问题 ssh连接提示错误:server unexpectedly closed network connection putty ...

  5. C#设计模式学习笔记:(1)单例模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8250985.html,记录一下学习过程以备后续查用. 一.引言 设计模式的分类: 1)依目的: 创建型(Cr ...

  6. TCP与UDP的一些心得

    1:CC攻击是正常的业务逻辑,大并发让你处理不过来,处理XP SP2,以上的系统都封了RAW格式协议封包自定义,除了基于应用层改协议,之外都是模拟或请求来测试传输层2:UDP不会粘包,不会少包,除非缓 ...

  7. Git无法提交branch is currently checked out

    报错 git无法提交,提示 ! [remote rejected] master -> master (branch is currently checked out) 原因 初始化没有用git ...

  8. thinkphp 5.0 后台数据修改

    html代码 <table class="easyui-datagrid" data-options="singleSelect:true,collapsible: ...

  9. selenium webdriver执行远程 第三方js解决方案

    今天一个朋友问我问题 考虑了下直接上代码,这是伪代码不能执行,但是给出了思路 代码 url = 'http://www.qingmiaokeji.cn/test.js' res = urllib.re ...

  10. 输出《Harry Potter and the Sorcerer's Stone》文本中的前N个最长用的英文单词及其数量

    输出<Harry Potter and the Sorcerer's Stone>文本中的前N个最长用的英文单词及其数量 实验思路: 1. 利用输入流将文件当中内容读入. 2. 将文件内容 ...