?? 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 + -