Java——简单Web服务器实现.docx
文本预览下载声明
这是一个简单的Web服务器实现,主要功能就是根据用户请求在同一文件夹下查找对应文件并传输,找不到就传输错误页面。及运行截图如下://测试网页在同一文件夹下import java.io.*;import .*;import java.util.*;import java.awt.*;import javax.swing.*;public class MultiThreadServer extends JFrame {private JTextArea jta =new JTextArea();public static void main(String[] args){new MultiThreadServer();}public MultiThreadServer() {setLayout(new BorderLayout());//create the GUIadd(new JScrollPane(jta), BorderLayout.CENTER);setTitle(MultiThreadServer by Li Zhaoji);setSize(500, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);try{ServerSocket serverSocket = new ServerSocket(8080);//wait request on port 8080jta.append(MultiThreadServer started at + new Date() + \n);jta.append(Web Server is listening on port +serverSocket.getLocalPort() + \n + \n);int clientNo = 1;while (true) {Socket socket = serverSocket.accept();//wait for requestjta.append(***************************************************************************** + \n);jta.append(Starting thread for client + clientNo + at + new Date() + \n);InetAddress inetAddress = socket.getInetAddress();//get the client informationjta.append(Client + clientNo + s host name is + inetAddress.getHostName() + \n);jta.append(Client + clientNo + s IP Address is + inetAddress.getHostAddress() + \n);HandleAClient task = new HandleAClient(socket);new Thread(task).start();//create a new thread handle the requestclientNo++;}}catch(IOException ex) {System.err.println(ex);}}class HandleAClient implements Runnable {private Socket socket;public HandleAClient(Socket socket){this.socket = socket;}public void run() {try{BufferedReader inputFromClient = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintStream outputToClient = new PrintStream(socket.getOutputStream());String url=inputFromClient.readLine();jta.append(The Server has a request + *** + url + *** + \n);if(url.startsWith(GET)){//get the requests document nameif(url.indexOf(HTTP/) 4){String filename = url.substring(5, url.indexO
显示全部