📄 loginservlet.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 + -