• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在jsp中用bean和servlet联合实现用户注册、登录

    声明:作者原创,版权所有。未经授权,不得转载
    在jsp中用bean和servlet联合实现用户注册、登录

    作者:imagebear
    版权:imagebear

    本例需要的软件和运行环境:
    1、Windows2000 Server操作系统
    2、jdk1.4
    3、JCreator2.5(java源码编辑调试器,吐血推荐!)
    4、Macromedia JRun MX
    5、Macromedia Dreamweaver MX(非必需)
    6、MySQL数据库(最好安装MySQL Control Center)

    一、数据库设计
    用MySQL Control Center打开MySQL数据库,新建数据库shopping,在其下新建表tbl_user,其中各字段设置如下:


    二、编写连接数据库bean:DBConn.java


    //DBConn.java

    //include required classes
    import java.sql.*;

    //==========================================
    // Define Class DBConn
    //==========================================
    public class DBConn
    {
     public String sql_driver = "org.gjt.mm.mysql.Driver";
     public String sql_url = "jdbc:mysql://localhost:3306";
     public String sql_DBName = "shopping";
     public String user = "sa";
     public String pwd = ";

     Connection conn = null;
     Statement stmt = null;
     ResultSet rs = null;

     public boolean setDriver(String drv)
     {
      this.sql_driver = drv;
      return true;
     }

     public String getDriver()
     {
      return this.sql_driver;
     }

     public boolean setUrl(String url)
     {
      this.sql_url = url;
      return true;
     }

     public boolean setDBName(String dbname)
     {
      this.sql_DBName = dbname;
      return true;
     }

     public String getDBName()
     {
      return this.sql_DBName;
     }

     public boolean setUser(String user)
     {
      this.user = user;
      return true;
     }

     public String getUser()
     {
      return this.user;
     }

     public boolean setPwd(String pwd)
     {
      this.pwd = pwd;
      return true;
     }

     public String getPwd()
     {
      return this.pwd;
     }

     public DBConn()
     {
      try{
       Class.forName(sql_driver);//加载数据库驱动程序
       this.conn = DriverManager.getConnection(sql_url + "/" + sql_DBName + "?user=" + user + "password=" + pwd + "useUnicode=truecharacterEncoding=gb2312");
       this.stmt = this.conn.createStatement();
      }catch(Exception e){
       System.out.println(e.toString());
      }
     }

                    //执行查询操作
     public ResultSet executeQuery(String strSql)
     {
      try{
       this.rs = stmt.executeQuery(strSql);
       return this.rs;
      }catch(SQLException e){
       System.out.println(e.toString());
       return null;
      }catch(NullPointerException e){
       System.out.println(e.toString());
       return null;
      }
     }

                    //执行数据的插入、删除、修改操作
     public boolean execute(String strSql)
     {
      try{
       if(this.stmt.executeUpdate(strSql) == 0)
        return false;
       else
        return true;
      }catch(SQLException e){
       System.out.println(e.toString());
       return false;
      }catch(NullPointerException e){
       System.out.println(e.toString());
       return false;
      }
     }

                    //结果集指针跳转到某一行
     public boolean rs_absolute(int row)
     {
      try{
       this.rs.absolute(row);
       return true;
      }catch(SQLException e){
       System.out.println(e.toString());
       return false;
      }
     }

     public void rs_afterLast()
     {
      try{
       this.rs.afterLast();
      }catch(SQLException e){
       System.out.println(e.toString());
      }
     }

     public void rs_beforeFirst()
     {
      try{
       this.rs.beforeFirst();
      }catch(SQLException e){
       System.out.print(e.toString());
      }
     }

     public void rs_close()
     {
      try{
       this.rs.close();
      }catch(SQLException e){
       System.out.print(e.toString());
      }
     }

     public void rs_deleteRow()
     {
      try{
       this.rs.deleteRow();
      }catch(SQLException e){
       System.out.print(e.toString());
      }
     }

     public boolean rs_first()
     {
      try{
       this.rs.first();
       return true;
      }catch(SQLException e){
       System.out.print(e.toString());
       return false;
      }
     }

     public String rs_getString(String column)
     {
      try{
       return this.rs.getString(column);
      }catch(SQLException e){
       System.out.println(e.toString());
       return null;
      }
     }

                    //此方法用于获取大段文本,
                    //将其中的回车换行替换为br>
                    //输出到html页面
     public String rs_getHtmlString(String column)
     {
      try{
       String str1 = this.rs.getString(column);
       String str2 = "\r\n";
       String str3 = "br>";
       return this.replaceAll(str1,str2,str3);
      }catch(SQLException e){
       System.out.println(e.toString());
       return null;
      }
     }

                    //把str1字符串中的str2字符串替换为str3字符串
     private static String replaceAll(String str1,String str2,String str3)
     {
      StringBuffer strBuf = new StringBuffer(str1);
         int index=0;
      while(str1.indexOf(str2,index)!=-1)
      {
       index=str1.indexOf(str2,index);
       strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3);
       index=index+str3.length();

        str1=strBuf.toString();
      }
      return strBuf.toString();
     }

     public int rs_getInt(String column)
     {
      try{
       return this.rs.getInt(column);
      }catch(SQLException e){
       System.out.println(e.toString());
       return -1;
      }
     }

     public int rs_getInt(int column)
     {
      try{
       return this.rs.getInt(column);
      }catch(SQLException e){
       System.out.println(e.toString());
       return -1;
      }
     }

     public boolean rs_next()
     {
      try{
       return this.rs.next();
      }catch(SQLException e){
       System.out.println(e.toString());
       return false;
      }
     }

                    //判断结果集中是否有数据
     public boolean hasData()
     {
      try{
       boolean has_Data = this.rs.first();  
       this.rs.beforeFirst();
       return has_Data;
      }catch(SQLException e){
       System.out.println(e.toString());
       return false;
      }
     }

     public boolean rs_last()
     {
      try{
       return this.rs.last();
      }catch(SQLException e){
       System.out.println(e.toString());
       return false;
      }
     }

     public boolean rs_previous()
     {
      try{
       return this.rs.previous();
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
      }
     }

                    //main方法,调试用
     public static void main(String args[])
     {
      try{
       DBConn myconn = new DBConn();
       //myconn.setDBName("shopping");
       //myconn.DBConn();
       //myconn.execute("Insert Into tbl_test(id,name) values('10','shandaer')");
       //myconn.execute("Update tbl_test set name='yyyyyyyyyyyy' where id=10");
       //myconn.execute("Delete from tbl_test where id=1");
       ResultSet rs = myconn.executeQuery("select * from tbl_user order by id desc limit 1");
       //boolean hasData = myconn.hasData();
       //System.out.println("has data:" + hasData);
       //rs.first();
       while (myconn.rs.next()) 
       {
        int id = myconn.rs_getInt("id") + 1;
        System.out.print(id);
        System.out.println(myconn.rs_getInt("id") + myconn.rs_getString("name"));

        //System.out.println('\n' + myconn.rs_getHtmlString("name"));
        //System.out.println(myconn.rs.getString("name") + myconn.rs_getInt(1));
       }
      }catch(Exception e){
       System.err.println(e.toString());
      }
     }

    }

    声明:因为使用的是MySQL数据库,所以需要MySQL数据库的驱动
    下载后请将org包放至DBConn.java所在目录下
    以确保该bean能正常运行

     

    三、编写用户注册的bean:reg.java


    //reg.java

    //import required classes
    import java.sql.*;

    public class reg
    {
     public int newID = 0;
     public boolean result = false;
     public boolean reg(String username,String password,String confirm,String email)
     {
      try{
       if(!this.checkUser(username))
        return false;
       if(!this.checkPwd(password))
        return false;
       if(!this.verifyPwd(password,confirm))
        return false;
       if(!this.checkEmail(email))
        return false;
       if(!this.userNotExit(username))
        return false;
       this.getNewID(); 
       this.result = this.register(username,password,confirm,email);
       return this.result;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
      }
     }//End boolean reg

     public boolean checkUser(String user)
     {
      try{  
       if(user.indexOf("'")!=-1)
       {
        System.out.println("姓名中含有非法字符!");
        return false;
       }else
        return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
       }
     }

     public boolean checkPwd(String pwd)
     {
      try{
       if(pwd.indexOf("'")!=-1)
       {
        System.out.println("密码中含有非法字符!");
        return false;
       }else
        return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
      }
     }

     public boolean verifyPwd(String pwd,String confirm)
     {
      try{
       if(!pwd.equals(confirm))
       {
        System.out.println("两次输入的密码不一致!");
        return false;
       }else
        return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
      }
     }

     public boolean checkEmail(String email)
     {
      try{
       if(email.indexOf("'")!=-1)
       {
        System.out.println("E-mail中含有非法字符!");
        return false;
       }else
        return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
      }
     }

     public boolean userNotExit(String user)
     {
      try{
       DBConn userDBConn = new DBConn();
       userDBConn.executeQuery("select * from tbl_user where name='" + user + "'");
       if(userDBConn.rs_next())
       {
        System.out.println("用户名已存在,请选择其它的用户名!");
        return false;
       }else
        return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
       }
     }

     public int getNewID()
     {
      try{
       DBConn newIDDBConn = new DBConn();
       newIDDBConn.executeQuery("select * from tbl_user order by id desc limit 1");
       if(newIDDBConn.rs_next())
       {
        this.newID = newIDDBConn.rs_getInt("id") + 1;
        System.out.println(this.newID);
       }else{
        this.newID = 1;
       }
       return this.newID;
      }catch(Exception e){
       System.out.println(e.toString());
       return -1;
       }   
     }

     public int getID()
     {
      return this.newID;
     }

     public boolean register(String username,String password,String confirm,String email)
     {
      try{
       DBConn regDBConn = new DBConn();
       String strSQL = "insert into tbl_user(id,name,pwd,email) values('" + this.newID +"','" + username + "','" + password + "','" + email + "')";
       regDBConn.execute(strSQL);
       return true;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
       }
     }

     public static void main(String args[])
     {
      try{

       reg newreg = new reg();  

       System.out.println(newreg.reg("sssssssss","ssssss","ssssss","imagebear@163.com"));

       DBConn myconn = new DBConn();
       myconn.executeQuery("select * from tbl_user");
       while(myconn.rs_next())
       {
        System.out.println(myconn.rs_getInt("id") + "    " + myconn.rs_getString("name") + "    " + myconn.rs_getString("pwd") + "    " + myconn.rs_getString("email"));
       }
       System.out.println(newreg.getID());
      }catch(Exception e){
       System.err.println(e.toString());
      }
     }
    };

    说明:
    1、该bean文件应和上文所述DBConn.class文件放于同一目录下
    2、本例主要研究注册的过程,其中的Email检测等方法并不完善,若要应用请自行设计方法

     


    四、编写用户登陆的Servlet:login.java


    //login.java

    //import required classes
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;

    //class login
    public class login extends HttpServlet
    {
     public void doGet(HttpServletRequest req,HttpServletResponse res)
     throws IOException,ServletException
     {
      String username = req.getParameter("username");
      String password = req.getParameter("password");
      if(this.checklogin(username,password))
      {
       Cookie mylogin = new Cookie("username",username);
       mylogin.setVersion(1);
       mylogin.setPath("/");
       mylogin.setComment("Your login username");
       res.addCookie(mylogin);
      }
      //Cookie[] myCookies = req.getCookies();
      //String nameValue = this.getCookieValue(myCookies,"username","not found");
      //PrintWriter out = res.getWriter();
      //out.println("username" + ":" + nameValue);
      //out.println("Test Cookie Success!");
      res.sendRedirect("/index.jsp");
     }

     public void doPost(HttpServletRequest req,HttpServletResponse res)
     throws IOException,ServletException
     {
      doGet(req,res);
     }

     public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
     {
      for(int i=0;icookies.length;i++) {
      Cookie cookie = cookies[i];
      if (cookieName.equals(cookie.getName()))
      return(cookie.getValue());
     }
      return(defaultValue);
     }



     public boolean checklogin(String username,String password)
     {
      try{
       DBConn loginConn = new DBConn();
       loginConn.executeQuery("select * from tbl_user where name='" + username + "'");
       if(loginConn.rs_next())
       {
        System.out.println("Connection created!");
        if(loginConn.rs_getString("pwd").trim().equals(password))
        {
         System.out.println(loginConn.rs_getString("name"));
         return true;
        }
        else
        {
         return false;
        }
       }
       System.out.println("Test Login Success!");
       return false;
      }catch(Exception e){
       System.out.println(e.toString());
       return false;
       }
     }

     public static void main(String args[])
     {
      login mylogin = new login();
      System.out.println(mylogin.checklogin("shandong","shandong"));
     }

    }

    说明:
    1、默认的jdk1.4中并没有servlet包,请至sun公司网页下载servlet.jar,放至jdk目录下的jre\lib\目录下,并在JCreator中设置jdk处添加servlet.jar包 

    2、本Servlet用于检验用户名和密码,若正确则将用户名写入Cookie,完成后将当前页重定向到index.jsp页

     


    五、编写检测用户是否已经登陆的bean:checkLogin.java

    //checkLogin.java

    //import required classes
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    //class checkLogin
    public class checkLogin
    {
     public String username = ";

     public boolean check(HttpServletRequest req,HttpServletResponse res)
     throws IOException,ServletException
     {
      String cookieName = "username";
      Cookie[] myCookies = req.getCookies();
      this.username = this.getCookieValue(myCookies,cookieName,"not found");
      PrintWriter out = res.getWriter();
      if(this.username != null)
      {  
       //out.println("早上好," + this.username + "!");
       return true;
      }else{
       out.println("登陆失败!");
       return false;
       }

     }

     public String getUserName()
     {
      return this.username;
     }

     public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue)
     {
      for(int i=0;icookies.length;i++) {
      Cookie cookie = cookies[i];
      if (cookieName.equals(cookie.getName()))
      return(cookie.getValue());
     }
      return(defaultValue);
     }
    }

    说明:此bean检测cookie中的username,若不为空则说明已登录,反之说明没有登录。方法不够完善,您可以自行扩充。

     


    六、在JRun中建立shopping服务器
    打开JRun Administrator,新建shopping服务器,这里端口为8101。
    将上文所述所有编译后的class文件连同org包拷至JRun的shopping服务器所在目录中的classes文件夹下,路径为:


    C:\JRun4\servers\shopping\default-ear\default-war\WEB-INF\classes\

    七、建立jsp文件
    应用DW,在C:\JRun4\servers\shopping\default-ear\default-war\目录下新建如下的jsp文件:
    index.jsp:


    %@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
    html>
    head>
    title>Shopping123/title>
    meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
    /head>
    body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
    jsp:useBean id="checklogin" class="checkLogin" scope="page"/>
    %
     boolean login = checklogin.check(request,response);
    %>
    table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
      tr bgcolor="#990000">
        td height="80" colspan="5">table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
            tr>
              td width="120">nbsp;/td>
              td class="caption">Shopping123/td>
              td width="200">nbsp;/td>
            /tr>
          /table>/td>
      /tr>
      tr>
        td width="200" align="center" valign="top">table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
            tr>
              td>nbsp;/td>
            /tr>
          /table>
       %
        if(!login){
       %>
          table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
       form name="form1" method="post" action="/servlet/login">
            tr align="center" bgcolor="#CCCCCC">
              td height="30" colspan="2" class="deepred">卖场入口/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员/td>
              td align="center" bgcolor="#FFFFFF">input name="username" type="text" id="username" size="10">/td>
            /tr>
            tr>
              td height="24" align="center" bgcolor="#FFFFFF">密码/td>
              td align="center" bgcolor="#FFFFFF">input name="password" type="text" id="password" size="10">/td>
            /tr>
            tr>
              td height="24" align="center" bgcolor="#FFFFFF">a href="reg.jsp" target="_blank" class="red">注册/a>/td>
              td align="center" bgcolor="#FFFFFF">input type="submit" name="Submit" value="进入">/td>
            /tr>
      /form>
          /table>
       %
        }
      else
      {
       out.println("您好," + checklogin.getUserName() + "!");
      }
       %>
       /td>
     td width="1" valign="top" bgcolor="#CCCCCC">/td>
        td width="400">nbsp;/td>
     td width="1" valign="top" bgcolor="#CCCCCC">/td>
        td width="200">nbsp;/td>
      /tr>
      tr align="center" bgcolor="#990000">
        td height="60" colspan="5" class="white">copyrightcopy; 2003 Shopping123/td>
      /tr>
    /table>
    /body>
    /html>


    reg.jsp%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
    html>
    head>
    title>Shopping123/title>
    meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
    /head>
    body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
    table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
      tr bgcolor="#990000">
        td height="80" colspan="5">table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
            tr>
              td width="120">nbsp;/td>
              td class="caption">Shopping123/td>
              td width="200">nbsp;/td>
            /tr>
          /table>/td>
      /tr>
      tr>
        td width="100" align="center" valign="top">nbsp;/td>
        td width="1" valign="top">/td>
        td width="400" align="center" valign="top">table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
            tr>
              td>nbsp;/td>
            /tr>
          /table>
          table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
       form action="regpost.jsp" method="post" name="form1">
            tr align="center">
              td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">会员注册/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员/td>
              td align="center" bgcolor="#FFFFFF">input name="username" type="text" id="username" size="16">/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">密码/td>
              td align="center" bgcolor="#FFFFFF">input name="password" type="password" id="password" size="16">/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">验证密码/td>
              td align="center" bgcolor="#FFFFFF">input name="confirm" type="password" id="confirm" size="16">/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">E-mail/td>
              td align="center" bgcolor="#FFFFFF">input name="email" type="text" id="email" size="16">/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">input type="submit" name="Submit" value="重写">/td>
              td align="center" bgcolor="#FFFFFF">input type="submit" name="Submit2" value="注册">/td>
            /tr>
      /form>
          /table>/td>
        td width="1" valign="top">/td>
        td width="100">nbsp;/td>
      /tr>
      tr align="center" bgcolor="#990000">
        td height="60" colspan="5" class="white">copyrightcopy; 2003 Shopping123/td>
      /tr>
    /table>
    /body>
    /html>
     regpost.jsp:注册表单提交页面%@ page contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
    %@ page import="reg"%>
    html>
    head>
    title>Shopping123/title>
    meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    link href="styles/shoppingstyle.css" rel="stylesheet" type="text/css">
    /head>
    body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
    %
     String username = new String(request.getParameter("username").getBytes("ISO8859_1")).trim();
     String password = new String(request.getParameter("password").getBytes("ISO8859_1")).trim();
     String confirm = new String(request.getParameter("confirm").getBytes("ISO8859_1")).trim();
     String email = new String(request.getParameter("email").getBytes("ISO8859_1")).trim();
    %>
    table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
      tr bgcolor="#990000">
        td height="80" colspan="5">table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
            tr>
              td width="120">nbsp;/td>
              td class="caption">Shopping123/td>
              td width="200">nbsp;/td>
            /tr>
          /table>/td>
      /tr>
      tr>
        td width="100" align="center" valign="top">nbsp;/td>
        td width="1" valign="top">/td>
        td width="400" align="center" valign="top">
    table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">
            tr>
              td>nbsp;/td>
            /tr>
          /table>
    jsp:useBean id="regID" class="reg" scope="session"/>
    %
     if(regID.reg(username,password,confirm,email))
     {
      out.print("ok");
      String newID = regID.getID() + ";
    %>
          table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
            tr align="center">
              td height="30" colspan="2" bgcolor="#CCCCCC" class="deepred">恭喜您,注册成功!/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">编号/td>
              td align="center" bgcolor="#FFFFFF">%=newID%>/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">会员/td>
              td align="center" bgcolor="#FFFFFF">%=username%>/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">密码/td>
              td align="center" bgcolor="#FFFFFF">%=password%>/td>
            /tr>
            tr>
              td width="50%" height="24" align="center" bgcolor="#FFFFFF">E-mail/td>
              td align="center" bgcolor="#FFFFFF">%=email%>/td>
            /tr>
          /table>
    %
      out.print("br>");
      out.print("a href=javascript:window.close()>关闭/a>");
     }else{
      out.print("注册失败!br>");
      out.print("该用户名已有人使用,请使用另外的用户名!");
      out.print("a href=javascript:history.go(-1)>返回/a>");
     }
    %>
       /td>
        td width="1" valign="top">/td>
        td width="100">nbsp;/td>
      /tr>
      tr align="center" bgcolor="#990000">
        td height="60" colspan="5" class="white">copyrightcopy; 2003 Shopping123/td>
      /tr>
    /table>
    /body>
    /html>
     至此,我们已经完成了一个用户注册、登录的系统。 因为这是本人自己边学边做完成的,所以代码一定有很多不完善的地方,欢迎大家批评指正。 以上所有代码均经本人测试通过。

    您可能感兴趣的文章:
    • js简单实现用户注册信息的校验代码
    • 用户注册常用javascript代码
    • JS实现用户注册时获取短信验证码和倒计时功能
    • php用户注册页面利用js进行表单验证具体实例
    • 用于判断用户注册时,密码强度的JS代码
    • javascript用户注册提示效果的简单实例
    • 快速搭建Node.js(Express)用户注册、登录以及授权的方法
    • Nodejs实现用户注册功能
    • js实现用户注册协议倒计时的方法
    • 用js实现用户注册功能
    上一篇:使用JSP开发WebMail系统
    下一篇:在Linux环境下安装JSP
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在jsp中用bean和servlet联合实现用户注册、登录 在,jsp,中用,bean,和,servlet,