📄 fbserver.java
字号:
import java.io.*;
import java.net.*;
import java.sql.*;
public class FBServer {
public static void main(String[] args) {
try {
ServerSocket s = new ServerSocket(6789);
System.out.println("Server is waiting");
for (;;) {
Socket incoming = s.accept();
System.out.println("Server accepted a connection");
new ThreadedDataObjectHandler(incoming).start();
}
} catch (Exception e) {
System.out.println(e);
}
}
}
class ThreadedDataObjectHandler extends Thread {
boolean runFlag = true;
Socket incoming;
ObjectInputStream in;
ObjectOutputStream out;
public ThreadedDataObjectHandler(Socket comingsocket) {
incoming = comingsocket;
}
public void run() {
String sql;
Connection con;
Statement stmt;
ResultSet rs;
try {
in = new ObjectInputStream(incoming.getInputStream());
out = new ObjectOutputStream(incoming.getOutputStream());
// connect to the database
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("oracle jdbc");
con = DriverManager.getConnection(
"jdbc:oracle:thin:@prophet.njit.edu:1521:course", "xm6",
"MyFloGgv");
stmt = con.createStatement();
System.out.println("Server connected to the database.");
while (runFlag) {
DataObject myObjectIn = new DataObject();
DataObject myObjectOut = new DataObject();
String[] bufferArray = new String[20];
String[] contents = new String[100];
String buffer = "";
String username = "";
String password = "";
String name = "";
String gender = "";
String birthday = "";
String phone = "";
String email = "";
String address = "";
String school = "";
String message = "";
String content = "";
try {
myObjectIn = (DataObject) in.readObject();
message = myObjectIn.getMessage();
System.out.println(message);
// login
if (message.equals("login")) {
username = myObjectIn.getUsername();
password = myObjectIn.getPassword();
sql = "select password,rank,name,gender,birthday,phone,email,address,school from facebook where username = '"
+ username + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
buffer = rs.getString("password");
myObjectOut.setRank(rs.getString("rank"));
myObjectOut.setName(rs.getString("name"));
myObjectOut.setGender(rs.getString("gender"));
myObjectOut.setBirthday(rs.getString("birthday"));
myObjectOut.setPhone(rs.getString("phone"));
myObjectOut.setEmail(rs.getString("email"));
myObjectOut.setAddress(rs.getString("address"));
myObjectOut.setSchool(rs.getString("school"));
}
System.out.println("password is " + buffer);
if (buffer.equals(password)) {
message = "login match";
System.out.println(username);
// search the names for jtree
sql = "select name from facebook";
rs = stmt.executeQuery(sql);
for (int i = 0; rs.next(); i++) {
bufferArray[i] = rs.getString("name");
}
myObjectOut.setNames(bufferArray);
// search the messages for messageArea
sql = "select content from message where username = '"
+ username + "'";
rs = stmt.executeQuery(sql);
for (int i = 0; rs.next(); i++) {
contents[i] = rs.getString("content");
}
myObjectOut.setContents(contents);
} else {
message = "login not match";
System.out.println(username);
}
}
// register (need username and password)
else if (message.equals("register")) {
username = myObjectIn.getUsername();
password = myObjectIn.getPassword();
System.out.println(username);
sql = "select username from facebook where username = '"
+ username + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
buffer = rs.getString("username");
if (buffer.equals(username)) {
message = "regist existed";
System.out.println(message);
break;
}
}
if (message.equals("regist existed")) {
} else {
System.out.println("inserting");
sql = "insert into facebook (username, password, rank) values('"
+ username
+ "','"
+ password
+ "','"
+ "1"
+ "')";
rs = stmt.executeQuery(sql);
message = "Done for register";
}
System.out.println("What is in message");
System.out.println(message);
}
// search name (need name and message)
else if (message.equals("search")) {
name = myObjectIn.getName();
System.out.println("searching for " + name);
sql = "select username,name,rank,gender,birthday,phone,email,address,school from facebook where name = '"
+ name + "'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
buffer = rs.getString("name");
if (buffer.equals(name)) {
message = "name match";
username = rs.getString("username");
myObjectOut.setUsername(username);
myObjectOut.setName(rs.getString("name"));
myObjectOut.setGender(rs.getString("gender"));
myObjectOut.setBirthday(rs
.getString("birthday"));
myObjectOut.setPhone(rs.getString("phone"));
myObjectOut.setEmail(rs.getString("email"));
myObjectOut.setAddress(rs.getString("address"));
myObjectOut.setSchool(rs.getString("school"));
break;
}
}
if (message.equals("name match")) {
sql = "select content from message where username = '"
+ username + "'";
rs = stmt.executeQuery(sql);
for (int i = 0; rs.next(); i++) {
bufferArray[i] = rs.getString("content");
}
myObjectOut.setContents(bufferArray);
} else {
message = "name fail";
System.out.println(username);
}
}
// update (need all data to updata)
else if (message.equals("update")) {
System.out.println("server recieve update");
username = myObjectIn.getUsername();
name = myObjectIn.getName();
gender = myObjectIn.getGender();
birthday = myObjectIn.getBirthday();
phone = myObjectIn.getPhone();
email = myObjectIn.getEmail();
address = myObjectIn.getAddress();
school = myObjectIn.getSchool();
System.out.println(username);
System.out.println(name);
sql = "update facebook set name = '" + name
+ "', gender = '" + gender + "', birthday = '"
+ birthday + "', phone = '" + phone
+ "', email = '" + email + "', address = '"
+ address + "', school = '" + school
+ "' where username = '" + username + "'";
rs = stmt.executeQuery(sql);
message = "updated";
}
// add message (need content and username)
else if (message.equals("leave message")) {
System.out.println("add message");
content = myObjectIn.getContent();
username = myObjectIn.getUsername();
sql = "insert into message(content, username) values ('"
+ content + "', '" + username + "')";
rs = stmt.executeQuery(sql);
message = "added message";
}
}
catch (Exception ee) {
}
System.out.println("Message read: "
+ myObjectIn.getConfirmpsw());
if (myObjectIn.getConfirmpsw().trim().equals("bye")) {
runFlag = false;
}
myObjectOut.setMessage(message);
out.writeObject(myObjectOut);
System.out.println("Sended back");
username = "";
password = "";
name = "";
gender = "";
birthday = "";
phone = "";
email = "";
address = "";
school = "";
}
in.close();
out.close();
incoming.close();
} catch (Exception e) {
System.out.println(e);
} finally {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -