zoukankan      html  css  js  c++  java
  • 添加学生信息系统

    一、题目要求

    二、完成页面

    三、源代码

      代码由四个文件组成,其中一个.jsp文件,三个.java文件。

    1、jsp文件代码

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
    <% 
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    %>
    <%
    String path = request.getContextPath(); //相对Path设置
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
    %>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>用户注册</title>
            <style>
                a{
                    text-decoration: none;
                }
            </style>
            <script type="text/javascript">
                function check() {
                    var user = document.getElementById("user").value;
                    var password = document.getElementById("password").value;
                    var sex = document.getElementById("sex").value;
                    var name = document.getElementById("name").value;
                    var xuehao = document.getElementById("xuehao").value;
                    var mail = document.getElementById("mail").value;
                    var school = document.getElementById("school").value;
                    var xi = document.getElementById("xi").value;
                    var banji = document.getElementById("banji").value;
                    var nianfen = document.getElementById("nianfen").value;
                    var place = document.getElementById("place").value;
                    var beizhu = document.getElementById("beizhu").value;
                    
                    var res=/^[0-9a-zA-Z]*$/; //必须是数字和英文组合
                    var myPattern = new RegExp("^[a-zA-Z]");//以英文字母开头
                    var userlength=document.getElementById("user").value.length;
                    if(!((res.test(user))&&(myPattern.test(user))&&userlength>5&&userlength<=12)) 
                        {
                        alert('用户名必须为字母数字组成且必须为6为组成首字母大写');
                        document.getElementById("user").focus();
                        return false;
                        }
                    if((res.test(password)&&password.length<8)) 
                    {
                        alert('由八位英文和数字组成');
                        document.getElementById("password").focus();
                        return false;
                    }
                    if(sex=="")
                        {
                        alert('性别不能为空!');
                        document.getElementById("sex").focus();
                        return false;
                        }
                    
                    if((xuehao[0]!=2||xuehao[1]!=0||xuehao[2]!=1||xuehao[3]!=8)||xuehao.length!=8){
                        alert("学号格式不正确");
                        document.getElementById("xuehao").focus();
                        return false;
                    }
                    
                    var kao=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
                    if(!(kao.test(mail)))
                    {alert("邮箱格式不正确");
                    document.getElementById("mail").focus();
                    return false;}
                }
            </script>
        </head>
        <body>
            <table border="0px" cellspacing="0px" cellpadding="0px" align="center" width="95%" height="100%">
                <!-- 网站头部 -->
                <tr>
                    <td>
                        <!-- 一个一行三列的表格 -->
                        <table width="100%" height="50px" cellpadding="0px" cellspacing="0px" border="0px" align="center">
                            <tr height="50px">
                                <td width="33.3%">
                                    <a href="https://user.qzone.qq.com/794133319?ADUIN=794133319&ADSESSION=1569985311&ADTAG=CLIENT.QQ.5659_MyTip.0&ADPUBNO=26941&source=namecardhoverstar"><img src="img/header/webheader.png" height="50px"></a>
                                </td>
                                <td width="33.3%">
                                    <img src="img/header/header.png" height="47px" >
                                </td>
                                <td width="33.3%">
                                    <a href="#">登陆</a>&nbsp;&nbsp;
                                    <a href="#">注册</a>&nbsp;&nbsp;
                                    <a href="#">购物车</a>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
                <!-- 导航栏 -->
                <tr height="50px" bgcolor="black">
                    <td>
                        &nbsp;&nbsp;&nbsp;&nbsp;
                        <a href="index.html"><font color="whitesmoke" size="4">首页</font></a> &nbsp;&nbsp;&nbsp;&nbsp;
                        <a href="#"><font color="whitesmoke" size="3">手机数码</font></a>&nbsp;&nbsp;&nbsp;&nbsp;
                        <a href="#"><font color="whitesmoke" size="3">电脑办公</font></a>&nbsp;&nbsp;&nbsp;&nbsp;
                        <a href="#"><font color="whitesmoke" size="3">鞋靴箱包</font></a>&nbsp;&nbsp;&nbsp;&nbsp;
                        <a href="#"><font color="whitesmoke" size="3">生活电器</font></a>
                    </td>
                </tr>
                <!-- 注册表单 -->
                <tr height="700px">
                    <td background="img/hot/regist_bg.jpg">
                        <!-- 嵌套一个十行两列的表格 -->
                        <form action="ZhuceServlet?method=add" method="post" onsubmit="return check()">
                            <table border="0px" cellspacing="0px" cellpadding="0px" align="center" bgcolor="white" width="750px" height="500px">
                                    <tr align="center"> 
                                        <td>
                                        登陆账号: <input type="text" name="user" required="required" id="user"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        登陆密码: <input type="password" name="password" required="required" id="password"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        &nbsp;&nbsp;&nbsp;&nbsp;性别:
                                        <select name="sex" id="sex">
                                            <option value="">--请选择--</option>
                                            <option value="男"></option>
                                            <option value="女"></option>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        &nbsp;&nbsp;&nbsp;&nbsp;姓名: <input type="text" name="name" required="required" id="name"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        &nbsp;&nbsp;&nbsp;&nbsp;学号: <input type="text" name="xuehao" required="required" id="xuehao"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        电子邮件: <input type="text" name="mail" id="mail"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        所在学校: <input type="text" name="school" id="school"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        &nbsp;所在系: <input type="text" name="xi" id="xi"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        所在班级: <input type="text" name="banji" id="banji"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        入学年份(届):
                                        <select name="nianfen" id="nianfen">
                                            <option value="">--请选择--</option>
                                            <option value="1999">1999</option>
                                            <option value="1997">1997</option>
                                            <option value="1996">1996</option>
                                            <option value="1995">1995</option>
                                        </select></td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        生源地: <input type="text" name="place" id="place"/>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        备注: <textarea rows="3" name="beizhu" id="beizhu"></textarea>
                                        </td>
                                    </tr>
                                    <tr align="center"> 
                                        <td>
                                        <input type="submit" value="添加" />
                                        </td>
                                    </tr>
                                </table>
                                </form>
                    </td>
                </tr>
                <!-- 广告 -->
                <tr>
                    <td>
                        <img src="img/ad/footer.jpg" width="100%">
                    </td>
                </tr>
                <!-- 关于我们 -->
                <tr align="center">
                    <td>
                        <a href="#">关于我们</a> &nbsp;
                        <a href="#">联系我们</a>&nbsp;
                        <a href="#">招贤纳士</a>&nbsp;
                        <a href="#">法律声明</a>&nbsp;
                        <a href="#">友情链接</a>&nbsp;
                        <a href="#">支付方式</a>&nbsp;
                        <a href="#">配送方式</a>&nbsp;
                        <a href="#">服务声明</a>&nbsp;
                        <a href="#">广告声明</a>
                        
                
                    </td>
                </tr>
            </table>
        </body>
    </html>

    2、ZhuceServlet.java 文件

    package RegisterServlet;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import TextLogin.TextLogin;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class ZhuceServlet
     */
    @WebServlet("/ZhuceServlet")
    public class ZhuceServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
               req.setCharacterEncoding("utf-8");
               String method = req.getParameter("method");
               System.out.println(method);
               if ("add".equals(method)) {
                   System.out.println("ok");
                   String user = req.getParameter("user");
                   String password = req.getParameter("password");
                   String sex = req.getParameter("sex");
                   String name = req.getParameter("name");
                   String xuehao = req.getParameter("xuehao");
                   String mail = req.getParameter("mail");
                   String school = req.getParameter("school");
                   String xi = req.getParameter("xi");
                   String banji = req.getParameter("banji");
                   String nianfen = req.getParameter("nianfen");
                   String place = req.getParameter("place");
                   String beizhu = req.getParameter("beizhu");
                   boolean pd=TextLogin.add(user, password, sex, name, xuehao, mail, school, xi, banji, nianfen, place, beizhu);
                   if(pd) {
                       req.setAttribute("message", "注册成功");
                       req.getRequestDispatcher("Register.jsp").forward(req,resp);
                   }else {
                       req.setAttribute("message", "注册失败,请重新注册");
                       req.getRequestDispatcher("Register.jsp").forward(req,resp);
                   }
               }
               
        }
    
        
        
        
        
        
        
        
        
        
        
        
        public ZhuceServlet() {
            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
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
    
        /**
         * @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);
        }
    
    }

    3、TextLogin.java文件

    package TextLogin;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import org.junit.Test;
    
    import UTILS.JDBCUtil;
    
    public class TextLogin {
        
    //    @Test
    //    public void ce() {
    //        
    //        add("2", "1", "1", "1", "1", "1", "1");
    //    }
        
        
        
        public static boolean add(String user,String password,String sex,String name,String xuehao,String mail,String school,String xi,String banji,String nianfen,String place,String beizhu) {
            Connection conn = null;
            PreparedStatement pstmt = null;
            boolean pd = false;
            System.out.println("add run!");
            try {
                //获取连接
                conn = JDBCUtil.getConn();
                //编写语句
                String sql = "insert into ceshi values(?,?,?,?,?,?,?,?,?,?,?,?)";
                //预编译
                pstmt = conn.prepareStatement(sql);
                //设置数据
                pstmt.setString(1, user);
                pstmt.setString(2, password);
                pstmt.setString(3, sex);
                pstmt.setString(4, name);
                pstmt.setString(5, xuehao);
                pstmt.setString(6, mail);
                pstmt.setString(7, school);
                pstmt.setString(8, xi);
                pstmt.setString(9, banji);
                pstmt.setString(10, nianfen);
                pstmt.setString(11, place);
                pstmt.setString(12, beizhu);
                //执行
                int res = pstmt.executeUpdate();
                //判断
                if(res>0) {
                    pd=true;
                }else {
                    pd=false;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                
                JDBCUtil.close(conn,pstmt);
            }
            return pd;
        }
        
    //    public static boolean add(String user,String password,String name,String sex,String place,String phone,String mail) {
    //        boolean pd = false;
    //        Connection conn = null;
    //        Statement stmt = null;
    //        String sql = "insert into register2 values('"+user+"','"+password+"','"+name+"','"+sex+"','"+place+"','"+phone+"','"+mail+"')";
    //        try {
    //            conn = JDBCUtil.getConn();
    //            stmt = conn.createStatement();
    //            stmt.executeUpdate(sql);
    //        } catch (Exception e) {
    //            e.printStackTrace();
    //        }finally {
    //            JDBCUtil.close(conn, stmt);
    //            pd=true;
    //        }
    //        return pd;
    //    }
        
        
        
    }

    4、JDBCUtil.java 文件

    package UTILS;
    
    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 JDBCUtil {
    
        private static String url="jdbc:mysql://localhost:3306/register?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
        private static String user="root";
        private static String password="newpassword";
        
        public static Connection getConn() {
            Connection conn = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                conn = DriverManager.getConnection(url, user, password);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;    
        }
        
        public static void close(Connection conn,Statement stmt,ResultSet rs) {
            if(rs!=null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(stmt!=null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close(Connection conn,PreparedStatement pstmt) {
            if(pstmt!=null) {
                try {
                    pstmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close(Connection conn,Statement stmt) {
            if(stmt!=null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    四、代码分析

    1、Register.jsp

      这是网页的主页面的代码,在画出页面后加入了表单的校验,当数据校验成功后会将表单数据发送到servlet层。

    2、ZhuceServlet.java

      这个文件接收来自jsp页面的数据,然后调用Dao层的函数来进行数据库的写入。

    3、TextLogin.java

      这个文件里存放的是用来写入数据库的代码,在该文件里调用了JDBCUtil类来获取和数据库的连接。

    4、JDBCUtil.java

      这个文件里存放的类是用来注册驱动、获取和数据库的连接以及关闭相应的连接的方法,用来供TextLogin调用。

    五、设计思路

      首先在jsp页面进行表单数据的校验,如果校验不成功则提示错误,然后另用户重新输入数据,如果校验成功,则将表单中的数据发送到servlet层,servlet层接收到数据后开始进行数据的存放,然后调用Dao层的add函数来进行数据库的写入,这时Dao层调用JDBCUtil来注册驱动和获取数据库的连接,然后进行数据的写入,如果写入成功则返回true,写入失败则返回false,servlet层接收到Dao层的返回值后进行不同的处理,如果写入成功则向注册页面发送注册成功的消息,反之则发生注册失败的消息。

  • 相关阅读:
    Access数据库使用的点滴感受
    Java冒泡排序
    C++ 运算符优先级列表
    给你的 Windows7 加装 Telnet
    忘记 Windows 7 登录密码的处理步骤
    素数/质数的判断(C++)
    Oracle 11g R2 ORA12505 错误
    在IAR环境下,lpc2478 用户程序的地址及中断向量设置
    C语言中的 static变量、static函数
    Notepad++插件介绍&下载地址
  • 原文地址:https://www.cnblogs.com/wuren-best/p/11714171.html
Copyright © 2011-2022 走看看