javaweb简单的学生信息录入系统

讲一下思路,主界面的设计就是用html表单元素,百度查找各个元素的用法,按照自己的想法摆放即可,表单提交后会把数据交给serverlet去处理,在那里定义几个字符串变量来储存获取到的数据,然后按照项目要求对数据格式进行判断(如学号长度是否为8位),对有错误的格式进行相应报错,若数据无误则提交数据库并跳转至success页面。格式判断应该是这里面对算法要求最多的,但也很简单,长度判断直接调用String类型的length()方法返回长度即可,而邮箱格式或“首字符必须为字母”这样的判断最好用正则表达式来写,如果不会写的话直接百度现成的方法就好。

下面是代码:

主界面

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){

    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
<form action="AdminServlet" method="post" name="form1" id="form1">
    <div id="container">
        <div class="header">
            <p>学生注册</p>
        </div>
        <div class="form-body">

                    <label for="">登录账号:</label>
                   <input type="text" class="form-input" name="user" value="" placeholder="6-12位">

                <div class="form-group">
                    <label for="">登录密码:&nbsp;</label>
                    <input type="password" class="form-input" value="" name="password" >
                </div>

                 <div class="form-group">
                    <label for="">性&nbsp;&nbsp;&nbsp;别:</label>
                   <select name="sex">
                        <option value="男">男</option>
                        <option value="女">女</option>
                    </select>
                </div>

                <div class="form-group">
                    <label for="">姓&nbsp;&nbsp;&nbsp;名:&nbsp;</label>
                    <input type="text" class="form-input" name="name" size="20" maxlength="15" value="" placeholder="请在这里输入用户名">
                </div>

                                <div class="form-group">
                    <label for="">学&nbsp;&nbsp;&nbsp;号:&nbsp;</label>
                    <input type="text" class="form-input" name="num" value="" placeholder="8位">
                </div>

                                <div class="form-group">
                    <label for="">电子邮箱:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="email">
                </div>
                 <div class="form-group">
                    <label for="">所在学院:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="yuan">
                </div>
                 <div class="form-group">
                    <label for="">所在系:&nbsp;&nbsp;&nbsp;</label>
                    <input type="text" class="form-input" value="" name="xi">
                </div>

                 <div class="form-group">
                    <label for="">所在班级:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="clas">
                </div>
                  <div class="form-group">
                    <label for="">入学年份(届):</label>
                    <select name="year">
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                        <option value="2001">2001</option>
                        <option value="2002">2002</option>
                        <option value="2003">2003</option>
                        <option value="2004">2004</option>
                        <option value="2005">2005</option>
                        <option value="2006">2006</option>
                        <option value="2007">2007</option>
                        <option value="2008">2008</option>
                        <option value="2009">2009</option>
                        <option value="2010">2010</option>
                        <option value="2011">2011</option>
                        <option value="2012">2012</option>
                        <option value="2013">2013</option>
                        <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>届
                </div>
                <div class="form-group">
                    <label for="">生源地:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="address">
                </div>

                备注:<div class="form-group">

                    <textarea rows="10" name="bei" cols="30">无</textarea>
                </div>
            <div class="btn">
                <input type="submit" value="添加" class="form-btn form-btn-primary">
                <input type="reset" value="重置" class="form-btn form-btn-primary">
            </div>
        </div>
        <div class="footer">
        </div>
    </div>
</form>
</body>
<script>
    obj = document.getElementById(‘container‘);
    cWidth = window.innerWidth;
    cHeight = window.innerHeight;
    obj.style.marginLeft = (cWidth - 380)/2+"px";
    obj.style.marginTop = (cHeight - 300)/2+"px";
    window.onresize=function(){
        cWidth = window.innerWidth;
        cHeight = window.innerHeight;
        obj.style.marginLeft = (cWidth - 380)/2+"px";
        obj.style.marginTop = (cHeight - 300)/2+"px";
    }
</script>
</html>

录入成功后界面

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){

    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
<h1>欢迎使用本系统</h1>
</body>
</html>

后台

serverlet

package a;

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;

/**
 * Servlet implementation class a
 */
@WebServlet("/a")
public class a extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public a() {
        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);
    }

}
package a;

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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 dao.UserDao;

/**
 * Servlet implementation class AdminServlet
 */
@WebServlet("/AdminServlet")
public class Adminservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Adminservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String user = request.getParameter("user");
        String password=request.getParameter("password");
        String name=request.getParameter("name");
        String sex=request.getParameter("sex");
        String address=request.getParameter("address");
        String num=request.getParameter("num");
        String email=request.getParameter("email");
        String xi=request.getParameter("xi");
        String yuan=request.getParameter("yuan");
        String clas=request.getParameter("clas");
        String bei=request.getParameter("bei");
        String year=request.getParameter("year");
        int x=0;
        int a=0;
        if(user.equals("")) {
            request.setAttribute("message", "账号不能为空!");
            request.getRequestDispatcher("index.jsp").forward(request,response);
        }
        if(!num.equals("")) {
         a=num.length();
        String ye=num.substring(0, 4);

        if(!ye.equals("2018"))x=4;}

        int ps=password.length();
        if(ps<8)x=2;

        int l=user.length();
        if(l<6||l>12)x=3;
        String s=user;
        Pattern pa = Pattern.compile("[a-zA-Z].*");
           Matcher isNum = pa.matcher(s.charAt(0)+"");
           if (!isNum.matches()) {
               x=1;
               pa = Pattern.compile(" ^[0-9a-zA-Z_]{1,}$");
           }

        String reg = "\\[email protected](\\w+\\.){1,3}\\w+";
        Pattern pattern = Pattern.compile(reg);
        boolean flag = false;
        if (email != null) {
            Matcher matcher = pattern.matcher(email);
            flag = matcher.matches();
        }

        boolean n = false;
        if(x==0)
        {
        if(a==8)
        {
            if(flag==true)
            {
                try {
                    /*request.setAttribute("message", username+ userpassword+ name+sex+address+ phone+ email);*/

                    n=UserDao.addPerson(user, password, name, sex, address, num, email, clas, xi, bei, yuan, year);

                } catch (Exception e) {;
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
                if(n!=true)
                {
                    request.setAttribute("message", "注册成功!!");
                    request.getRequestDispatcher("success.jsp").forward(request,response);
                }else {
                    request.setAttribute("message", "注册失败");
                    request.getRequestDispatcher("index.jsp").forward(request,response);
                }
            }
            else
            {
                request.setAttribute("message", "邮箱格式错误");
                request.getRequestDispatcher("index.jsp").forward(request,response);
            }
        }
        else
        {
            request.setAttribute("message", "学号不为8位");
            request.getRequestDispatcher("index.jsp").forward(request,response);
        }}
        else {
            if(x==1) {
                request.setAttribute("message", "账号开头必须为字母");
                request.getRequestDispatcher("index.jsp").forward(request,response);
            }
if(x==2) {
    request.setAttribute("message", "密码长度应在8位以上");
    request.getRequestDispatcher("index.jsp").forward(request,response);
            }
if(x==3) {
    request.setAttribute("message", "账号长度应为6到12");
    request.getRequestDispatcher("index.jsp").forward(request,response);
}
if(x==4) {
    request.setAttribute("message", "学号开头应为2018");
    request.getRequestDispatcher("index.jsp").forward(request,response);
}
        }
    }

    /**
     * @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);
    }

}

数据库的连接DBUL类

package DBU;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
    //这里可以设置数据库名称
    private final static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=777";
    private static final String USER="sa";
    private static final String PASSWORD="1999";

    private static Connection conn=null;
    //静态代码块(将加载驱动、连接数据库放入静态块中)
    static{
        try {
            //1.加载驱动程序
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //2.获得数据库的连接
            conn=(Connection)DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //对外提供一个方法来获取数据库连接
    public static Connection getConnection(){
        return conn;
    }
}

Dao

package 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 DBU.DBUtil;

public class UserDao {

    public static boolean addPerson(String user,String password,String name,String sex,String address,String num,String email,String clas ,String xi,String bei,String yuan,String year)throws SQLException{
        //首先拿到数据库的连接
        Connection conn=DBUtil.getConnection();
        String sql= "insert into Table_7 values(?,?,?,?,?,?,?,?,?,?,?,?)";//参数用?表示,相当于占位符;

        //预编译sql语句
        PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); 

        //先对应SQL语句,给SQL语句传递参数
        pst.setString(1, user);
        pst.setString(2, password);
        pst.setString(3, sex);
        pst.setString(4, name);
        pst.setString(5, num);
        pst.setString(6, email);
        pst.setString(7,yuan);
        pst.setString(8, xi);
        pst.setString(9, clas);
        pst.setString(10, year);
        pst.setString(11,address);
        pst.setString(12, bei);
        //执行SQL语句
        boolean a=pst.execute();
        /**
         * prepareStatement这个方法会将SQL语句加载到驱动程序conn集成程序中,但是并不直接执行
         * 而是当它调用execute()方法的时候才真正执行;
         *
         * 上面SQL中的参数用?表示,相当于占位符,然后在对参数进行赋值。
         * 当真正执行时,这些参数会加载在SQL语句中,把SQL语句拼接完整才去执行。
         * 这样就会减少对数据库的操作
         */
        return a;
    

