讲一下思路,主界面的设计就是用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 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; } String reg = "\\w+@(\\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;

运行效果:

提示信息:

提交成功界面:

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

  1. 学习完vue指令 做的一个学生信息录入系统

    一.demo实现原理 输入完个人信息后  点击创建用户  数据就会显示在下面的表格中 用到了vue中的数据双向绑定 v-model v-for 还要js正则 数组的unshift splice 等方法 ...

  2. Vue实现一个学生信息录入系统,实现录入和删除

    效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

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

    简单的学生信息处理程序实现 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

  4. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  5. C++ 简单的学生信息管理系统

    // // main.cpp // 2013-7-17作业1 // // Created by 丁小未 on 13-7-17. // Copyright (c) 2013年 dingxiaowei. ...

  6. PHP实现简单的学生信息管理系统(web版)

    (∩_∩) 1.概述 学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合.最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScr ...

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

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...

  8. C:简单的学生信息处理程序实现

    描述 在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的. (注:评测系统无法自动判断变量是否私有.我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否 ...

  9. javeweb_学生信息添加系统

    在text.jsp中画出界面,以及设置提交选项的限制 <%@ page language="java" contentType="text/html; charse ...

随机推荐

  1. 031.Python类中的方法

    一 类中的方法 1.1 介绍 (1) 普通方法(2) 绑定方法 绑定到对象 (自动传递对象参数) 绑定到类 (自动传递类参数) (3) 静态方法 (无论类还是对象,都可以调用) class Plane ...

  2. javascript检测客户端环境是否是pc端

    //isPC(): 检测客户端环境是否是pc端 function isPC(){ let userAgent = navigator.userAgent; let agents = ["An ...

  3. qt creator源码全方面分析(2-8)

    目录 Editing MIME Types Editing MIME Types Qt Creator使用文件的MIME类型,来确定用于打开文件的模式和编辑器. 例如,Qt Creator在C++编辑 ...

  4. 票据传递之MS14-068

    MS14-068是密钥分发中心(KDC)服务中的Windows漏洞.它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构).该漏洞位于kdcsvc.dll ...

  5. PHP+mysql数据库简单分页实例-sql分页

    前几天冷月写了一篇博文<php基础编程-php连接mysql数据库-mysqli的简单使用>,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例 首先 ...

  6. Kali桥接模式下配置ip

    以管理员身份运行虚拟机 打开控制面板-->网络和Internet-->更改适配器 再在虚拟机处桥接到这个WLAN2 点击 编辑-->编辑虚拟网卡 没有网卡就点上图的添加网络作为桥接网 ...

  7. golang-练习ATM

    package main import "fmt" var ( action int loop bool = true save_money int money int draw_ ...

  8. ORB-SLAM2 论文&代码学习 —— 单目初始化

    转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12358458.html 本文要点: ORB-SLAM2 单目初始化 ...

  9. 本地与github建立连接,本地代码上传到github

    1,已有github账号 2,本地已经安装git 3,本地创建ssh-key 在git bash中输入后直接回车. $ ssh-keygen -t rsa -C "your_email@yo ...

  10. 07.JS对象-2

    前言: 学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构(09)函数(10)对象1 ...