⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registerservlet.java

📁 电子工业出版社的<Java案例开发集锦>一书源代码
💻 JAVA
字号:
package testserv;
/**
   * 用servlet登陆注册
   */
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;


public class registerServlet extends HttpServlet {
  static final private String CONTENT_TYPE = "text/html; charset=GBK";
  Connection connection;
         // 定义Connection接口对象connection
  public void init() throws ServletException {
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获得个人注册信息并存入对应的字符串变量中
    String name = new String(request.getParameter("name").getBytes("8859_1"));
    String password = new String(request.getParameter("password").getBytes("8859_1"));
    String pass_confirm = new String(request.getParameter("pass_confirm").getBytes("8859_1"));
    String truename = new String(request.getParameter("truename").getBytes("8859_1"));
    String age_str = new String(request.getParameter("age").getBytes("8859_1"));
    int age = Integer.parseInt(age_str);
    String sex = new String(request.getParameter("sex").getBytes("8859_1"));
    String mail = new String(request.getParameter("mail").getBytes("8859_1"));
    String tel = new String(request.getParameter("tel").getBytes("8859_1"));
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>用户注册</title></head>");
    out.println("<body>");
    boolean existed = checkUser(name);                         // 检测数据库中是否存在重名
    if (existed)                                               // 有重名处理情况
    {
      out.println("<p align=center>对不起,此用户名已经存在!</p>");
      out.println("<p align=center><a href='register.htm'>返回</a></p>");   // 返回注册页
    }
    else                                                       // 不存在重名处理情况
    {
      boolean identical = checkPass(password, pass_confirm);   // 检测密码和密码确认是否一致
      if (!identical)                                          // 处理密码不一致情况
      {
        out.println("<p align=center>密码不一致!</p>");
        out.println("<p align=center><a href='register.htm'>返回</a></p>");
      }
      else                                                      // 处理密码一致情况
      {
        String sql_base = "insert into userbase(user_name, user_password) values ('" + name + "', '" + password + "')";
        String sql_info = "insert into userinfo(user_name, user_password, user_truename, user_age, user_sex, user_mail, user_tel) values ";
        sql_info+= "('" + name + "', ";
        sql_info+= "'" + password + "', ";
        sql_info+= "'" + truename + "', ";
        sql_info+= "" + age + ", ";
        sql_info+= "'" + sex + "', ";
        sql_info+= "'" + mail + "', ";
        sql_info+= "'" + tel + "')";
        boolean success = addRecord(sql_base, sql_info);    // 向表userbase和userinfo中添加个人注册信息
        if (success)
        {
          out.println("注册成功!<br>");
        }
        else
        {
          out.println("注册失败,请稍后再试!<br>");
        }
        out.println("<p align=center><a href='login.htm'>返回主页</a></p>");
      }
    }
    out.println("</body></html>");
  }

  public void destroy() {
  }

  public boolean checkUser(String name)                        // 检测是否存在用户名函数
  {
    boolean existed = false;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");           // 实例化JDBC-ODBC桥的驱动
      String url = "jdbc:odbc:login";                          // 设置连接字符串
      connection = DriverManager.getConnection(url);           // 连接数据库
      // 创建Statement接口对象
      Statement statement = connection.createStatement();
      String sql = "select * from userbase where user_name = '" + name + "'";
      ResultSet rs = statement.executeQuery(sql);
      int recordCount = 0;
      while(rs.next())
      {
        recordCount++;
      }
      if (recordCount>0)
      {
        existed = true;
      }
    }
    catch(Exception ex)                                        // 处理异常
    {
      ex.printStackTrace();
    }
    return existed;
  }

  public boolean checkPass(String password, String pass_confirm) // 检测密码和密码确认是否一致函数
  {
    boolean identical = true;
    if (!password.equals(pass_confirm))
    {
      identical = false;
    }
    return identical;
  }

  public boolean addRecord(String sql_base, String sql_info)    // 添加记录函数
  {
    boolean made = false;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");            // 实例化JDBC-ODBC桥的驱动
      String url = "jdbc:odbc:login";                           // 设置连接字符串
      connection = DriverManager.getConnection(url);            // 连接数据库
      // 创建Statement接口对象
      Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      statement.executeUpdate(sql_base);                        // 向userbase表中插入数据
      statement.close();                                        // 关闭statement对象
      statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      statement.executeUpdate(sql_info);                        // 向userinfo表中插入数据
      statement.close();                                        // 关闭statement对象
      made = true;
    }
    catch(Exception ex)                                         // 异常处理
    {
      ex.printStackTrace();
    }
    return made;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -