第二周总结

每周总结之第二周

功能要求

1、用户注册:首次用户使用需要进行注册,然后登录本系统。(1.5分)

zhuce.jsp

  1.  
    <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.  
    pageEncoding="UTF-8"%>
  3.  
    <!DOCTYPE html>
  4.  
    <html>
  5.  
    <head>
  6.  
    <script type="text/javascript">
  7.  
    function checkPass(){
  8.  
    var pwd1=document.getElementById("password").value;
  9.  
    var pwd2=document.getElementById("chong").value;
  10.  
    if(pwd1!=pwd2){
  11.  
    document.getElementById("errorpwd").style.display = "block";
  12.  
    }
  13.  
    else{
  14.  
    document.getElementById("errorpwd").style.display = "none";
  15.  
    }
  16.  
    }
  17.  
    function checkPhone(){
  18.  
    var = document.getElementById("phone");
  19.  
    if(a.value.length!=11){
  20.  
    document.getElementById("errors").style.display = "block";
  21.  
    }
  22.  
    else{
  23.  
    document.getElementById("errors").style.display = "none";
  24.  
    }
  25.  
    }
  26.  
    </script>
  27.  
    <meta charset="UTF-8">
  28.  
    <title>注册</title>
  29.  
    <style type="text/css">
  30.  
    .a{margin-top:20px;}
  31.  
    .b{font-size:20px;width:160px;color:white; }
  32.  
    </style>
  33.  
    </head>
  34.  
    <body>
  35.  
    <%
  36.  
    Object message = request.getAttribute("message");
  37.  
    if(message!=null && !"".equals(message)){
  38.  
     
  39.  
    %>
  40.  
    <script type="text/javascript">
  41.  
    alert("<%=request.getAttribute("message")%>");
  42.  
    </script>
  43.  
    <%} %>
  44.  
    <div align="center">
  45.  
    <form action="../../ShangServlet" method="post" οnsubmit="return check()">
  46.  
    <div class="a">用户姓名:<input type="text" name="name" id="name"></div>
  47.  
    <div class="a">设置密码:<input type="password" name="password" id="password"></div>
  48.  
    <div class="a">重复密码:<input type="password" name="chong" id="chong" οnblur="return checkPass();" ></div>
  49.  
    <span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
  50.  
    <div class="a">手机号码:<input type="text" name="phone" id="phone" οnblur="return checkPhone();"></div>
  51.  
    <span id="errors" style="display:none; color:red">手机号码应该为11位</span>
  52.  
    <div class="a">所属单位:<input type="text" name="place" id="place"></div>
  53.  
    <div class="a"><button type="submit" class="b">保   存</button></div>
  54.  
    </form>
  55.  
    </div>
  56.  
    <script type="text/javascript">
  57.  
    function check(){
  58.  
    var name=document.getElementById("name");
  59.  
    var password=document.getElementById("password");
  60.  
    var chong=document.getElementById("chong");
  61.  
    var phone=document.getElementById("phone");
  62.  
    var place=document.getElementById("place");
  63.  
    if(name.value==''){
  64.  
    alert('用户名称为空');
  65.  
    name.focus();
  66.  
    return false;
  67.  
    }
  68.  
    if(password.value==''){
  69.  
    alert('设置密码为空');
  70.  
    password.focus();
  71.  
    return false;
  72.  
    }
  73.  
    if(chong.value==''){
  74.  
    alert('重复密码为空');
  75.  
    chong.focus();
  76.  
    return false;
  77.  
    }
  78.  
    if(phone.value==''){
  79.  
    alert('手机号码为空');
  80.  
    phone.focus();
  81.  
    return false;
  82.  
    }
  83.  
    if(place.value==''){
  84.  
    alert('所属单位为空');
  85.  
    place.focus();
  86.  
    return false;
  87.  
    }
  88.  
    }
  89.  
    </script>
  90.  
    </body>
  91.  
    </html>

 

(1)用户注册需要填报用户姓名、密码、重复密码、手机号码、所属单位五项内容(0.5分);

 

 

(2)验证密码和重复密码保持一致(0.5分);

 

