題目要求
完成注冊界面及添加功能
1登錄賬號:要求由6到12位字母、數字、下划線組成,只有字母可以開頭;(1分)
2登錄密碼:要求顯示“• ”或“*”表示輸入位數,密碼要求八位以上字母、數字組成。(1分)
3性別:要求用單選框或下拉框實現,選項只有“男”或“女”;(1分)
4學號:要求八位數字組成,前四位為“2018”開頭,輸入自己學號;(1分)
5姓名:輸入自己的姓名;
5電子郵箱:要求判斷正確格式xxxx@xxxx.xxxx;(1分)
6點擊“添加”按鈕,將學生個人信息存儲到數據庫中。(3分)
7可以演示連接上數據庫。(2分)
設計思路
頁面布局部分(.jsp):
add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加學生信息</title>
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加學生信息</title>
</head>
<body style="text-align:center;">
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){
%>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<br>
<%--換行--%>
<body style="text-align:center;">
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){
%>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<br>
<%--換行--%>
<h2>添加學生信息</h2>
<hr size="1" noshade color="#000000">
<%--橫線--%>
<form action="Servlet?method=add" method="post" id="form"
onSubmit="return validate()">
<table width="800" border="0" align="center">
<%--表格的寬為800,居中對齊--%>
<%--表格的寬為800,居中對齊--%>
<tr>
<td>賬號: <input type="text" name="username"></td>
</tr>
<tr>
<td>密碼: <input type="password" name="password"></td>
</tr>
<tr>
<td>姓名: <input type="text" name="name">
</td>
</tr>
<tr>
<td>性別: <input id="pingtaijb" name="sex" type="checkbox"
value="男">男 </input> <input id="pingtaijb" name="sex"
type="checkbox" value="女" />女 </input>
</td>
</tr>
<tr>
<td>學號: <input type="text" name="num"></td>
</tr>
<tr>
<td>郵箱: <input type="text" name="e_mail">
</td>
</tr>
<tr>
<td>學校: <input type="text" name="school">
</td>
</tr>
<tr>
<td>專業: <input type="text" name="zhuan">
</td>
</tr>
<tr>
<td>班級: <input type="text" name="ban">
</td>
</tr>
<tr>
<td>年份: <input type="text" name="year">
</td>
</tr>
<tr>
<td>生源地: <select name="diqu" οnchange="showUser(this.value)">
<option value="1">北京市</option>
<option value="2">天津市</option>
<option value="3">河北省</option>
<option value="4">山西省</option>
</select>
</td>
</tr>
<tr>
<td>備注: <input type="text" name="bei">
</td>
</tr>
<tr>
<td>
<input name="submit" type="submit" value="添加" />
<input type="reset" value="重置"></td>
</tr>
</table>
<p> </p>
</form>
<hr size="1" noshade color="#000000">
<%--橫線--%>
<form action="Servlet?method=add" method="post" id="form"
onSubmit="return validate()">
<table width="800" border="0" align="center">
<%--表格的寬為800,居中對齊--%>
<%--表格的寬為800,居中對齊--%>
<tr>
<td>賬號: <input type="text" name="username"></td>
</tr>
<tr>
<td>密碼: <input type="password" name="password"></td>
</tr>
<tr>
<td>姓名: <input type="text" name="name">
</td>
</tr>
<tr>
<td>性別: <input id="pingtaijb" name="sex" type="checkbox"
value="男">男 </input> <input id="pingtaijb" name="sex"
type="checkbox" value="女" />女 </input>
</td>
</tr>
<tr>
<td>學號: <input type="text" name="num"></td>
</tr>
<tr>
<td>郵箱: <input type="text" name="e_mail">
</td>
</tr>
<tr>
<td>學校: <input type="text" name="school">
</td>
</tr>
<tr>
<td>專業: <input type="text" name="zhuan">
</td>
</tr>
<tr>
<td>班級: <input type="text" name="ban">
</td>
</tr>
<tr>
<td>年份: <input type="text" name="year">
</td>
</tr>
<tr>
<td>生源地: <select name="diqu" οnchange="showUser(this.value)">
<option value="1">北京市</option>
<option value="2">天津市</option>
<option value="3">河北省</option>
<option value="4">山西省</option>
</select>
</td>
</tr>
<tr>
<td>備注: <input type="text" name="bei">
</td>
</tr>
<tr>
<td>
<input name="submit" type="submit" value="添加" />
<input type="reset" value="重置"></td>
</tr>
</table>
<p> </p>
</form>
<script type="text/javascript" language="JavaScript">
//JS
function validate() {
var num = document.forms[0].username.value;//賬號
var password = document.forms[0].password.value;//密碼
var sex = document.forms[0].sex.value; //姓名
var name = document.forms[0].name.value; //性別
var stunum = document.forms[0].num.value;//學號
var e_mail = document.forms[0].e_mail.value; //郵箱
var college = document.forms[0].school.value; //學校
var major = document.forms[0].zhuan.value; //專業
//var ban = document.forms[0].ban.value; //班級
var year = document.forms[0].year.value; //年份
var locate = document.forms[0].diqu.value; //生源地
var beizhu = document.forms[0].bei.value; //備注
/*var username = validate(document.form.user_name.value);
var password = validate(document.form.password.value);
var name = validate(document.form.name.value);
var sex = validate(document.form.sex.value);
var num = validate(document.form.num.value);
var e_mail = validate(document.form.e_mail.value);
var school = validate(document.form.school.value);
var zhuan = validate(document.form.zhuan.value);
var ban = validate(document.form.ban.value);
var year = validate(document.form.year.value);
var diqu = validate(document.form.diqu.value);
var bei = validate(document.form.bei.value);*/
if (username[0]<'A'||username[0]>'z') {
alert("賬號必須以字母開頭!");
return false;
}
else if (12<username.length||username.length <6) { //判斷姓名位數,必填
alert("賬號必須6-12位!");
return false;
}
else if (password.length <= 8) {
alert("請輸入八位以上的密碼!");
return false;
}
else if (name.length <= 0) {
alert("姓名不能為空,請輸入姓名!");
return false;
}
else if (num.length<8) {
alert("學號必須是8位!");
return false;
}
else if (num[0]=='2'&&num[1]=='0'&&num[2]=='1'&&num[3]=='7') {
alert("前四位必須是2018!");
return false;
}
else if (e_mail.length <= 0) {
alert("郵箱不能為空,請輸入郵箱!");
return false;
}
else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(e_mail))
{
alert("請輸入格式正確的 e-mail 地址!");
return false;
}
else {
return true;
}
//document.getElementById("form").submit();
}
</script>
</body>
</html>
//JS
function validate() {
var num = document.forms[0].username.value;//賬號
var password = document.forms[0].password.value;//密碼
var sex = document.forms[0].sex.value; //姓名
var name = document.forms[0].name.value; //性別
var stunum = document.forms[0].num.value;//學號
var e_mail = document.forms[0].e_mail.value; //郵箱
var college = document.forms[0].school.value; //學校
var major = document.forms[0].zhuan.value; //專業
//var ban = document.forms[0].ban.value; //班級
var year = document.forms[0].year.value; //年份
var locate = document.forms[0].diqu.value; //生源地
var beizhu = document.forms[0].bei.value; //備注
/*var username = validate(document.form.user_name.value);
var password = validate(document.form.password.value);
var name = validate(document.form.name.value);
var sex = validate(document.form.sex.value);
var num = validate(document.form.num.value);
var e_mail = validate(document.form.e_mail.value);
var school = validate(document.form.school.value);
var zhuan = validate(document.form.zhuan.value);
var ban = validate(document.form.ban.value);
var year = validate(document.form.year.value);
var diqu = validate(document.form.diqu.value);
var bei = validate(document.form.bei.value);*/
if (username[0]<'A'||username[0]>'z') {
alert("賬號必須以字母開頭!");
return false;
}
else if (12<username.length||username.length <6) { //判斷姓名位數,必填
alert("賬號必須6-12位!");
return false;
}
else if (password.length <= 8) {
alert("請輸入八位以上的密碼!");
return false;
}
else if (name.length <= 0) {
alert("姓名不能為空,請輸入姓名!");
return false;
}
else if (num.length<8) {
alert("學號必須是8位!");
return false;
}
else if (num[0]=='2'&&num[1]=='0'&&num[2]=='1'&&num[3]=='7') {
alert("前四位必須是2018!");
return false;
}
else if (e_mail.length <= 0) {
alert("郵箱不能為空,請輸入郵箱!");
return false;
}
else if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(e_mail))
{
alert("請輸入格式正確的 e-mail 地址!");
return false;
}
else {
return true;
}
//document.getElementById("form").submit();
}
</script>
</body>
</html>
數據庫連接部分(.java):
DBUtil.java
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 數據庫連接工具
* @author Hu
*
*/
public class DBUtil {
public static String dbURL="jdbc:mysql://localhost:3306/test";//數據源 !!!!注意若出現加載或者連接數據庫失敗一般是這里出現問題
public static String Name="root";
public static String Pwd="123456";
public static Connection getConn () {
Connection conn = null;
try {
* 數據庫連接工具
* @author Hu
*
*/
public class DBUtil {
public static String dbURL="jdbc:mysql://localhost:3306/test";//數據源 !!!!注意若出現加載或者連接數據庫失敗一般是這里出現問題
public static String Name="root";
public static String Pwd="123456";
public static Connection getConn () {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");//加載驅動
conn = DriverManager.getConnection(dbURL, Name, Pwd);
} 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();
}
}
}
conn = DriverManager.getConnection(dbURL, Name, Pwd);
} 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();
}
}
}
}
dao.java
package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cls.admin;
import util.DBUtil;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cls.admin;
import util.DBUtil;
public class dao {
/**
* 娣誨姞
* @param course
* @return
*/
public boolean add(admin course) {
String sql = "insert into clc(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu) "
+ "values('" +course.getNum()+ "',"
+ "'" + course.getPassword() + "',"
+ "'" + course.getSex()+ "',"
+ "'"+ course.getName()+ "',"
+ "'"+ course.getStunum() + "'"
+ ",'" + course.getE_mail() + "',"
+ "'" + course.getCollege()+ "',"
+ "'" +course.getMajor()+"',"
+ "'"+course.getYear() +"',"
+ "'"+course.getLocate()+"',"
+ "'"+course.getBeizhu()+"')";
Connection conn = DBUtil.getConn();
Statement state = null;
boolean f = false;
int a = 0;
try {
state = conn.createStatement();
a=state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
}
if (a > 0) {
f = true;
}
return f;
}
}
* 娣誨姞
* @param course
* @return
*/
public boolean add(admin course) {
String sql = "insert into clc(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu) "
+ "values('" +course.getNum()+ "',"
+ "'" + course.getPassword() + "',"
+ "'" + course.getSex()+ "',"
+ "'"+ course.getName()+ "',"
+ "'"+ course.getStunum() + "'"
+ ",'" + course.getE_mail() + "',"
+ "'" + course.getCollege()+ "',"
+ "'" +course.getMajor()+"',"
+ "'"+course.getYear() +"',"
+ "'"+course.getLocate()+"',"
+ "'"+course.getBeizhu()+"')";
Connection conn = DBUtil.getConn();
Statement state = null;
boolean f = false;
int a = 0;
try {
state = conn.createStatement();
a=state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
}
if (a > 0) {
f = true;
}
return f;
}
}
Lservice.java
package service;
import cls.admin;
import dao.dao;
import dao.dao;
/**
* CourseService
* 服務層
* @author Hu
*
*/
public class Lservice {
* CourseService
* 服務層
* @author Hu
*
*/
public class Lservice {
static dao cDao = new dao();
/**
* 添加
* @param course
* @return
*/
public static boolean add(admin course) {
boolean f = false;
cDao.add(course);
f = true;
return f;
}
}
/**
* 添加
* @param course
* @return
*/
public static boolean add(admin course) {
boolean f = false;
cDao.add(course);
f = true;
return f;
}
}
admin.java
package cls;
public class admin {
private String num;
private String password;
private String sex;
private String name;
private String stunum;
private String e_mail;
private String college;
private String major;
private String year;
private String locate;
private String beizhu;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getPassword() {
return password;
}
public admin(String num, String password, String sex, String name, String stunum, String e_mail, String college, String major,
String year, String locate, String beizhu) {
super();
this.num = num;
this.password = password;
this.sex = sex;
this.name = name;
this.stunum = stunum;
this.e_mail = e_mail;
this.college = college;
this.major = major;
this.year = year;
this.locate = locate;
this.beizhu = beizhu;
}
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 getStunum() {
return stunum;
}
public void setStunum(String stunum) {
this.stunum = stunum;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getLocate() {
return locate;
}
public void setLocate(String locate) {
this.locate = locate;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public void admin()
{
}
}
private String num;
private String password;
private String sex;
private String name;
private String stunum;
private String e_mail;
private String college;
private String major;
private String year;
private String locate;
private String beizhu;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getPassword() {
return password;
}
public admin(String num, String password, String sex, String name, String stunum, String e_mail, String college, String major,
String year, String locate, String beizhu) {
super();
this.num = num;
this.password = password;
this.sex = sex;
this.name = name;
this.stunum = stunum;
this.e_mail = e_mail;
this.college = college;
this.major = major;
this.year = year;
this.locate = locate;
this.beizhu = beizhu;
}
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 getStunum() {
return stunum;
}
public void setStunum(String stunum) {
this.stunum = stunum;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getLocate() {
return locate;
}
public void setLocate(String locate) {
this.locate = locate;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public void admin()
{
}
}
Servlet部分:
Servlet.java
package servlet;
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;
import service.Lservice;
import cls.admin;
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;
import service.Lservice;
import cls.admin;
/**
* Servlet implementation class Servlet
*/
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Servlet() {
super();
// TODO Auto-generated constructor stub
}
* Servlet implementation class Servlet
*/
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Servlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
Lservice service = new Lservice();
/**
* 方法選擇
*/
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);
}
}
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
Lservice service = new Lservice();
/**
* 方法選擇
*/
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);
}
}
/**
* 添加
* @param req
* @param resp
* @throws IOException
* @throws ServletException
*/
private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
String num = req.getParameter("num");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String name = req.getParameter("name");
String stunum = req.getParameter("stunum");
String e_mail = req.getParameter("e_mail");
String college = req.getParameter("college");
String major = req.getParameter("major");
String year = req.getParameter("year");
String locate = req.getParameter("locate");
String beizhu = req.getParameter("beizhu");
admin course = new admin(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu);
//添加后消息顯示
if(Lservice.add(course)) {
req.setAttribute("message", "添加成功");
req.getRequestDispatcher("add.jsp").forward(req,resp);
} else {
req.setAttribute("message", "姓名重復,請重新錄入");
req.getRequestDispatcher("add.jsp").forward(req,resp);
}
}
}
* 添加
* @param req
* @param resp
* @throws IOException
* @throws ServletException
*/
private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
String num = req.getParameter("num");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String name = req.getParameter("name");
String stunum = req.getParameter("stunum");
String e_mail = req.getParameter("e_mail");
String college = req.getParameter("college");
String major = req.getParameter("major");
String year = req.getParameter("year");
String locate = req.getParameter("locate");
String beizhu = req.getParameter("beizhu");
admin course = new admin(num,password,sex,name,stunum,e_mail,college,major,year,locate,beizhu);
//添加后消息顯示
if(Lservice.add(course)) {
req.setAttribute("message", "添加成功");
req.getRequestDispatcher("add.jsp").forward(req,resp);
} else {
req.setAttribute("message", "姓名重復,請重新錄入");
req.getRequestDispatcher("add.jsp").forward(req,resp);
}
}
}