📄 server_login.java
字号:
/*
* 创建日期 2006-4-12
* 作者:褚廷军
* 项目名称:学生考试系统;
* 项目要求:毕业设计;
* 模块名称:接收用户登陆模块
* 模块功能:接收用户登陆请求,并验证用户信息,
* 如果正确则登陆成功并将用户登录信息设为已经登录,如果错误重新登陆
*
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package tserver;
import java.io.*;
import java.net.Socket;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import tools.ConnectBean;
// 定义一个接收用户登陆的类
public class Server_login extends Thread {
String str1 = null;// 用户输入的考号
String str2 = null;// 用户输入的密码
String dbn = "";
String dbp = ""; // 数据库中存的密码
Socket socket;
DataInputStream in;
DataOutputStream out;
public Server_login(Socket socket) {
this.socket = socket;
try {
in = new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
String s = null;
try {
s = in.readUTF(); // 接收考试号和密码,然后分别取出
StringTokenizer st = new StringTokenizer(s, ",");
if (st.hasMoreTokens()) {
str1 = st.nextToken();
str2 = st.nextToken();
System.out.println("username :" + str1);
System.out.println("password :" + str2);
}
} catch (IOException e) {
e.printStackTrace();
}
// 读取数据库里的用户信息 并进行验证
try {
ConnectBean cb = new ConnectBean();
if (!cb.openConnection()) {
System.out.println("连接数据失败");
System.exit(1);
return;
}
cb.createPreparedStatement("select flag from stuinfo where sno='"
+ str1 + "'");
ResultSet r = cb.executeQuery();
String m ="";
while (r.next()) {
m=r.getString("flag");
}
System.out.println("标识:"+m);
if ( !m.equals("0") ) {
out.writeUTF("用户已经完成考试,不能再考试");
} else {
cb.createPreparedStatement(
"select sname,spass from stuinfo where sno='" + str1
+ "'", false);
ResultSet rs = cb.executeQuery();
while (rs.next()) {
dbn = rs.getString("sname");
dbp = rs.getString("spass");
System.out.println("用户: " + str1 + " 你的用户名为:" + dbn
+ ", 你的密码为:" + dbp);
}
// 验证用户密码,如果登录成功将登录标志设为1
if (str2.equals(dbp.trim())) {
out.writeUTF("用户 " + dbn + " 登陆成功");
System.out.println("用户 " + dbn + " 登陆成功");
out.close();
String sql1 = "update stuinfo set flag = '1' where sno= '"+str1+"'";
PreparedStatement ps = cb.createPreparedStatement(sql1);
ps.executeUpdate();
System.out.println("用户成功登录");
}
else {
out.writeUTF("密码错误");
System.out.println("登陆密码错误");
out.close();
}
cb.close();
}
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -