zoukankan      html  css  js  c++  java
  • JSP前后台交互实现注册、登录功能

    一、注册功能

    1、html页面

      登录界面

          <div class="mid_main">
                    <div class="title">
                    
                    </div>
                    <form action="<%=path %>/loginCheck" method="post">
                        <input type="text" name="userName" placeholder="用户名" class="input1"><br>
                        <input type="password" name="pwd" placeholder="密码" class="input2"><br>
                        <input type="submit" name="sub" value="立即登录" class="submit"><br>
                    </form>
                    <span id="re" onclick="Click()">没有账号?点我注册</span>
                </div>

      注册界面 ,将值传给servlet

           <div class="reg">
                    <span class="tit">注册</span>
                    <form action="<%=path %>/registeManage" method="post">
                        <span>用户名:</span><input type="text" name="user" placeholder="请输入用户名" id="user"><br>
                        <span>密码:</span><input type="password" name="password" placeholder="请输入密码" id="pas"><br>
                        <span>再次输入:</span><input type="password" name="repassword" placeholder="重复密码" id=repas><br>
                        <input type="button" value="注册"  id="sub2" onclick="zhuce()">
                        <input type="button" value="取消"  id="cancle" onclick="quxiao()">
                        
                    </form>
                </div>

    2、js代码

    function Click(){
        document.getElementsByClassName("mid_main")[0].style.display="none";
        document.getElementsByClassName("reg")[0].style.display="block";
        
    }
    function quxiao(){
        document.getElementById("user").value="";
        document.getElementById("pas").value="";
        document.getElementById("repas").value="";
        document.getElementsByClassName("reg")[0].style.display="none";
        document.getElementsByClassName("mid_main")[0].style.display="block";
    }
    
    function zhuce(){
        var user=document.getElementById("user").value;
        var pas=document.getElementById("pas").value;
        var repas=document.getElementById("repas").value;
        var reg=/^w{3,}$/;
        if(reg.test(pas)==true &&user.length>0&&pas==repas){
            //提交表单
            document.forms[1].submit();
        }else{
            if(user.length==0){
                alert("用户名不能为空");
                return;
            }else if(reg.test(pas)==false){
                alert("格式错误,必须为字母数字下划线,至少3位");
                return;
            }else if(pas!=repas){
                alert("两次输入不一致");
                return;
            }
        }
        alert("注册成功!");
        document.getElementsByClassName("reg")[0].style.display="none";
        document.getElementsByClassName("mid_main")[0].style.display="block";
    }

    3、servlet中获取值

          //设置编码格式
                request.setCharacterEncoding("utf-8");
                
                String user=request.getParameter("user");
                String password=request.getParameter("password");
                
                //插入数据库
                boolean isSuccess= registeUserWithInfo(user, password);
                if(isSuccess){
                    //跳转到登录页
                    response.sendRedirect(request.getContextPath()+"/prac02/login.jsp");
                }else{
                    //跳转到注册界面
                    response.sendRedirect(request.getContextPath()+"/prac02/login.jsp");
                }

    4、操作数据库的 registeUserWithInfo()方法

        public boolean  registeUserWithInfo(String user,String pwd){
            Connection conn=null;
            PreparedStatement pstmt=null;
            try {
                //1、加载驱动类
                Class.forName("oracle.jdbc.driver.OracleDriver");
                //2、获取数据库连接
                conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","ajeesia","123456");
                //3、加载句柄
                String sql="insert into  t_registe values(?,?,?)";
                pstmt= conn.prepareStatement(sql);
                    
                int index=findMainIndex();
                pstmt.setObject(1, index);
                pstmt.setObject(2, user);
                pstmt.setObject(3, pwd);
                    
                    
                int count =pstmt.executeUpdate();
                return count>0;
                    
    
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    pstmt.close();
                    conn.close();
                    
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return false;
            
        }

    二、登录功能

    1、传值给servlet

              <form action="<%=path %>/loginCheck" method="post">
                        <input type="text" name="userName" placeholder="用户名" class="input1"><br>
                        <input type="password" name="pwd" placeholder="密码" class="input2"><br>
                        <input type="submit" name="sub" value="立即登录" class="submit"><br>
                    </form>

    2、servlet中获取值

            request.setCharacterEncoding("utf-8");
            
            String userName=request.getParameter("userName");
            String pwd=request.getParameter("pwd");
    
    
                if(isExist(userName, pwd)){
                //登录成功,跳转到
                response.sendRedirect("studentsManage");
            }else{
                //登录失败
                response.sendRedirect("prac02/login.jsp");
            }
            

    3、操作数据库的isExist()方法

    /**
         * 返回值为false表示登录失败
         * @param userName
         * @param pwd
         * @return
         */
        public boolean isExist(String userName,String pwd){
            
            Connection conn=null;
            PreparedStatement pstmt=null;
            ResultSet rs=null;
            
            
            //校验是否成功,默认失败
            boolean flag=false;
            try {
                //加载驱动类
                Class.forName("oracle.jdbc.driver.OracleDriver");
                
                //获取数据库连接
                conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","ajeesia","123456");
    
                //加载句柄
                String sql="select * from t_registe where userName=? and pwd=?";
                
                pstmt=conn.prepareStatement(sql);
                
                pstmt.setObject(1, userName);
                pstmt.setObject(2, pwd);
                
                //执行sql语句,返回结果集
                rs=pstmt.executeQuery();
                
                //遍历结果集
                flag=rs.next();
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    if(rs!=null)rs.close();
                    if(pstmt!=null)pstmt.close();
                    if(conn!=null)conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
            return flag;
            
        }
  • 相关阅读:
    java 学习帮助
    权限
    ftp mybatis
    注解
    hadoop english
    userDao
    发布订阅模式 和委托
    webservice
    rabbitMq视频教程
    blog url.txt
  • 原文地址:https://www.cnblogs.com/1960366876tZ/p/9097029.html
Copyright © 2011-2022 走看看