课堂测试

考试要求:

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

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

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

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

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

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

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

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

步骤:

一、建立输入的数据对应的类和相应的函数。

package com.entry;

public class user {
private String id;//账号
private String password;//密码
private String name;//姓名
private String sex;//性别
private String number;//学号
private String mail;//邮箱
private String xueyuan;//学院
private String xi;//
private String banji;//班级
private String nian;//
private String shengyuandi;//生源地
private String beizhu;//备注

public String getBeizhu() {
    return beizhu;
}
public void setBeizhu(String beizhu) {
    this.beizhu = beizhu;
}
public String getShengyuandi() {
    return shengyuandi;
}
public void setShengyuandi(String shengyuandi) {
    this.shengyuandi = shengyuandi;
}
public String getNian() {
    return nian;
}
public void setNian(String nian) {
    this.nian = nian;
}
public String getBanji() {
    return banji;
}
public void setBanji(String banji) {
    this.banji = banji;
}
public String getXi() {
    return xi;
}
public void setXi(String xi) {
    this.xi = xi;
}
public String getXueyuan() {
    return xueyuan;
}
public void setXueyuan(String xueyuan) {
    this.xueyuan = xueyuan;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
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 getNumber() {
    return number;
}
public void setNumber(String number) {
    this.number = number;
}
public String getMail() {
    return mail;
}
public void setMail(String mail) {
    this.mail = mail;
}
public user(){}
public user(String name, String password) {
    this.name = name;
    this.password = password;
};
public user(String id, String password, String name, String sex, String number, String mail,
            String xueyuan, String xi, String banji, String nian, String shengyuandi, String beizhu) {
    super();
    this.id = id;
    this.password = password;
    this.name = name;
    this.sex = sex;
    this.number = number;
    this.mail = mail;
    this.xueyuan = xueyuan;
    this.xi= xi;
    this.banji = banji;
    this.nian = nian;
    this.shengyuandi = shengyuandi;
    this.beizhu = beizhu;
}
}

二、建立有关数据库连接,导入的类。

package com.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.entry.user;
import com.util.DBUtil;

public class userDao {
    //添加
        public boolean add(user user) {
            String sql = "insert into user2(id,sex,password,number,mail,name,xueyuan,xi,banji,nian,shengyuandi,beizhu)" 
                    + "values('" + user.getId() + "','" + user.getName() + "','" + user.getPassword() + "','" 
                    + user.getSex() + "','" + user.getMail() + "','" + user.getNumber() + "','" 
                    + user.getXueyuan() + "','" + user.getXi() + "','" + user.getBanji() + "','" 
                    + user.getNian() + "','" + user.getShengyuandi() + "','" + user.getBeizhu() + "')'" ;
            //创建数据库链接
            Connection conn = DBUtil.getConn();
            Statement state = null;
            boolean f = false;
            int a = 0;
            
            try {
                state = conn.createStatement();
                state.executeUpdate(sql);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //关闭连接
                DBUtil.close(state, conn);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        
        
         /*
         * 验证名称是否唯一
         * true --- 不唯一
         */
        public boolean id(String id) {
            boolean f = false;
            String sql = "select id from user2 where name = '" + id + "'";
            //c创建数据库连接
            Connection conn = DBUtil.getConn();
            Statement state = null;
            ResultSet rs = null;       
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    f = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(rs, state, conn);
            }
            return f;
        }
}
package com.service;

import com.dao.userDao;
import com.entry.user;

public class userservice {
userDao cDao = new userDao();
    
    /*添加*/
    public boolean add(user user) {
        boolean f = false;
        if(!cDao.id(user.getId())) {
            cDao.add(user);
            f = true;
        }
        return f;
    }
      
}
package com.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 com.entry.user;
import com.service.userservice;

@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    userservice service = new userservice();    
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        if("add".equals(method))
         doGet(req,resp);
    
    }
    
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         request.setCharacterEncoding("utf-8");
            //获取数据
            String id = request.getParameter("id");
            String password = request.getParameter("password");
            String sex = request.getParameter("sex");
            String number = request.getParameter("number");
            String name = request.getParameter("name");
            String mail = request.getParameter("mail");
            String xueyuan = request.getParameter("xueyuan");    
            String xi = request.getParameter("xi");
            String banji = request.getParameter("banji");
            String nian = request.getParameter("nian");
            String shengyuandi = request.getParameter("shengyuandi");
            String beizhu = request.getParameter("beizhu");
            user user = new user(id,password,sex,number,name,mail,xueyuan,xi,banji,nian,shengyuandi,beizhu);
             System.out.println(id);
            //添加后消息显示
            if(service.add(user)) {
                request.setAttribute("message", "添加成功");
                request.getRequestDispatcher("NewFile.jsp").forward(request,response);
            } else {
                request.setAttribute("message", "用户名重复,请重新录入");
                request.getRequestDispatcher("NewFile.jsp").forward(request,response);
            }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);
    }

}
package com.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;
 
