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

📄 server_login.java

📁 在线考试系统设计
💻 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 + -