运行效果:

提示信息:

提交成功界面:

原文地址:https://www.cnblogs.com/liuleliu/p/11715719.html

时间: 2024-07-31 14:16:25

javaweb简单的学生信息录入系统的相关文章

学生信息录入系统

目录 学生信息存储系统的设计与实现 1 一.摘要: 1 二. 需求分析 2 2.1可行性分析 2 2.1.1 2 2.1.2 2 2.2 需求分析 2 2.2.1 2 2.2.2 2 三. 总体设计 2 3.1系统功能结构图 3 3.2UI设计图 4 3.3数据库存储 5 3.3.1添加信息(学生信息和账号密码) 5 3.3.2删除信息 6 3.3.3修改信息 6 四. 系统测试 7 4.1登录注册(可存储账号密码) 7 4.2添加信息 8 4.3删除信息 9 4.4修改信息 9 4.5查询信息

作业5——需求分析(学生成绩录入系统)

[必做 1] 列出该学生成绩录入系统的利益相关者(stakeholder) 学生成绩录入系统的利益相关者(stakeholder):  1.用户:教师  2.顾客:教务管理人员 .学生   3.市场分析师:评估该系统的价值  3. 监管机构:学校 .教育局  4.软件工程师:学生成绩录入系统软件系统开发团队 [必做 2] 如果让你改进已有的成绩录入系统,请利用 NABCD 分析框架,开展竞争需求分析(表格形式) 竞争需求分析:   内容 N(Need需求) 1.验证码要不区分大小写输入 2.设置

编程作业—C++初探 简单的学生信息处理程序实现

简单的学生信息处理程序实现 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的. (注:评测系统无法自动判断变量是否私有.我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否则可能会影响作业成绩.) 输入 姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第

linux下c/c++实例之十五简单的学生信息管理系统

一.简介 大学期间用vc++开发的简单的学生信息管理系统,主要有添加学生信息.删除学生信息.修改学生信息.查询学生信息.显示学生信息.综合统计(各课程平均成绩和合格率).总分排序和退出系统.设计: 二.详解 1.代码 (1)main.cpp #include<iostream> #include<fstream> #include<iomanip> //使用setw()函数 #include<windows.h> //使用system()函数 #includ

利用链表实现简单的学生信息管理系统

#include <stdio.h>#include <stdlib.h>#include <string.h> typedef struct student{ int id; char name[20]; int age; char sex; char birthday[20]; char address[20]; char phone[15]; char email[30]; struct student *next;}student; student *head

简单的学生信息处理程序实现

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的. (注:评测系统无法自动判断变量是否私有.我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否则可能会影响作业成绩.) 输入 姓名,年龄,学号,第一学年平均成绩,第二学年平均成绩,第三学年平均成绩,第四学年平均成绩. 其中姓名.

练习--学生信息录入

机试题目:1.输入3个学生的信息:学号,姓名,五门课成绩(语文,数学,英语,化学,物理),要求输出学生成绩的最高分最低分总分和平均分,若有不及格的成绩,输出其科目及成绩. 2.编写程序实现某大奖赛现场打分.共有10位评委打分,最高分为100分,去掉一个最高分和一个最低分后的平均分是最终得分.请用户输入评委姓名和该评委给出的分数,然后提示哪个评委的分数最高,最高分是多少:哪个评委的分数最低,最低分是多少:最后去掉最高分和最低分计算最终平均得分.3.按如下要求编程: 一.语言和环境A.实现技术:C#

使用python实现一个简单的学生信息管理系统

最近公司搬办公室,杂七杂八的事情比较多,又碰上业务要上线了...很多事情堆到一起来做,导致最近没什么时间学习,写博客.前两天胜利日放假,把以前用java写的学生信息管理系统用python重新写了一遍,以便于帮助python的学习. 好了,废话不多说,首先进行需求分析,下面是我根据需求画的系统结构图: 纯手工制图.....画的不好敬请谅解.从上图来看,整个系统分为main,add,delete,change,select,sort,io,print共八个模块,实现了对学生信息的增删改查排的功能,将

程序阅读:简单C++学生信息管理系统

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现构造函数.友元函数.运算符重载.静态数成员语法现象出现的位置.细致体会其使用方法,在以后的设计中可以灵活应用有关方法和技巧 #include <iostream> #include <string.h> using namespace std; #define MAX 100 clas