/*
 * 数据库连接工具
 */
public class DBUtil {
     
    public static String db_url = "jdbc:mysql://localhost:3306/user?useSSL=false";
    public static String db_user = "root";
    public static String db_pass = "root";
     
    public static Connection getConn () {
        Connection conn = null;
         
        try {
            Class.forName("com.mysql.jdbc.Driver");//加载驱动
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
        } catch (Exception e) {
            e.printStackTrace();
        }
         
        return conn;
    }
     
    /*10关闭连接*/
    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();
            }
        }
    }
 
    public static void main(String[] args) throws SQLException {
        Connection conn = getConn();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql ="select * from user";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();
        if(rs.next()){
            System.out.println("空");
        }else{
            System.out.println("不空");
        }
    }
}

三、建立jsp文件,在lib中导入需要的jdbc。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
<meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
    <div align="center">
        <h6 style="color: black;">注册</h6>
     
        <form name = "form1" action="AddServlet?method=add" method="post" onsubmit="return check_submit()">
    <table>
            <tr>
                <td>登陆账号:</td>
                <td colspan="2"> <input type="text" id="id" name="id"  maxlength="12" onblur="blur_id()" onfocus="focus_id()"/></td>
                <td width="300"><div id="result"></td>
            </tr>
            <tr>
                <td>登陆密码:</td>
                <td colspan="2"> <input type="password" id="password" name="password" onblur="blur_pass()" onfocus="focus_pass()" /></td>
                <td width="300"><div id="result1"></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td colspan="2"><input type="radio" id="sex" name="sex" value="男"><input type="radio" id="sex"name="sex" value="女">女</td>
            </tr>
            <tr>
                <td>学号:</td>
                <td colspan="2"><input type="number" id="number" name="number" onblur="blur_num()" onfocus="focus_num()" /></td>
                 <td width="300"><div id="result2"></td>
            </tr>
            <tr>
                <td>姓名:</td>
                <td colspan="2"><input type="text" id="name" name="name" onblur="blur_name()" onfocus="focus_name()" /></td>
                <td width="300"><div id="result4"></td>
            </tr>
            <tr>
                <td>电子邮箱:</td>
                <td colspan="2"><input type="email" id="mail" name="mail" onblur="blur_mail()" onfocus="focus_mail()" /></td>
                <td width="300"><div id="result3"></td>
            </tr>
            <tr>
                <td>所在学院:</td>
                <td colspan="2"><input type="text" id="xueyuan" name="xueyuan" onblur="blur_xueyuan()" onfocus="focus_xueyuan()" /></td>
                <td width="300"><div id="result5"></td>
            </tr>
            <tr>
                <td>所在系:</td>
                <td colspan="2"><input type="text" id="xi" name="xi" onblur="blur_xi()" onfocus="focus_xi()" /></td>
                <td width="300"><div id="result6"></td>
            </tr>
            <tr>
                <td>所在班级:</td>
                <td colspan="2"><input type="text" id="banji" name="banji"  onblur="blur_banji()" onfocus="focus_banji()"/></td>
                <td width="300"><div id="result7"></td>
            </tr>
            <tr>
                <td>入学年份(届):</td>
                <td colspan="2">
                <select name="nian" id="nian">
                <option value="2019" >2019</option>
                <option value="2018" >2018</option>
                <option value="2017" >2017</option>
                <option value="2016" >2016</option>
                <option value="2015" >2015</option>
                <option value="2014" >2014</option>
                </select>届</td>
            </tr>
            <tr>
                <td>生源地:</td>
                <td colspan="2"><input type="text" id="shengyuandi" name="shengyuandi"  onblur="blur_shengyuandi()" onfocus="focus_shengyuandi()"/></td>
                <td width="300"><div id="result8"></td>
            </tr>
            <tr>
                <td>备注:</td>
                <td colspan="2"><input type="text" id="beizhu" name="beizhu" onblur="blur_beizhu()" onfocus="focus_beizhu()" /></td>
                <td width="300"><div id="result9"></td>
            </tr>
            <tr>
            <td colspan="3"> &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;&nbsp;&nbsp;<button type="submit" class="b">添加</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             </td>
            
            </tr>
    </table>
    </form>
    </div>
    <script type="text/javascript">
