讲一下思路,主界面的设计就是用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. React+wangeditor+node富文本处理带图片上传

    最近有个需求出现在我的视野中,因为我的另外的博客需要上传文章,但是我不想每次都在我的数据库中慢慢的修改格式,所以我另做了一个后台去编辑文本后发送给服务器,那么这里就涉及到两点,一个是富文本,一个是需要 ...

  2. sqlserver install on linux chapter two

    The previous chapter is tell us how to install sqlerver on linuix Today, we will see how to make it ...

  3. 【译文连载】 理解Istio服务网格(第二章 安装)

    全书目录 第一章 概述 本文目录 1.命令行工具安装 2. Kubernetes/OpenShift安装 3. Istio安装 4.示例Java微服务安装 4.1 源码概览 4.2 编译和部署cust ...

  4. python笔记21(面向对象课程三)

    今日内容 嵌套 特殊方法:__init__ type/isinstance/issubclass/super 异常处理 内容回顾 def login(): pass login() class Acc ...

  5. python练习——第4题

    原GitHub地址:https://github.com/Yixiaohan/show-me-the-code 题目:任一个英文的纯文本文件,统计其中的单词出现的个数. 代码: import coll ...

  6. dubbo-admin dubbo-monitor 安装

    dubbo-admin: 因为我们不能直观的看到dubbo和zk上到底有什么服务(提供者),所以我们需要一个可视化工具来方便我们管理每一个服务和每一个节点.dubbo-admin 就是dubbo的管理 ...

  7. Mysql 导入导出备份

    恢复MySQL服务器上面的txt格式文件(需要FILE权限,各数据值之间用"制表符"分隔)   1.导入数据库服务器上的txt文件 mysql>load data infil ...

  8. SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

    源码地址:GitHub·点这里||GitEE·点这里 一.阿里微服务简介 1.基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开 ...

  9. PDO连接不上又不报错的问题

    前提:连接PDO需要在将php.ini配置文件的 ;extension=pdo_mysql,去掉前面的;号. 今天闲来无事就重新弄了一下PDO,结果怎么都连不上.而且没有给出错误的信息.代码如下: & ...

  10. 代理-cglib代理

    jdk的动态代理只可以为接口去完成操作,而cglib它可以为没有实现接口的类去做代理,也可以为实现接口的类去做代理. IDB package com.bjpowernode.proxy; /** * ...