《软件工程》 实发项目系统开发——河北省重大技术需求征集系统原型

功能要求

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" onsubmit="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" onblur="return checkPass();" ></div>
<span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
<div class="a">手机号码:<input type="text" name="phone" id="phone" onblur="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" onblur="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" onblur="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分)

 

posted @ 2019-03-03 23:35  _小白兔  阅读(771)  评论(0编辑  收藏  举报