/*
    表单验证
*/
var flag = false;   // flag 如果为true(即用户名合法)就允许表单提交, 如果为false(即用户名不合法)阻止提交
function focus_pass()
{
    var nameObj = document.getElementById("result1");
    nameObj.innerHTML = "由八位以上字符和数字组成";
    nameObj.style.color="#999";
    }
function blur_pass()
{
    var nameObj = document.getElementById("result1");
    // 判断用户名是否合法
    var str2 = check_user_pass(document.form1.password.value);
    nameObj.style.color="red";
    if ("密码合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}

function check_user_pass(str)
{  var str2 = "密码合法";
if ("" == str)
{
    str2 = "密码为空";
    return str2;
}
else if (str.length<8)
{
    str2 = "密码应是八位以上组成";
    return str2;
}
else if (!check_word(str))
{
    str2 = "未含有英文字符";
    return str2;
}

return str2;
    
    
    }

function focus_num()
{
    var nameObj = document.getElementById("result2");
    nameObj.innerHTML = "由八位数字组成,由“2018”开头";
    nameObj.style.color="#999";
}
function blur_num()
{
    var nameObj = document.getElementById("result2");
    // 判断用户名是否合法
    var str2 = check_user_number(document.form1.number.value);
    nameObj.style.color="red";
    if ("学号合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_number(str)
{
    var str2 = "学号合法";
    if ("" == str)
    {
        str2 = "学号为空";
        return str2;
    }
    else if (str.length!=8)
    {
        str2 = "学号应是八位组成";
        return str2;
    }
    else if(!check_firstnum(str))
    {
        str2 = "必须以“2018”开头";
        return str2;
    }
    return str2;
}
    
    
    
function focus_beizhu()
{
    var nameObj = document.getElementById("result9");
    nameObj.style.color="#999";
}
function blur_beizhu()
{
    var nameObj = document.getElementById("result9");
    // 判断用户名是否合法
    var str2 = check_user_beizhu(document.form1.beizhu.value);
    nameObj.style.color="red";
    if ("备注合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_beizhu(str)
{
    var str2 = "备注合法";
    if ("" == str)
    {
        str2 = "备注为空";
        return str2;
    }
    return str2;
}





function focus_shengyuandi()
{
    var nameObj = document.getElementById("result8");
    nameObj.style.color="#999";
}
function blur_shengyuandi()
{
    var nameObj = document.getElementById("result8");
    // 判断用户名是否合法
    var str2 = check_user_shengyuandi(document.form1.shengyuandi.value);
    nameObj.style.color="red";
    if ("生源地合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_shengyuandi(str)
{
    var str2 = "生源地合法";
    if ("" == str)
    {
        str2 = "生源地为空";
        return str2;
    }
    return str2;
}





function focus_banji()
{
    var nameObj = document.getElementById("result7");
    nameObj.style.color="#999";
}
function blur_banji()
{
    var nameObj = document.getElementById("result7");
    // 判断用户名是否合法
    var str2 = check_user_banji(document.form1.banji.value);
    nameObj.style.color="red";
    if ("班级合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_banji(str)
{
    var str2 = "班级合法";
    if ("" == str)
    {
        str2 = "班级为空";
        return str2;
    }
    return str2;
}



function focus_xi()
{
    var nameObj = document.getElementById("result6");
    nameObj.style.color="#999";
}
function blur_xi()
{
    var nameObj = document.getElementById("result6");
    // 判断用户名是否合法
    var str2 = check_user_xi(document.form1.xi.value);
    nameObj.style.color="red";
    if ("系名合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_xi(str)
{
    var str2 = "系名合法";
    if ("" == str)
    {
        str2 = "系名为空";
        return str2;
    }
    return str2;
}





function focus_xueyuan()
{
    var nameObj = document.getElementById("result5");
    nameObj.style.color="#999";
}
function blur_xueyuan()
{
    var nameObj = document.getElementById("result5");
    // 判断用户名是否合法
    var str2 = check_user_xueyuan(document.form1.xueyuan.value);
    nameObj.style.color="red";
    if ("学院名合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_xueyuan(str)
{
    var str2 = "学院名合法";
    if ("" == str)
    {
        str2 = "学院名为空";
        return str2;
    }
    return str2;
}



function focus_name()
{
    var nameObj = document.getElementById("result4");
    nameObj.style.color="#999";
}
function blur_name()
{
    var nameObj = document.getElementById("result4");
    // 判断用户名是否合法
    var str2 = check_user_name(document.form1.name.value);
    nameObj.style.color="red";
    if ("姓名合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_name(str)
{
    var str2 = "姓名合法";
    if ("" == str)
    {
        str2 = "姓名为空";
        return str2;
    }
    return str2;
}




function focus_mail()
{
    var nameObj = document.getElementById("result3");
    nameObj.innerHTML = "格式要求:xxxx@xxxx.xxxx";
    nameObj.style.color="#999";
}
function blur_mail()
{
    var nameObj = document.getElementById("result3");
    // 判断用户名是否合法
    var str2 = check_user_mail(document.form1.mail.value);
    nameObj.style.color="red";
    if ("邮箱合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}
function check_user_mail(str)
{
    var str2 = "邮箱合法";
    var regex = /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
    if ("" == str)
    {
        str2 = "邮箱为空";
        return str2;
    }
    else if(!regex.test(str))
    {
        str2 = "邮箱格式错误";
        return str2;
    }
    return str2;
}    
    
    
function focus_id()
{
    var nameObj = document.getElementById("result");
    nameObj.innerHTML = "由六到十二英文字符和数字组成";
    nameObj.style.color="#999";
    }
function blur_id()
{
    var nameObj = document.getElementById("result");
    // 判断用户名是否合法
    var str2 = check_user_id(document.form1.id.value);
    nameObj.style.color="red";
    if ("账号合法" ==  str2)
    {
        flag = true;
        nameObj.innerHTML = str2;
    }
    else
    {
        nameObj.innerHTML = str2;
    }
}

function check_user_id(str)
{
    var str2 = "账号合法";
    if ("" == str)
    {
        str2 = "账号为空";
        return str2;
    }
    else if ((str.length<=4)||(str.length>=12))
    {
        str2 = "账号应是六到十二位组成";
        return str2;
    }
    else if (!check_word(str))
    {
        str2 = "未含有英文字符";
        return str2;
    }
    else if(!check_firstword(str))
    {
        str2 = "必须以英文字母开头";
        return str2;
    }
    return str2;
}

function check_firstnum(str)
{
    var arr = ["2","0","1","8"];
    if((arr[0] == str.charAt(0))&&
       (arr[1] == str.charAt(1))&&
       (arr[2] == str.charAt(2))&&
       (arr[3] == str.charAt(3)))
        {
            return true;
        }
    else
        {
            return false;
        }
    }
    
    
function check_firstword(str)
{   var arr = ["a", "b", "c", "d", "e", "f", "g", "h","i","j", "k", "l", "m", "n", "o", "p", "q","r", "s", "t", "u", "v", "w", "x", "y","z","A", "B", "C", "D", "E", "F", "G", "H","I","J", "K", "L", "M", "N", "O", "P", "Q","R","S", "T", "U", "V", "W", "X", "Y", "Z"];
for (var i = 0; i < arr.length; i++)
{
        if (arr[i] == str.charAt(0))
        {
            return true;
        }
}   
return false;
    }


function check_word(str)
{   var arr = ["a", "b", "c", "d", "e", "f", "g", "h","i","j", "k", "l", "m", "n", "o", "p", "q","r", "s", "t", "u", "v", "w", "x", "y","z","A", "B", "C", "D", "E", "F", "G", "H","I","J", "K", "L", "M", "N", "O", "P", "Q","R","S", "T", "U", "V", "W", "X", "Y", "Z"];
for (var i = 0; i < arr.length; i++)
{
    for (var j = 0; j < str.length; j++)
    {
        if (arr[i] == str.charAt(j))
        {
            return true;
        }
    }
}   
return false;
    }

// 验证用户名是否含有特殊字符
function check_other_char(str)
{
    var arr = ["&", "\", "/", "*", ">", "<", "@", "!"];
    for (var i = 0; i < arr.length; i++)
    {
        for (var j = 0; j < str.length; j++)
        {
            if (arr[i] == str.charAt(j))
            {
                return true;
            }
        }
    }   
    return false;
}
// 根据验证结果确认是否提交
function check_submit()
{
    if (flag == false)
    {
        return false;
    }
    return true;
}
</script>
</head>
</body>
</html>

四、在Navicat中建立相应的表。

完成。

原文地址:https://www.cnblogs.com/zql-42/p/11716819.html