web添加学生信息(首发web)
程序思路,先在JSP上画好页面,然后再创建一Servlet文件用于判断在网页上操作是否正确,还需要与数据库相连接,用DBUtile文件连接数据库,用Dao层来实现数据的增加,用Service来服务于Dao层
其代码如下:
jsp页面代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" import="java.util.*"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>注册</title> </head>
<%
Object message=request.getAttribute("message");
if(!(message==null||message.equals("")))
{
%>
<script type="text/javascript">alert('<%=message%>')</script>
<%
}
%> <body style="background:blue" align="center">
<form action="LoginServlet?method=register" method="post">
<p style="padding-left:400px;">登录账号:<input type="text" name="username" ></p>
<p style="padding-left:400px;">密 码: <input type="password" name="password"></p>
<p style="padding-left:400px;">性 别: <select name=sex>
<option value="男">男</option>
<option value="女">女</option>
</select></p>
<p style="padding-left:400px;">姓 名: <input type="text" name="name" ></p>
<p style="padding-left:400px;">学 号: <input type="text" name="num"></p>
<p style="padding-left:400px;">电子邮件 <input type="text" name="email"></p>
<p style="padding-left:400px;">所在学院 <input type="text" name="xueyuan"></p>
<p style="padding-left:400px;">所在系 <input type="text" name="xi"></p>
<p style="padding-left:400px;">所在班级 <input type="text" name="banji"></p>
<p style="padding-left:400px;">入学年份: <select name=ruxue>
<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></p>
<p style="padding-left:400px;">生源地:<input type="text" name="dizhi">
<p style="padding-left:400px;">备注:<input type="text" name="beizhu">
<p style="padding-left:400px;"><input type="submit" value="注册"></p>
</form>
</body>
</html>
Servletceng代码:
package zzz; import java.io.IOException;
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; /**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
public static boolean isMatchString(String str,String pattern)
{
boolean isMatch = Pattern.matches(pattern, str);
return isMatch;
} private static final long serialVersionUID = 1L;
zhuceService fuwu=new zhuceService();
/**
* @see HttpServlet#HttpServlet()
*/ public LoginServlet() {
super();
// TODO Auto-generated constructor stub
} @Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
ZhuceDao haha=new ZhuceDao();
// TODO 自动生成的方法存根
arg0.setCharacterEncoding("utf-8");
arg1.setCharacterEncoding("utf-8");
//super.service(arg0, arg1); zhucexinxi sta=new zhucexinxi();
String function=arg0.getParameter("method"); if(function.equals("register"))
{
String str;
str=arg0.getParameter("username");
if(str.length()==0||str==null||str.equals(""))
{
arg0.setAttribute("message","账号不能为空");
arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
return;
} if(str.charAt(0)>='a'&&str.charAt(0)<='z'||str.charAt(0)>='A'&&str.charAt(0)<='Z');
else
{
arg0.setAttribute("message","账号第一位需要是字母");
arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
return; } if(str.length()<6||str.length()>12)
{
arg0.setAttribute("message", "账号需是6-12位");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
for(int a=0;a<str.length();a++)
{
if(!(str.charAt(a)>='0'&&str.charAt(a)<='9'||str.charAt(a)>='a'&&str.charAt(a)<='z'||str.charAt(a)>='A'&&str.charAt(a)<='Z'||str.charAt(a)=='_'))
{
arg0.setAttribute("message", "账号只能由字母数字下划线组成");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
}
sta.setYonghuming(str);
str=arg0.getParameter("password");
if(str.length()<8||str==null||str.equals(""))
{
arg0.setAttribute("message", "用户密码需要是8位以上数组字母组成");
arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
return;
}
int flag1=0;
int flag2=0;
for(int b=0;b<str.length();b++)
{
if(str.charAt(b)>='0'&&str.charAt(b)<='9')
{
flag1=1;
}
if(str.charAt(b)>='a'&&str.charAt(b)<='z'||str.charAt(b)>='A'&&str.charAt(b)<='Z')
{
flag2=1;
}
} if(flag1!=1||flag2!=1)
{
arg0.setAttribute("message", "安全程度低,需要由8位以上的数字和字母组成");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
sta.setPassword(str);
str=arg0.getParameter("sex");
sta.setSex(str);
str=arg0.getParameter("name");
if(str.length()==0||str==null)
{
arg0.setAttribute("message", "姓名不能为空");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
sta.setMingzi(str);
str=arg0.getParameter("num");
if(str.length()!=8)
{
arg0.setAttribute("message", "学号是由8位数字组成");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
int flag3=1;
if(str.charAt(0)!='2')flag3=0;
if(str.charAt(1)!='0')flag3=0;
if(str.charAt(2)!='1')flag3=0;
if(str.charAt(3)!='8')flag3=0;
if(flag3==0)
{
arg0.setAttribute("message", "学号输入错误");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
}
sta.setNum(str); str=arg0.getParameter("email");
boolean nani=LoginServlet.isMatchString(str,"([a-zA-Z0-9])+@([a-zA-Z0-9])+\\.([a-zA-Z0-9])+");
if(!nani)
{
arg0.setAttribute("message", "请输入正确格式的邮箱号码");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
return;
} sta.setEmail(str);
str=arg0.getParameter("xueyuan");
sta.setXueyuan(str);
str=arg0.getParameter("xi");
sta.setXi(str);
str=arg0.getParameter("banji");
sta.setBanji(str); str=arg0.getParameter("ruxue");
sta.setRuxue(str);
str=arg0.getParameter("dizhi");
sta.setDizhi(str); str=arg0.getParameter("beizhu");
sta.setBeizhu(str); //判断是否添加数据库成功
if(fuwu.add("tianjiaxuesheng", sta))
{
arg0.setAttribute("message", "注册成功");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
}
else
{
arg0.setAttribute("message", "注册失败");
arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
} }
} /**
* @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 zzz;
public class zhucexinxi {
String yonghuming;
String password;
String sex;
String mingzi;
String num;
String email;
String xueyuan;
String xi;
String banji;
String ruxue;
String dizhi;
String beizhu;
public String getXueyuan() {
return xueyuan;
}
public void setXueyuan(String xueyuan) {
this.xueyuan = xueyuan;
}
public String getYonghuming() {
return yonghuming;
}
public void setYonghuming(String yonghuming) {
this.yonghuming = yonghuming;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMingzi() {
return mingzi;
}
public void setMingzi(String mingzi) {
this.mingzi = mingzi;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getXi() {
return xi;
}
public void setXi(String xi) {
this.xi = xi;
}
public String getBanji() {
return banji;
}
public void setBanji(String banji) {
this.banji = banji;
}
public String getRuxue() {
return ruxue;
}
public void setRuxue(String ruxue) {
this.ruxue = ruxue;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
}
数据连接层:
package zzz; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 数据库连接工具
* @author Hu
*
*/
public class DBUtil { public static String db_url = "jdbc:mysql://localhost:3306/yonghucaozuo?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
public static String db_user = "root";
public static String db_pass = "password"; public static Connection getConn () {
Connection conn = null; try {
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
conn = DriverManager.getConnection(db_url, db_user, db_pass);
} catch (Exception e) {
e.printStackTrace();
} return conn;
} /**
* 关闭连接
* @param state
* @param conn
*/
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 course";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
System.out.println("空");
}else{
System.out.println("不空");
}
}
}
Dao层:
package zzz; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ZhuceDao { public boolean add(String table,zhucexinxi en)
{
boolean c=false;
String sql="insert into "+table+"(username,password,sex,name,num,email,xueyuan,xi,banji,ruxue,dizhi,beizhu) values('"+en.getYonghuming()+"','"+en.getPassword()+"','"+en.getSex()+"','"+en.getMingzi()+"','"+en.getNum()+"','"+en.getEmail()+"','"+en.getXueyuan()+"','"+en.getXi()+"','"+en.getBanji()+"','"+en.getRuxue()+"','"+en.getDizhi()+"','"+en.getBeizhu()+"');";
Connection conn=DBUtil.getConn();
Statement state=null;
try {
state=conn.createStatement();
int num=state.executeUpdate(sql);
if(num!=0)
c=true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return c; } }
服务层:
package zzz;
public class zhuceService {
ZhuceDao str=new ZhuceDao();
public boolean add(String table,zhucexinxi en)
{
return str.add(table, en);
}
}





web添加学生信息(首发web)的更多相关文章
- 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...
- MVC学生管理系统-阶段II(添加学生信息)
项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架,学生列表显示 请看上一篇文章 本文是对阶段 ...
- javaweb之添加学生信息
1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单选框或下拉框 ...
- java7连接数据库 网页 添加学生信息测试
石家庄铁道大学2019年秋季 2018 级课堂测试试卷(六)(10分) 课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟 一. 考试要求: 1登录账号 ...
- 添加学生信息(java wb)
要求: 1.登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头: 2.登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成: 3.性别:要求用单选框或下拉框实 ...
- 添加学生信息(Javaweb)
add.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...
- javaweb添加学生信息
连接数据库已经进行判断 要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分 ...
- 向数据库添加学生信息。存放在REQUEST对象里
代码前几天已经发过了,但是程序一直还没运行出来,今天重新建立了一个数据库,才可以,下面补充上数据截图
- javeweb_学生信息添加系统
在text.jsp中画出界面,以及设置提交选项的限制 <%@ page language="java" contentType="text/html; charse ...
随机推荐
- WijmoJS V2019.0 Update2发布:再度增强 React 和 Vue 框架的组件功能
前端开发工具包 WijmoJS 在2019年的第二个主要版本 V2019.0 Update2 已经发布,本次发布涵盖了React 和 Vue 框架下 WijmoJS 前端组件的功能增强,并加入更为易用 ...
- 【LOJ】#3046. 「ZJOI2019」语言
LOJ#3046. 「ZJOI2019」语言 先orz zsy吧 有一个\(n\log^3n\)的做法是把树链剖分后,形成logn个区间,这些区间两两搭配可以获得一个矩形,求矩形面积并 然后就是对于一 ...
- acm java入门(转载)
ACM中java的使用 http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输入输出 ...
- 【hash】A Horrible Poem
[题目链接] # 10038. 「一本通 2.1 练习 4」A Horrible Poem [参考博客] A Horrible Poem (字符串hash+数论) [题目描述] 给出一个由小写英文字母 ...
- PostgreSQL查看表、表索引、视图、表结构以及参数设置
-- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_ind ...
- nginx-consul-template
概述Consul-template 是 HashiCorp 基于 Consul 所提供的可扩展的工具,通过监听 Consul中的数据变化,动态地修改一些配置文件中地模板.常用于在 Nginx.HAPr ...
- nnginx配置代理服务器
因为有些服务有ip白名单的限制,部署多节点后ip很容易就不够用了,所以可以将这些服务部署到其中的一些机器上, 并且部署代理服务器,然后其余机器以代理的方式访问服务.开始是以tinyproxy作为代理服 ...
- 实现JS数组传递
//如果只是一维数组 var list = Request.Form.GetValues("diary[]"); public ContentResult TestHtmlTwo ...
- 实现a标签按钮完全禁用
前言 最近在开发时遇见一个问题 我们知道a标签的disabled属性部分浏览器支持,但是尽管设置了disabled属性也无法阻挡任何鼠标经过或是点击事件的,那么如何实现a标签按钮的禁用呢? 转换一下思 ...
- H.264 详解
一.MPEG-4说明 1.VOP视频编码技术 VO(Video Object):视频对象,它是场景中的某个物体,最简单的情况下就是矩形框,它是有生命期的,由时间上连续的许多帧构成. VOP(Video ...