为了账号安全,请及时绑定邮箱和手机立即绑定

有没有大神会做简单的web server,用java来实现的

我们老师布置的课程设计,已经做了两天了,还是做不出来。//img1.sycdn.imooc.com//59f146250001c1b210801920.jpg做了两天

正在回答

2 回答

哪位美丽帅气高端大气的资深大神可以帮忙用图像化界面来实现下面的代码吗?-此致,敬礼!


package com.tomcat;  


import java.io.File;  

import java.io.IOException;  

import java.io.InputStream;  

import java.io.OutputStream;  

import java.net.InetAddress;  

import java.net.ServerSocket;  

import java.net.Socket;  

 

public class HttpServer {  

    public static final String  WEB_ROOT=System.getProperty("user.dir") + File.separatorChar + "webRoot";  

    private static final String SHUTDOWN_COMMAND = "/SHUTDOWN";  

    private boolean shutdown = false;  

    public static void main(String []args){  

        HttpServer server = new HttpServer();  

        server.await();  

    }  

    public void await(){  

        ServerSocket serverSocket = null;  

        int port = 8080;  

        try{  

            serverSocket = new ServerSocket(port,1,InetAddress.getByName("127.0.0.1"));  

        }catch(Exception e){  

            e.printStackTrace();  

            System.exit(1);  

        }  

        while(!shutdown){  

            Socket socket = null;  

            InputStream in = null;  

            OutputStream out = null;  

            try {  

                socket = serverSocket.accept();  

                in = socket.getInputStream();  

                out = socket.getOutputStream();  

                Request request = new Request(in);  

                request.parse();  

                Response response = new Response(out);  

                response.setRequest(request);  

                response.sendStaticResource();  

                socket.close();  

                shutdown = request.getUri().equals("SHUTDOWN_COMMAND");  

            } catch (IOException e) {  

                e.printStackTrace();  

                continue;  

            }  

        }  

    }  

}  

----------------------------------------------------------------------------------------------------

package com.tomcat;  

  

import java.io.IOException;  

import java.io.InputStream;  

  

public class Request {  

    private InputStream input;  

    private String uri;  

    public Request(InputStream input){  

        this.input = input;  

    }  

    public void parse(){  

        StringBuffer request = new StringBuffer(2048);  

        int i;  

        byte [] buffer = new byte[2048];  

        try{  

            i = input.read(buffer);  

        }catch(IOException e){  

            e.printStackTrace();  

            i = -1;  

        }  

        for(int j=0;j<i;j++){  

            request.append((char)buffer[j]);  

        }  

        System.out.println(request.toString());  

        uri = parseUri(request.toString());  

    }  

    

    private String parseUri(String requestString){  

        int index1,index2;  

        index1 = requestString.indexOf(' ');  

        if(index1 != -1){  

            index2 = requestString.indexOf(' ', index1+1);  

            if(index2 > index1){  

                return requestString.substring(index1+1,index2);  

            }  

        }  

        return null;  

    }  

    public String getUri(){  

        return uri;  

    }  

}  

----------------------------------------------------------------------------

package com.tomcat;  

  

import java.io.File;  

import java.io.FileInputStream;  

import java.io.IOException;  

import java.io.OutputStream;  

  

public class Response {  

    private static final int BUFFER_SIZE=1024;  

    Request request;  

    OutputStream out;  

    public Response(OutputStream out){  

        this.out = out;  

    }  

    public void setRequest(Request request){  

        this.request = request;  

    }  

    public void sendStaticResource() throws IOException{  

        byte []bytes = new byte[BUFFER_SIZE];  

        FileInputStream fis = null;  

        try{  

            File file = new File(HttpServer.WEB_ROOT,request.getUri());  

            if(file.exists()){  

                fis = new FileInputStream(file);  

                int ch = fis.read(bytes, 0, BUFFER_SIZE);  

                while(ch != -1){  

                    out.write(bytes,0,ch);  

                    ch = fis.read(bytes,0,BUFFER_SIZE);  

                }  

            }else{  

                String errorMessage = "HTTP/1.1 404 File Not Found\n" +   

                    "Content-Type:text/html\n" +  

                    "Content-Length:23\n" +  

                    "\n" +   

                    "<h1>File not Found</h1>";  

                out.write(errorMessage.getBytes());  

            }   

        }catch(Exception e){  

            System.out.println(e.toString());  

        }finally{  

            if(fis != null)  

                fis.close();  

        }  

    }  

}  


0 回复 有任何疑惑可以回复我~

坐等大神

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有没有大神会做简单的web server,用java来实现的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信