年少无谓 2020-02-18 12:24 采纳率: 0%
浏览 617

自己搭建的tomcat服务器的url怎么写

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class HttpServer {

private static final Integer port = 80;//HTTP默认端口80

public static void main(String[] args) {

ServerSocket serverSocket; 

try {   

  //建立服务器Socket,监听客户端请求 

  serverSocket = new ServerSocket(port); 

  System.out.println("服务器端口:"+serverSocket.getLocalPort()); 

  //死循环不间断监听客户端请求 

  while(true){ 

    final Socket socket = serverSocket.accept(); 

    System.out.println("接收到一个请求,请求地址:"+  

        socket.getInetAddress()+":"+socket.getPort()); 

    //并发处理HTTP客户端请求 

    service(socket); 

  } 

} catch (IOException e) { 

  e.printStackTrace(); 

} 

}

public static void service(final Socket socket)

{

new Thread(){ 

  public void run(){ 

    InputStream inSocket; 

    try { 

      //获取HTTP请求头 

      inSocket = socket.getInputStream(); 

      int size = inSocket.available(); 

      byte[] buffer = new byte[size]; 

      inSocket.read(buffer); 

      String request = new String(buffer); 

      System.out.println("ClientBrowser:\n"+request+"\n"

          + "------------------------------------------------------------------"); 



      String firstLineOfRequest = ""; //http报文头

      String[] heads; //报文头的数据集合

      String uri = "/index.html"; 

      String contentType =""; 

      if(request.length() > 0){ 

        firstLineOfRequest = request.substring(0,request.indexOf("\r\n")); 

        heads = firstLineOfRequest.split(" "); 

        uri = heads[1]; 



        if(uri.indexOf("html") != -1){ 

          contentType = "text/html"; 

        }else{ 

          contentType = "application/octet-stream"; 

        } 

      } 

      System.out.println("http报文内容:"+request.substring(request.indexOf("\r\n"),request.length()));



      //将响应头发送给客户端 

      String responseFirstLine = "HTTP/1.1 200 OK\r\n"; 



      String responseHead = "Content-Type:" + contentType +"\r\n"; 



      OutputStream outSocket = socket.getOutputStream(); 

      System.out.println("ServerResponse:\n"+responseFirstLine+"\n"+responseHead+"\n"

          + "--------------------------------------------------------------------"); 

      outSocket.write(responseFirstLine.getBytes()); 

      outSocket.write(responseHead.getBytes()); 

      //通过HTTP请求中的uri读取相应文件发送给客户端 

      FileInputStream writehtml = new FileInputStream(new File("wwwroot"+uri)); 

      outSocket.write("\r\n".getBytes());  

      byte[] htmlbuffer = new byte[writehtml.available()]; 

      if(writehtml !=null){ 

        int len = 0; 

        System.out.println("writeHtml"); 

        while((len = writehtml.read(htmlbuffer)) != -1){ 

          outSocket.write(htmlbuffer, 0,len); 

        } 

      } 

      outSocket.close(); 

      socket.close(); 



    } catch (IOException e) { 

      e.printStackTrace(); 

    } 

  } 

}.start(); 

}

}


  • 写回答

2条回答 默认 最新

  • threenewbee 2020-02-18 13:06
    关注

    private static final Integer port = 80;//HTTP默认端口80
    你用的默认80端口,那么可以用

    http://127.0.0.1 试试看

    评论

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程