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

📄 loginservlet.java

📁 JAVA案例开发集锦源代码 袁然 郑自国编
💻 JAVA
字号:
package testserv;

/**
  * 用servlet登陆程序
   */
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;


public class loginServlet extends HttpServlet {
  static final private String CONTENT_TYPE = "text/html; charset=GBK";
  Connection connection;                         // 创建连接对象
  Vector userinfo;                               // 定义向量存入个人注册信息
  Vector userbaseinfo;                           // 定义向量存入用户名及密码

  public void init() throws ServletException {
    connection = null;
    userinfo = new Vector();
    userbaseinfo = new Vector();
  }

  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 = request.getParameter("username");             // 获得登陆用户名
    String password = request.getParameter("password");         // 获得登陆密码
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>登录界面</title></head>");
    out.println("<body>");
    boolean loginning= false;
    if ((loginning=login(name, password))==true)                // 判断数据库中是否有用户名
    {
      boolean right_pass = validate(password);               // 检测用户密码是否正确
      if (right_pass)
      {
        getUserInfo(name, password);                          // 调用个人注册信息,分别赋值给字符串变量
        String truename = String.valueOf(userinfo.elementAt(0));
        String age = String.valueOf(userinfo.elementAt(1));
        String sex = String.valueOf(userinfo.elementAt(2));
        String mail = String.valueOf(userinfo.elementAt(3));
        String tel = String.valueOf(userinfo.elementAt(4));
        // 显示个人注册信息
        out.println("<p align=center>用户名:" + name + "</p>");
        out.println("<p align=center>用户姓名:" + truename + "</p>");
        out.println("<p align=center>年龄:" + age + "</p>");
        out.println("<p align=center>性别:" + sex + "</p>");
        out.println("<p align=center>邮件地址:" + mail + "</p>");
        out.println("<p align=center>电话:" + tel + "</p>");
      }
      else                // 处理密码不正确情况
      {
        out.println("密码不正确!<br>");
        out.println("<p align=center><a href='login.htm'>重新登录</a></p>");
      }
    }
    else                 // 处理用户名不存在情况
    {
      out.println("用户名不存在!<br>");
      out.println("<p align=center><a href='login.htm'>重新登录</a></p>");
    }
    out.println("</body></html>");
  }

  public void destroy() {
  }

  public boolean login(String name, String password)
  {
    boolean loginning= false;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                // 实例化JDBC-ODBC桥的驱动
      String url = "jdbc:odbc:login";                               // 设置连接字符串
      connection = DriverManager.getConnection(url);                // 连接数据库
      Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      String sql = "select * from userbase where user_name = '" + name + "'";
      ResultSet resultset = statement.executeQuery(sql);
      int recordCount = 0;
      while(resultset.next())
      {
        recordCount++;
      }
      if (recordCount>0)                                            // 判断数据库表userbase中是否有用户信息
      {
        userbaseinfo.clear();
        resultset.first();
        userbaseinfo.addElement(resultset.getString("user_name"));         // 将个人信息存入向量对象userbase_Vec中
        userbaseinfo.addElement(resultset.getString("user_password"));
        loginning= true;
      }
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }// 捕捉异常
    return loginning;
  }

  public void getUserInfo(String name, String password)
  {
    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 userinfo where user_name = '" + name + "' and user_password = '" + password + "'";
      ResultSet resultset = statement.executeQuery(sql);
      resultset.next();
      userinfo.clear();
      // 将个人注册信息存入向量用户信息中
      userinfo.addElement(resultset.getString("user_truename"));
      userinfo.addElement(resultset.getString("user_age"));
      userinfo.addElement(resultset.getString("user_sex"));
      userinfo.addElement(resultset.getString("user_mail"));
      userinfo.addElement(resultset.getString("user_tel"));
    }
    catch(Exception ex)                                     // 捕捉异常
    {
      ex.printStackTrace();
    }
  }

  public boolean validate(String password)                 // 定义验证密码函数
  {
    boolean pass = false;
    if (password.equals(String.valueOf(userbaseinfo.elementAt(1))))
    {
      pass = true;
    }
    return pass;
  }
}

⌨️ 快捷键说明

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