注册界面和功能

最近写了一个注册功能

首先先写jsp界面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!-- <link href="/CSS&JS/style_checkcode.css" rel="stylesheet" type="text/css">-->
    <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
    <script type="text/javascript" src="js/logincheckcode.js"></script>
    <title>注册</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        a{
            text-decoration: none;
            outline: medium none;
            color: #CF0;
        }
        #wrap {
            height: 80%;
            width: 100%;
            background-repeat: no-repeat;
            background-position: center center;
            position: relative;
        }
        #head {
            height: 10%;
            width: 100%;
            background-color: #66CCCC;
            text-align: center;
            position: relative;
        }
        #foot {
            width: 100%;
            height: 10%;
            background-color: #CC9933;
            position: relative;
        }
        #wrap .logGet {
            height: 408px;
            width: 368px;
            position: absolute;
            background-color: #FFFFFF;
            top: 11%;
            left: 10%;

        }
        .inputo{
            margin-top: 20px;
            width: 100%;
            height: 45px;
            background-color: #ee7700;
            border: none;
            color: white;
            font-size: 18px;
        }
        .logC a:hover {
            color: #63B1FF;
            text-shadow: 1px 1px 1px #000000;
        }

        .logGet .logD.logDtip .p1 {
            display: inline-block;
            font-size: 28px;
            margin-top: 10px;
            width: 86%;
        }
        #wrap .logGet .logD.logDtip {
            width: 86%;
            border-bottom: 1px solid #ee7700;
            margin-bottom: 35px;
            margin-top: 0px;
            margin-right: auto;
            margin-left: auto;
        }
        .logGet .lgD img {
            position: absolute;
            top: 12px;
            left: 8px;
        }
        .logGet .lgD input {
            width: 100%;
            height: 25px;
            text-indent: 2.5rem;
        }
        #wrap .logGet .lgD {
            width: 86%;
            position: relative;
            margin-bottom: 30px;
            margin-top: 10px;
            margin-right: auto;
            margin-left: auto;
        }
        #wrap .logGet .logC {
            width: 86%;
            margin-top: 0px;
            margin-right: auto;
            margin-bottom: 0px;
            margin-left: auto;
        }


        .title {
            font-family: "宋体";
            color: #FFFFFF;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);  /* 使用css3的transform来实现 */
            font-size: 36px;
            height: 40px;
            width: 30%;
        }

        .copyright {
            font-family: "宋体";
            color: #FFFFFF;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);  /* 使用css3的transform来实现 */
            height: 60px;
            width: 40%;
            text-align:center;
        }


        #foot .copyright .img {
            width: 100%;
            height: 24px;
            position: relative;
        }
        .copyright .img .icon {
            display: inline-block;
            width: 24px;
            height: 24px;
            margin-left: 22px;
            vertical-align: middle;
            /*background-image: url("");*/
            background-repeat: no-repeat;
            vertical-align: middle;
            margin-right: 5px;
        }

        .copyright .img .icon1 {
            display: inline-block;
            width: 24px;
            height: 24px;
            margin-left: 22px;
            vertical-align: middle;
            /*//background-image: url();*/
            background-repeat: no-repeat;
            vertical-align: middle;
            margin-right: 5px;
        }
        .copyright .img .icon2 {
            display: inline-block;
            width: 24px;
            height: 24px;
            margin-left: 22px;
            vertical-align: middle;
            /* //background-image: url();*/
            background-repeat: no-repeat;
            vertical-align: middle;
            margin-right: 5px;
        }
        #foot .copyright p {
            height: 24px;
            width: 100%;
        }
    </style>
    <script src="js/check.js">


    </script>

</head>

<body>
<div class="header" id="head">
    <div class="title">码蚁窝</div>

</div>

<div class="wrap" id="wrap">
    <div class="logGet">
        <!-- 头部提示信息 -->
        <div class="logD logDtip">
            <p class="p1">会员注册</p>
        </div>
        <!-- 输入框 -->
        <form  id="formLogin" action="reg.do" method="post" >
            <span style="color: red">${error}</span>

            <div class="lgD">

                <!--   <img src="img/logName.png" width="20" height="20" alt=""/>-->
                会员名:<input type="text" name="name" id="name" onblur="checkUser()"
                       placeholder="由英文开头和数字组成的4-16位字符" />

            <div id="user_prompt"></div>
            </div>
            <div class="lgD">
                <!-- <img src="img/logPwd.png" width="20" height="20" alt=""/>-->
                输入密码:<input type="password" name="pwd" id="pwd" onblur="checkPwd()"
                       placeholder="由英文字母和数字组成的4-10位字符" />
                <div id="pwd_prompt"></div>
            </div>

            <div class="lgD">
                <!-- <img src="img/logPwd.png" width="20" height="20" alt=""/>-->
                确认密码:<input type="password" name="repwd" id="repwd" onblur="checkRepwd()"
                       placeholder="确认密码" />

            <div id="repwd_prompt"></div>
            </div>
            <div class="lgD">
                <!-- <img src="img/logPwd.png" width="20" height="20" alt=""/>-->
                电话号码:<input type="text" name="mno" id="mno" onblur="checkMobile()"
                       placeholder="输入正确电话号码" />
                <div id="mobile_prompt"></div>
            </div>

            <div class="logC">
                <input name="submit" type="submit"  value="提交" class="inputo" id="bot" /><br/>


            </div>


        </form>
    </div>
</div>

<div class="footer" id="foot">
    <div class="copyright">
        <p>Copyright © 2018</p>
        <div class="img">
            <i class="icon"></i><span></span>
        </div>

        <div class="img">
            <i class="icon1"></i><span></span>
        </div>

        <div class="img">
            <i class="icon2"></i><span>联系电话</span>
        </div>


    </div>

</div>


</body>
</html>

再是后台

dao

package DAOImpl;

import DAO.IMemberDAO;
import Mo.Member;
import Utils.JDBCUtil;
import com.mysql.jdbc.JDBC4Connection;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class MemberDAOImpl implements IMemberDAO {

    //添加用户
    public boolean addMember(Member member) {
        boolean flag=false;
        if(member==null) return flag;

        Connection conn = null;
        PreparedStatement ps = null;
        try {
            conn = JDBCUtil.getConn();
            String sql="insert into member(mem_no,name,pwd) values(?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1,member.getMemNO());
            ps.setString(2,member.getmName());
            ps.setString(3,member.getmPwd());
            int intflag=ps.executeUpdate();
            if(intflag==1)  flag=true;
            return flag;

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCUtil.close(conn,ps,null);
        }


        return flag;
    }

    public boolean checkMember(String memNo, String pwd) {
        boolean flag=false;
        String sql="select mem_no,pwd FROM member where mem_no=?";
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
            conn= JDBCUtil.getConn();
            ps=conn.prepareStatement(sql);
            ps.setString(1,memNo);
            rs=ps.executeQuery();
            if(rs.next()){
                String mpwd=rs.getString(2);
                if(mpwd.equals(pwd))
                    flag=true;
            }

        }catch ( Exception e){
            e.printStackTrace();
        }finally {
            JDBCUtil.close(conn,ps,rs);
        }

        return flag;
    }

    public boolean resetpwd(String memNo, String pwd) {
        String sql = "UPDATE member set pwd=? where mem_no=?";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        boolean flag=false;
        try {
            conn = JDBCUtil.getConn();
            ps = conn.prepareStatement(sql);
            ps.setString(1, pwd);
            ps.setString(2, memNo);

            int intflag=ps.executeUpdate();
            if(intflag==1)  flag=true;

            return flag;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JDBCUtil.close(conn, ps, rs);
        }

        return flag;
    }

    @Override
    public Member getMember(String  memNo) {
        String sql="select * from member where mem_no=?";
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        Member member=new Member();
        try {
            conn=JDBCUtil.getConn();
            ps=conn.prepareStatement(sql);
            ps.setString(1,memNo);
            rs=ps.executeQuery();
            if(rs.next()){
                member.setMemId(rs.getInt(1));
                member.setMemNO(rs.getString(2));
                member.setmName(rs.getString(3));
                member.setmGender(rs.getString(4));
                member.setmAge(rs.getInt(5));
                member.setmPwd(rs.getString(6));
                member.setmPhoto(rs.getString(7));
                member.setmIntegral(rs.getInt(8));
                return member;
            }


        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCUtil.close(conn,ps,rs);
        }
        return  null;

    }
}
package DAO;

import Mo.Member;

public interface IMemberDAO {
    boolean addMember(Member member);
    boolean checkMember(String memNo, String pwd);
    boolean resetpwd(String memNo, String pwd);
    Member getMember(String memNo);
}

再是servlet

package Servlet.LogRegServlet;

import DAO.IMemberDAO;
import DAOImpl.MemberDAOImpl;
import Mo.Member;

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 java.io.IOException;

@WebServlet(name = "RegServlet",urlPatterns = "/reg.do")
public class RegServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        String repwd = request.getParameter("repwd");
        String mno = request.getParameter("mno");

        //判断注册名和密码,电话号码是否为空
        if (name != null && name.trim().equals("") || pwd != null && pwd.trim().equals("") || repwd != null && repwd.trim().equals("") || mno != null && mno.trim().equals("")) {
            request.setAttribute("regname", "会员名、密码、电话号码不能为空");
            request.getRequestDispatcher("regerror.jsp").forward(request, response);
            return;
        }



        IMemberDAO iMemberDAO = new MemberDAOImpl();
        Member member = new Member();


        member.setmName(name);
        member.setmPwd(pwd);
        member.setMemNO(mno);
        boolean flag = false;
        //查找会员号码是否已存在被注册过
        Member member1 = null;
        try {
            member1 = iMemberDAO.getMember(mno);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (member1 != null) {
            request.setAttribute("regname", "该号码已被注册过");
            request.getRequestDispatcher("regerror.jsp").forward(request, response);
            return;
        }
        //添加用户
        try {
            flag = iMemberDAO.addMember(member);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(flag){
            request.setAttribute("regname",name);
            request.getRequestDispatcher("/regok.jsp").forward(request,response);
        }
        else{
            request.setAttribute("regname",name);
            request.getRequestDispatcher("/regerror.jsp").forward(request,response);

        }

    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

由于要判断所以又加了js

function $(elementId){
    return document.getElementById(elementId).value;
}
function divId(elementId){
    return document.getElementById(elementId);
}
//验证用户名
var flag1=false;
var flag2=false;
var flag3=false;
var flag4=false;


function checkUser(){

    var user=$("name");
    var userId=divId("user_prompt");
    userId.innerHTML="";
    var reg=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/;

    if(reg.test(user)==false){
        userId.innerHTML="用户名不正确";
        document.getElementById("bot").disabled=true;
        flag1=false;

    }  else

    {
    flag1=true;}

    checkall();
}
function checkall() {

    if(flag1&&flag2&&flag3&&flag4)
        document.getElementById("bot").disabled = false;


}
//确认密码是否规范
function checkPwd(){
    var flagb=Boolean(true);
    var pwd=$("pwd");
    var pwdId=divId("pwd_prompt");
    pwdId.innerHTML="";
    var reg=/^[a-zA-Z0-9]{4,10}$/;
    if(reg.test(pwd)==false){
        pwdId.innerHTML="密码不能含有非法字符,长度在4-10之间";
        document.getElementById("bot").disabled=true;
        flag2=false;
    }  else

    {
    flag2=true;}
    checkall();
}
//确认密码是否一致
function checkRepwd(){
    var flagc=Boolean(true);
    var repwd=$("repwd");
    var pwd=$("pwd");
    var repwdId=divId("repwd_prompt");
    repwdId.innerHTML="";
    if(pwd!=repwd){
        repwdId.innerHTML="两次输入的密码不一致";
        document.getElementById("bot").disabled=true;
        flag3=false;
    }


    else

    {
    flag3=true;}
    checkall();
}

//电话号码验证
function checkMobile(){
    var flagd=Boolean(true);
    var mobile=$("mno");
    var mobileId=divId("mobile_prompt");
    var regMobile=/^1\d{10}$/;
    if(regMobile.test(mobile)==false){
        mobileId.innerHTML="手机号码不正确,请重新输入";
        document.getElementById("bot").disabled=true;
        flag4=false;
    }
    else

    {mobileId.innerHTML="";
    flag4=true;}
    checkall();
}

 

posted @ 2018-12-05 21:14  Cinex  阅读(512)  评论(0编辑  收藏  举报