📄 loginservlet.java
字号:
package loginservlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import java.sql.*;/** * Title: 使用servlet用户登陆程序 * Description: 教学示范 * Copyright: Copyright (c) 2003 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */public class loginServlet extends HttpServlet { static final private String CONTENT_TYPE = "text/html; charset=GBK"; Connection connection; // 创建连接对象 Vector user_Vec; // 定义向量存入个人注册信息 Vector userbase_Vec; // 定义向量存入用户名及密码 public void init() throws ServletException { connection = null; user_Vec = new Vector(); userbase_Vec = 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 logined = false; if ((logined=login(name, password))==true) // 判断数据库中是否有用户名 { boolean right_pass = checkpass(password); // 检测用户密码是否正确 if (right_pass) { getUserInfo(name, password); // 调用个人注册信息,分别赋值给字符串变量 String truename = String.valueOf(user_Vec.elementAt(0)); String age = String.valueOf(user_Vec.elementAt(1)); String sex = String.valueOf(user_Vec.elementAt(2)); String mail = String.valueOf(user_Vec.elementAt(3)); String tel = String.valueOf(user_Vec.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 logined = 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 rs = statement.executeQuery(sql); int recordCount = 0; while(rs.next()) { recordCount++; } if (recordCount>0) // 判断数据库表userbase中是否有用户信息 { userbase_Vec.clear(); rs.first(); userbase_Vec.addElement(rs.getString("user_name")); // 将个人信息存入向量对象userbase_Vec中 userbase_Vec.addElement(rs.getString("user_password")); logined = true; } } catch(Exception ex) // 捕捉异常 { ex.printStackTrace(); } return logined; } 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 rs = statement.executeQuery(sql); rs.next(); user_Vec.clear(); // 将个人注册信息存入向量user_Vec中 user_Vec.addElement(rs.getString("user_truename")); user_Vec.addElement(rs.getString("user_age")); user_Vec.addElement(rs.getString("user_sex")); user_Vec.addElement(rs.getString("user_mail")); user_Vec.addElement(rs.getString("user_tel")); } catch(Exception ex) // 捕捉异常 { ex.printStackTrace(); } } public boolean checkpass(String password) // 定义验证密码函数 { boolean right_pass = false; if (password.equals(String.valueOf(userbase_Vec.elementAt(1)))) { right_pass = true; } return right_pass; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -