3.19学习内容:注册登录系统、反射

这篇博客介绍了如何创建一个简单的注册登录系统,包括Server、RegThread、ClientRegThread等组件。此外,还探讨了Java中的反射技术,通过TestClassMethod、TestNewInstance等示例展示了如何操作类的方法和属性,以及如何从文件中实例化对象。
摘要由CSDN通过智能技术生成

课堂案例

注册 登录系统:
Server:

package day34.t1;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;

public class Server {
private Properties userPros;
public Server(){
userPros = new Properties();
File file = new File(“Files\userPros.properties”);

	if(file.exists()){
		try {
			userPros.load(new FileReader(file));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
// 注册
public void registerUser() {
	try {
		ServerSocket server = new ServerSocket(6666);
		System.out.println("注册线程已启动");
		
		while(true){
			Socket client = server.accept();
			
			//将客户端对象和配置文件传给注册线程
			RegThread reg = new RegThread(userPros,client);
			reg.start();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}
public void login(){
	try {
		ServerSocket server = new ServerSocket(7777);
		System.out.println("登录线程启动");
		
		while(true){
			Socket client = server.accept();
			LoginThread lt = new LoginThread(userPros,client);
			lt.start();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}

RegThread

package day34.t1;

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.util.Properties;

public class RegThread extends Thread {
private Properties userPros;
private Socket client;

public RegThread(Properties userPros,Socket client){
	this.client=client;
	this.userPros=userPros;
}

public void run(){
	try {
		InputStream is = client.getInputStream();
		InputStreamReader isr = new InputStreamReader(is,"UTF-8");
		BufferedReader br = new BufferedReader(isr);
		
		OutputStream os = client.getOutputStream();
		OutputStreamWriter osw = new OutputStreamWriter(os,"UTF-8");
		PrintWriter pw = new PrintWriter(osw);
		//获得用户提交的数据
		String userinfo = br.readLine();
		String[] users = userinfo.split("#");
		String username = users[0];
		String password = users[1];
		//校对数据
		if(userPros.containsKey(username)){
			pw.println("用户已存在,请重新输入");
			pw.flush();
		}else{
			userPros.setProperty(username, password);
			userPros.store(new FileWriter("Files\\userPros.properties"), "用户信息"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值