关于客户登录案例的思考
来源:互联网 发布:女权运动 知乎 编辑:程序博客网 时间:2024/06/01 09:39
一个客户登录系统,最简单也需要,客户端、服务器端、数据库、客户类客户端,需要建立socket端口,创建键盘输入流,创建数据输出流对象,在输出数据之后,接受服务器端传过来的判断数据,并展示服务器端数据。
服务器端,建立服务器端口,建立socket端口,创建输出流,接收客户端发过来的数据,与数据库进行比较,判断输入信息的正确性,并返回给客户端。
数据库,用来存储数据的地方,并提供接口供调用
一个类,用来定义账号密码的格式以及方便调用数据库中的信息
客户端代码:
package com;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;/* * 模拟用户登录改写(面向对象版本) */public class ClientTest {public static void main(String[] args) throws IOException {//创建客户端Socket对象Socket s = new Socket("SKY",8888);//获取用户名和密码BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入用户名:");String username = br.readLine();System.out.println("请输入密码:");String password = br.readLine();//获取输出流对象PrintWriter out = new PrintWriter(s.getOutputStream(),true);//写出数据out.println(username);out.println(password);//获取输入流对象BufferedReader serverBr = new BufferedReader(new InputStreamReader(s.getInputStream()));//获取服务器返回的数据String result = serverBr.readLine();System.out.println(result);//释放资源s.close();}}
服务器端代码:
package com
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;
public class ServerTest {
public static void main(String[] args) throws IOException {
// 创建服务器端口
ServerSocket ss = new ServerSocket(8888);
// 创建套接字端口
Socket s = ss.accept();
// 获取输入流
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
// 接收数据
String username = br.readLine();
String password = br.readLine();
// 判断数据
boolean flag = false;
/*if ("".equals(username) && "".equals(username)) {
flag = true;
}*/
//获取数据库中的数据
List<User> users=UserDataBase.getUsers();
//判断该集合内是否有这个对象
User userss=new User(username,password);
if(users.contains(userss)){
flag=true;
}
// 获取输出流对象
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
// 返回判断信息
if (flag) {
pw.println("登录成功");
} else {
pw.println("登陆失败");
}
// 释放资源
s.close();
}
}
用户类代码:
package com.it_07;
public class User {
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
}
模拟数据库的代码片段
package com.it_07;
import java.util.ArrayList;
import java.util.List;
/*用来存数据,写这个类模拟数据库*/
public class UserDataBase {
// 通过创建集合来存储用户对象
private static List<User> users = new ArrayList<User>();
// 添加数据
static {
users.add(new User("zhang", "123456"));
users.add(new User("lisii", "654321"));
users.add(new User("heima", "heimaheima"));
users.add(new User("admin", "password"));
}
// 创建调用方法
public static List<User> getUsers() {
return users;
}
}
- 关于客户登录案例的思考
- 关于 客户 感知思考
- Webdriver自动化测试案例--客户登录
- 关于SSH登录非常慢的案例
- 关于思考的思考
- 关于思考的思考
- 关于Java登录中验证码的思考
- python3中,Tkinter中关于Entry的登录案例
- 以客户的名义来思考
- 一个案例引发的思考
- 关于html转换为pdf案例的一些测试与思考
- TAM 单点登录的思考
- 登录信息的存储案例
- 关于blog的思考。
- 关于克隆技术的思考
- 关于爱的思考
- 关于p2p的思考
- 关于编码的思考
- QML TEXT元素
- Handler,Thread 和HandlerThread三者之间关系
- 各种语言HMAC SHA256实现
- 剑指offer_数组---旋转数组的最小数字
- Nginx服务器中的location配置详解
- 关于客户登录案例的思考
- git基础操作
- socket与http的区别
- python zip函数
- ndoejs+mongodb 开发5:批量修改
- 归并排序的简单实现
- 简单的斐波那契数列
- 实验吧CTF题目之抓到你了(代号:1813)
- js 数组去重 数组求差集、交集