功能要求
1、用户注册:首次用户使用需要进行注册,然后登录本系统。(1.5分)
zhuce.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPass(){
var pwd1=document.getElementById("password").value;
var pwd2=document.getElementById("chong").value;
if(pwd1!=pwd2){
document.getElementById("errorpwd").style.display = "block";
}
else{
document.getElementById("errorpwd").style.display = "none";
}
}
function checkPhone(){
var a = document.getElementById("phone");
if(a.value.length!=11){
document.getElementById("errors").style.display = "block";
}
else{
document.getElementById("errors").style.display = "none";
}
}
</script>
<meta charset="UTF-8">
<title>注册</title>
<style type="text/css">
.a{margin-top:20px;}
.b{font-size:20px;width:160px;color:white; background-color:greenyellow;}
</style>
</head>
<body>
<%
Object message = request.getAttribute("message");
if(message!=null && !"".equals(message)){
%>
<script type="text/javascript">
alert("<%=request.getAttribute("message")%>");
</script>
<%} %>
<div align="center">
<form action="../../ShangServlet" method="post" οnsubmit="return check()">
<div class="a">用户姓名:<input type="text" name="name" id="name"></div>
<div class="a">设置密码:<input type="password" name="password" id="password"></div>
<div class="a">重复密码:<input type="password" name="chong" id="chong" οnblur="return checkPass();" ></div>
<span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
<div class="a">手机号码:<input type="text" name="phone" id="phone" οnblur="return checkPhone();"></div>
<span id="errors" style="display:none; color:red">手机号码应该为11位</span>
<div class="a">所属单位:<input type="text" name="place" id="place"></div>
<div class="a"><button type="submit" class="b">保 存</button></div>
</form>
</div>
<script type="text/javascript">
function check(){
var name=document.getElementById("name");
var password=document.getElementById("password");
var chong=document.getElementById("chong");
var phone=document.getElementById("phone");
var place=document.getElementById("place");
if(name.value==''){
alert('用户名称为空');
name.focus();
return false;
}
if(password.value==''){
alert('设置密码为空');
password.focus();
return false;
}
if(chong.value==''){
alert('重复密码为空');
chong.focus();
return false;
}
if(phone.value==''){
alert('手机号码为空');
phone.focus();
return false;
}
if(place.value==''){
alert('所属单位为空');
place.focus();
return false;
}
}
</script>
</body>
</html>
(1)用户注册需要填报用户姓名、密码、重复密码、手机号码、所属单位五项内容(0.5分);
(2)验证密码和重复密码保持一致(0.5分);
实现方法如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPass(){
var pwd1=document.getElementById("password").value;
var pwd2=document.getElementById("chong").value;
if(pwd1!=pwd2){
document.getElementById("errorpwd").style.display = "block";
}
else{
document.getElementById("errorpwd").style.display = "none";
}
}
</script>
<body>
<div class="a">设置密码:<input type="password" name="password" id="password"></div>
<div class="a">重复密码:<input type="password" name="chong" id="chong" οnblur="return checkPass();" ></div>
<span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
</body>
</html>
(3)验证手机号码为11位数字。(0.5分)
实现方法如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function checkPhone(){
var a = document.getElementById("phone");
if(a.value.length!=11){
document.getElementById("errors").style.display = "block";
}
else{
document.getElementById("errors").style.display = "none";
}
}
</script>
<body>
<div class="a">手机号码:<input type="text" name="phone" id="phone" οnblur="return checkPhone();"></div>
<span id="errors" style="display:none; color:red">手机号码应该为11位</span>
</body>
</html>
2、用户登录功能:根据登录信息错误类型,提示用户名、密码、注册码错误;(2.5分)
dengluServlet.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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.StudentDao;
/**
* Servlet implementation class dengluServlet
*/
@WebServlet("/WJDC/dengluServlet")
public class dengluServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
StudentDao dao = new StudentDao();
/**
* @see HttpServlet#HttpServlet()
*/
public dengluServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("user");
String password = request.getParameter("pwd");
String verifyc = request.getParameter("randcode");
String svc =(String) request.getSession().getAttribute("rand");
String psw =new StudentDao().findUsername(username);
if(!svc.equalsIgnoreCase(verifyc)){
PrintWriter out = response.getWriter();
out.println(" <script type='text/javascript'> alert('验证码码错误');window.location.href='login.html'</script>");
out.println("</HTML>");
out.flush();
out.close();
}
if(psw ==null){
PrintWriter out = response.getWriter();
out.println(" <script type='text/javascript'> alert('该用户不存在');window.location.href='login.html'</script>");
out.println("</HTML>");
out.flush();
out.close();
}
if(psw!=null&&!psw.equals(password)){
PrintWriter out = response.getWriter();
out.println(" <script type='text/javascript'> alert('密码错误,请重新录入');window.location.href='login.html'</script>");
out.println("</HTML>");
out.flush();
out.close();
}
if(psw.equals(password)){
PrintWriter out = response.getWriter();
out.println(" <script type='text/javascript'> alert('登陆成功!');window.location.href='main.html'</script>");
out.println("</HTML>");
out.flush();
out.close();
out.print(true);
}
}
/**
* @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);
}
}
StudentDao.java
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
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 student.Student;
import util.DBUtil;
public class StudentDao {
//添加
public boolean add(Student course) {
String sql = "insert into hebei(name,password,phone,place) values('"+ course.getName() + "','" + course.getPassword()+"','"+ course.getPhone()+"','" + course.getPlace() + "')";
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;
}
public String findUsername(String username){
String psw = null;
Connection con =null;
PreparedStatement pstmt =null;
ResultSet rs = null;
try {
String driver ="com.mysql.cj.jdbc.Driver";
String url ="jdbc:mysql://127.0.0.1:3306/db_database17?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
String user ="root";
String password ="123456";//改为自己的用户名密码和数据库名</span>
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
String sql = "select * from hebei where name=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, username);
rs = pstmt.executeQuery();
if(rs==null){
return null;
}
if(rs.next()){
psw=rs.getString("password");
}else{
psw=null;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(pstmt!=null)pstmt.close();
if(con!=null)con.close();
}
catch (SQLException e) {
}
}
return psw;
}
}
(1)用户名不在数据库中,提示“该用户不存在”。(0.5分)
(2)密码错误,提示“密码错误,请重新录入”。(0.5分)
(3)录入验证码信息与界面显示验证码码信息不一致,提示“验证码码错误”。(0.5分)
(4)上述信息录入正确,页面跳转到系统主界面。(0.5分)
(5)根据提供的登录界面素材(login.html)完成登陆界面的展示;(0.5分)