2019.10.21
先设置网页直接跳转,设置登录界面,验证输入,设置mysql表格,导入数据库
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
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 util.DBUtil;
/**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RegisterServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
request.setCharacterEncoding("UTF-8");
String sql = "insert into user (user, password, sex, name, num, email, scl, xi, class, year, province, phone) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
Connection connection = DBUtil.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,request.getParameter("user"));
ps.setString(2,request.getParameter("password"));
ps.setString(3,request.getParameter("sex"));
ps.setString(4,request.getParameter("name"));
ps.setString(5,request.getParameter("num"));
ps.setString(6,request.getParameter("email"));
ps.setString(7,request.getParameter("scl"));
ps.setString(8,request.getParameter("xi"));
ps.setString(9,request.getParameter("class"));
ps.setString(10,request.getParameter("year"));
ps.setString(11,request.getParameter("province"));
ps.setString(12,request.getParameter("phone"));
int updaterows = ps.executeUpdate(); //executeUpdate()返回的整型为受影响数据行数
DBUtil.close(ps, connection);
if(updaterows == 1)
response.sendRedirect("success.html");
else
response.sendRedirect("fail.html");
} catch (Exception e) {
e.printStackTrace();
}
}
}
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
public static String DBDRIVER = "com.mysql.cj.jdbc.Driver";
public static String DBURL = "jdbc:mysql://localhost:3306/shop";
public static String DBUSER = "root";
public static String DBPASSWORD = "root";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void close(Statement state, Connection conn) {
try {
if(state!=null)
state.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(ResultSet rs, Statement state, Connection conn) {
try {
if(rs!=null)
rs.close();
if(state!=null)
state.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册窗口</title>
</head>
<body>
<form action="RegisterServlet" method="post" onsubmit="return check(this)">
登录账号:<input type="text" name="user" placeholder="请输入账号"><br>
登录密码:<input type="password" name="password" placeholder="请输入密码"><br>
性别:<select name="sex">
<option value="男">男</option>
<option value="女">女</option>
</select>
<br>
姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
学号:<input type="text" name="num" placeholder="请输入学号"><br>
电子邮箱:<input type="text" name="email" placeholder="请输入邮箱"><br>
所在学院:<input type="text" name="scl" placeholder="请输入学院"><br>
所在系:<input type="text" name="xi" placeholder="请输入系"><br>
所在班级:<input type="text" name="class" placeholder="请输入班级"><br>
入学年份:<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>
</select>
届<br>
生源地:<input type="text" name="province" placeholder="请输入地址"><br>
备注:<input type="text" name="phone" placeholder="请输入"><br>
<input type="submit" value="登录">
<input type="reset" value="重置">
</form>
</body>
<script type="text/javascript">
function check(form){
if(form.user.value.length<6 || form.user.value.length>12 || new RegExp("[^0-9a-zA-Z]").test(form.user.value)){
alert("用户名必须由6-12位英文字符或数字组成!");
form.user.focus();
return false;
}
if(new RegExp("[^a-zA-Z]").test(form.user.value.substring(0,1))){
alert("用户名必须以英文字母开头!");
form.user.focus();
return false;
}
//var ses=/^([2]{1}})([0]{1}})([1]{1}})([8]{1}})([0-9]{4})$/
if(form.num.value.length != 8/* || ses.test(form.num.value)*/){
alert("学号请输8位数字!");
form.phone.focus();
return false;
}
//以数字字母开头,中间可以是多个数字字母或下划线;然后是“@”;然后是数字字母;然后是“.”;最后是2-4个字母结尾
var regex = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
if(!regex.test(form.email.value)){
alert("邮箱格式错误!");
form.email.focus();
return false;
}
return true;
}
</script>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>成功</title>
</head>
<body>
<h1>注册成功!</h1>
<a href="register.html">继续注册</a>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>失败</title>
</head>
<body>
<h1>注册失败!</h1>
<a href="register.html">继续注册</a>
</body>
</html>