瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

百度新知低调上线 注册教程

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

人气:1引自:安卓手机APP

6月8日,在上个月传闻将要推出的百度问答网站“新知”(http://xinzhi.baidu.com)已经悄然上线,目前需要邀请码才能注册登录。

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

作者:imagebear版权:imagebear

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

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

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

//DBConn.java

//include required classesimport 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=true&characterEncoding=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;  } }

                //此方法用于获取大段文本,                //将其中的回车换行替换为                //输出到html页面 public String rs_getHtmlString(String column) {  try{   String str1 = this.rs.getString(column);   String str2 = \r\n";   String str3 = ";   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 classesimport 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","[email protected]"));      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 classesimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.sql.*;

//class loginpublic 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;i                    copyright© 2003 Shopping123   至此,我们已经完成了一个用户注册、登录的系统。 因为这是本人自己边学边做完成的,所以代码一定有很多不完善的地方,欢迎大家批评指正。 以上所有代码均经本人测试通过。

专题文集:JSP实例 windows
引用标题:《百度新知低调上线 注册教程》
来源地址:https://www.sdruilu.cn/index.php/news/tpart-29154.html