JavaWeb1、添加学生信息

一、 考试要求:

 

 

 

1登录账号:要求由612位字母、数字、下划线组成,只有字母可以开头;(1分)

2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)

3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)

4学号:要求八位数字组成,前四位为2018”开头,输入自己学号;(1分)

5姓名:输入自己的姓名;

5电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;(1分)

6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)

7可以演示连接上数据库。(2分)

 

代码:

实体类:

package addstudent;

public class Student {
private int id;
private String account;
private String password;
private String sex;
private String name;
private String number;
private String mail;
private String college;
private String system;
private String classes;
private String year;
private String oringin;
private String note;// 备注

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getAccount() {
return account;
}

public void setAccount(String account) {
this.account = account;
}

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 getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public String getMail() {
return mail;
}

public void setMail(String mail) {
this.mail = mail;
}

public String getCollege() {
return college;
}

public void setCollege(String college) {
this.college = college;
}

public String getSystem() {
return system;
}

public void setSystem(String system) {
this.system = system;
}

public String getClasses() {
return classes;
}

public void setClasses(String classes) {
this.classes = classes;
}

public String getYear() {
return year;
}

public void setYear(String year) {
this.year = year;
}

public String getOringin() {
return oringin;
}

public void setOringin(String oringin) {
this.oringin = oringin;
}

public String getNote() {
return note;
}

public void setNote(String note) {
this.note = note;
}

public Student(String account, String password, String sex, String name, String number, String mail, String college,
String system, String classes, String year, String oringin, String note) {

this.account = account;
this.password = password;
this.sex = sex;
this.name = name;
this.number = number;
this.mail = mail;
this.college = college;
this.system = system;
this.classes = classes;
this.year = year;
this.oringin = oringin;
this.note = note;
}
}

链接数据库:

package addstudent;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
* 连接数据库工具类
* @author Lenovo
*
*/
public class DBUtil {

private static String dbUrl = "jdbc:mysql://localhost:3306/addstudents?useUnicode=true&characterEncoding=utf8";
private static String dbUser = "root";
private static String dbPassword = "root";
private static String jdbcName = "com.mysql.jdbc.Driver";
private static Connection connection = null;

/**
* 连接数据库
* @return
*/
public static Connection getConn() {
try {
Class.forName(jdbcName);
connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
System.out.println("数据库链接成功!");
} catch (Exception e) {
System.out.println("数据库链接失败!");
e.printStackTrace();
}
return connection;
}

/**
* 关闭数据库连接
*/
public static void closeCon() {
if (connection != null)
try {
connection.close();
System.out.println("数据库链接已关闭!");
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
* 检验数据库是否连接成功
* @param args
*/
public static void main(String[] args) {
getConn();
closeCon();
}

}

 DAO层(操作数据库):

package addstudent;

import java.sql.*;

/**
* 操作数据库
*
* @author Lenovo
*
*/
public class AddDAO {

/**
* 添加操作
* @return
*/
public static boolean add(Student stu) {
// 获取数据库连接
Connection connection = DBUtil.getConn();
String sql = "insert into addstu(account,password,sex,name,number,mail,college,system,classes,year,oringin,note)values('"
+ stu.getAccount() + "','" + stu.getPassword() + "','" + stu.getSex() + "','" + stu.getName() + "','"
+ stu.getNumber() + "','" + stu.getMail() + "','" + stu.getCollege() + "','" + stu.getSystem() + "','"
+ stu.getClasses() + "','" + stu.getYear() + "','" + stu.getOringin() + "','"+stu.getNote()+"')";

Statement state = null;
boolean f = false;
int a = 0;

try {
state = connection.createStatement();
a = state.executeUpdate(sql);
a++;
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接
DBUtil.closeCon();
}

if (a > 0) {
f = true;
}
return f;
}

public static void main(String[] args) throws SQLException {
add(null);
}
}

servlet(操作DAO层):

package addstudent;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

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 Add_do
*/
@WebServlet("/StudentServlet")
public class StudentServlet 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");

if ("add".equals(method)) {
add(req, resp);
}
}

private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
String account = req.getParameter("account");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String name = req.getParameter("name");
String number = req.getParameter("number");
String mail = req.getParameter("mail");
String college = req.getParameter("college");
String system = req.getParameter("system");
String classes = req.getParameter("classes");
String year = req.getParameter("year");
String oringin = req.getParameter("oringin");
String note = req.getParameter("note");

Student stu = new Student(account, password, sex, name, number, mail, college, system, classes, year, oringin,
note);

if (AddDAO.add(stu)) {
req.setAttribute("message", "添加成功!");
req.getRequestDispatcher("add.jsp").forward(req, resp);
} else {
req.setAttribute("message", "添加失败!");
req.getRequestDispatcher("add.jsp").forward(req, resp);
}
}

}

jsp,页面实现:

add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 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="StudentServlet?method=add" method="post"
onsubmit="return check()">
<table align="center" border="0" width="50%" cellpadding="5"
cellspacing="0">
<tr>
<td align="right">登录账号:</td>
<td align="left"><input type="text" id="account" name="account"
pattern="^[A-Za-z][A-Za-z0-9]{5,11}$" required
oninvalid="setCustomValidity('格式不正确,只能由6-12位的字母、数字、下划线组成,且以字母开头')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">登录密码:</td>
<td align="left"><input type="password" id="password"
name="password" pattern="^[A-Za-z][A-Za-z0-9]{5,11}$" required
oninvalid="setCustomValidity('格式不正确,只能由八位以上字母、数字组成')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">性别:</td>
<td align="left"><select id="sex" name="sex">
<option value="男">男</option>
<option value="女">女</option>
</select></td>
</tr>
<tr>
<td align="right">姓名:</td>
<td align="left"><input type="text" id="name" name="name"
required oninvalid="setCustomValidity('此项为必填项')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">学号:</td>
<td align="left"><input type="text" id="number" name="number"
pettern="2018\d{3}$" required
oninvalid="setCustomValidity('以2018开头的八位学号')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">电子邮件:</td>
<td align="left"><input type="text"
pattern="^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"
id="mail" name="mail" required
oninvalid="setCustomValidity('邮箱格式非法')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">所在学院:</td>
<td align="left"><input type="text" id="college" name="college"
required oninvalid="setCustomValidity('此项为必填项')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">所在系:</td>
<td align="left"><input type="text" id="system" name="system"
required oninvalid="setCustomValidity('此项为必填项')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">所在班级:</td>
<td align="left"><input type="text" id="classes" name="classes"
required oninvalid="setCustomValidity('此项为必填项')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">入学年份(届):</td>
<td align="left"><select id="year" name="year">
<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>(届)</td>
</tr>
<tr>
<td align="right">生源地:</td>
<td align="left"><input type="text" id="oringin" name="oringin"
required oninvalid="setCustomValidity('此项为必填项')"
oninput="setCustomValidity('')"></td>
</tr>
<tr>
<td align="right">备注:</td>
<td align="left"><textarea rows="5" cols="30" id="note"
name="note"></textarea></td>
</tr>
<tr>
<th colspan="2" align="center"><button type="submit">添&nbsp;&nbsp;&nbsp;加</button></th>
</tr>
</table>
</form>
</body>
</html>

posted @ 2019-10-12 20:39  烈日灼心h  阅读(466)  评论(0编辑  收藏  举报