实现方法如下:

  1.  
    <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.  
    pageEncoding="UTF-8"%>
  3.  
    <!DOCTYPE html>
  4.  
    <html>
  5.  
    <head>
  6.  
    <script type="text/javascript">
  7.  
    function checkPass(){
  8.  
    var pwd1=document.getElementById("password").value;
  9.  
    var pwd2=document.getElementById("chong").value;
  10.  
    if(pwd1!=pwd2){
  11.  
    document.getElementById("errorpwd").style.display = "block";
  12.  
    }
  13.  
    else{
  14.  
    document.getElementById("errorpwd").style.display = "none";
  15.  
    }
  16.  
    }
  17.  
    </script>
  18.  
    <body>
  19.  
    <div class="a">设置密码:<input type="password" name="password" id="password"></div>
  20.  
    <div class="a">重复密码:<input type="password" name="chong" id="chong" οnblur="return checkPass();" ></div>
  21.  
    <span id="errorpwd" style="display:none; color:red">两次输入密码不一致</span>
  22.  
    </body>
  23.  
    </html>

(3)验证手机号码为11位数字。(0.5分

实现方法如下:

  1.  
    <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.  
    pageEncoding="UTF-8"%>
  3.  
    <!DOCTYPE html>
  4.  
    <html>
  5.  
    <head>
  6.  
    <script type="text/javascript">
  7.  
    function checkPhone(){
  8.  
    var = document.getElementById("phone");
  9.  
    if(a.value.length!=11){
  10.  
    document.getElementById("errors").style.display = "block";
  11.  
    }
  12.  
    else{
  13.  
    document.getElementById("errors").style.display = "none";
  14.  
    }
  15.  
    }
  16.  
    </script>
  17.  
    <body>
  18.  
    <div class="a">手机号码:<input type="text" name="phone" id="phone" οnblur="return checkPhone();"></div>
  19.  
    <span id="errors" style="display:none; color:red">手机号码应该为11位</span>
  20.  
    </body>
  21.  
    </html>

  

2、用户登录功能:根据登录信息错误类型,提示用户名、密码、注册码错误;(2.5分)

dengluServlet.java

  1.  
    package servlet;
  2.  
     
  3.  
    import java.io.IOException;
  4.  
    import java.io.PrintWriter;
  5.  
     
  6.  
    import javax.servlet.ServletException;
  7.  
    import javax.servlet.annotation.WebServlet;
  8.  
    import javax.servlet.http.HttpServlet;
  9.  
    import javax.servlet.http.HttpServletRequest;
  10.  
    import javax.servlet.http.HttpServletResponse;
  11.  
     
  12.  
    import dao.StudentDao;
  13.  
     
  14.  
    /**
  15.  
    * Servlet implementation class dengluServlet
  16.  
    */
  17.  
    @WebServlet("/WJDC/dengluServlet")
  18.  
    public class dengluServlet extends HttpServlet {
  19.  
    private static final long serialVersionUID 1L;
  20.  
    StudentDao dao new StudentDao();
  21.  
    /**
  22.  
    @see HttpServlet#HttpServlet()
  23.  
    */
  24.  
    public dengluServlet() {
  25.  
    super();
  26.  
    // TODO Auto-generated constructor stub
  27.  
    }
  28.  
     
  29.  
    /**
  30.  
    @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  31.  
    */
  32.  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  33.  
    // TODO Auto-generated method stub
  34.  
    request.setCharacterEncoding("utf-8");
  35.  
    response.setContentType("text/html;charset=utf-8");
  36.  
    String username = request.getParameter("user");
  37.  
    String password = request.getParameter("pwd");
  38.  
    String verifyc = request.getParameter("randcode");
  39.  
    String svc =(String) request.getSession().getAttribute("rand");
  40.  
    String psw =new StudentDao().findUsername(username);
  41.  
    if(!svc.equalsIgnoreCase(verifyc)){
  42.  
    PrintWriter out = response.getWriter();
  43.  
    out.println(" <script type='text/javascript'> alert('验证码码错误');window.location.href='login.html'</script>");
  44.  
    out.println("</HTML>");
  45.  
    out.flush();
  46.  
    out.close();
  47.  
    }
  48.  
    if(psw ==null){
  49.  
    PrintWriter out = response.getWriter();
  50.  
    out.println(" <script type='text/javascript'> alert('该用户不存在');window.location.href='login.html'</script>");
  51.  
    out.println("</HTML>");
  52.  
    out.flush();
  53.  
    out.close();
  54.  
    }
  55.  
    if(psw!=null&&!psw.equals(password)){
  56.  
    PrintWriter out = response.getWriter();
  57.  
    out.println(" <script type='text/javascript'> alert('密码错误,请重新录入');window.location.href='login.html'</script>");
  58.  
    out.println("</HTML>");
  59.  
    out.flush();
  60.  
    out.close();
  61.  
    }
  62.  
    if(psw.equals(password)){
  63.  
    PrintWriter out = response.getWriter();
  64.  
    out.println(" <script type='text/javascript'> alert('登陆成功!');window.location.href='main.html'</script>");
  65.  
    out.println("</HTML>");
  66.  
    out.flush();
  67.  
    out.close();
  68.  
    out.print(true);
  69.  
    }
  70.  
    }
  71.  
     
  72.  
    /**
  73.  
    @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  74.  
    */
  75.  
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  76.  
    // TODO Auto-generated method stub
  77.  
    doGet(request, response);
  78.  
    }
  79.  
     
  80.  
    }

 StudentDao.java

  1.  
    package dao;
  2.  
     
  3.  
    import java.sql.Connection;
  4.  
    import java.sql.DriverManager;
  5.  
    import java.sql.PreparedStatement;
  6.  
    import java.sql.ResultSet;
  7.  
    import java.sql.SQLException;
  8.  
    import java.sql.Statement;
  9.  
    import java.util.ArrayList;
  10.  
    import java.util.List;
  11.  
     
  12.  
    import student.Student;
  13.  
    import util.DBUtil;
  14.  
     
  15.  
    public class StudentDao {
  16.  
    //添加
  17.  
    public boolean add(Student course) {
  18.  
    String sql "insert into hebei(name,password,phone,place) values('"+ course.getName() + "','" + course.getPassword()+"','"+ course.getPhone()+"','" + course.getPlace() + "')";
  19.  
    Connection conn = DBUtil.getConn();
  20.  
    Statement state null;
  21.  
    boolean false;
  22.  
    int 0;
  23.  
     
  24.  
    try {
  25.  
    state = conn.createStatement();
  26.  
    a=state.executeUpdate(sql);
  27.  
    catch (Exception e) {
  28.  
    e.printStackTrace();
  29.  
    finally {
  30.  
    DBUtil.close(state, conn);
  31.  
    }
  32.  
     
  33.  
    if (a > 0) {
  34.  
    f = true;
  35.  
    }
  36.  
    return f;
  37.  
    }
  38.  
     
  39.  
     
  40.  
    public String findUsername(String username){
  41.  
    String psw null;
  42.  
    Connection con =null;
  43.  
    PreparedStatement pstmt =null;
  44.  
    ResultSet rs null;
  45.  
    try {
  46.  
    String driver ="com.mysql.cj.jdbc.Driver";
  47.  
    String url ="jdbc:mysql://127.0.0.1:3306/db_database17?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
  48.  
    String user ="root";
  49.  
    String password ="123456";//改为自己的用户名密码和数据库名</span>
  50.  
    Class.forName(driver);
  51.  
    con = DriverManager.getConnection(url, user, password);
  52.  
    String sql "select * from hebei where name=?";
  53.  
    pstmt = con.prepareStatement(sql);
  54.  
    pstmt.setString(1, username);
  55.  
    rs = pstmt.executeQuery();
  56.  
    if(rs==null){
  57.  
    return null;
  58.  
    }
  59.  
    if(rs.next()){
  60.  
    psw=rs.getString("password");
  61.  
    }else{
  62.  
    psw=null;
  63.  
    }
  64.  
    catch (ClassNotFoundException e) {
  65.  
    e.printStackTrace();
  66.  
    catch (SQLException e) {
  67.  
    e.printStackTrace();
  68.  
    }finally {
  69.  
    try {
  70.  
    if(pstmt!=null)pstmt.close();
  71.  
    if(con!=null)con.close();
  72.  
    }
  73.  
    catch (SQLException e) {
  74.  
    }
  75.  
    }
  76.  
    return psw;
  77.  
    }
  78.  
    }

  

(1)用户名不在数据库中,提示“该用户不存在”。(0.5分)

 

(2)密码错误,提示“密码错误,请重新录入”。(0.5分)

 

(3)录入验证码信息与界面显示验证码码信息不一致,提示“验证码码错误”。(0.5分)

 

(4)上述信息录入正确,页面跳转到系统主界面。(0.5分)

 

(5)根据提供的登录界面素材(login.html)完成登陆界面的展示;(0.5分)

第一次测试 自己认识到了自己的不足,用户登录跳转也有问题 用户登录后注销还是登录状态 ,=有的跳转也有问题出现

posted @ 2022-06-14 18:08  stdxxd  阅读(21)  评论(0)    收藏  举报