繁体   English   中英

在Java服务器中返回内容类型

[英]Return content-type in java server

注意:只是为了清楚起见,我知道如何执行if语句。 我需要一种获取实际内容类型并将其作为字符串存储在变量中的方法。

我写了一个简单的java服务器。 我还没有弄清楚如何返回服务器加载的文件的内容类型。

我知道会有一个if语句,它将基于另一个变量(例如contetType)将字符串变量设置为例如text / html。 因此,例如:

if (contentType == ".html")
    {
        String s = "text/html";
    }
    else if ......

这是服务器中的一部分(响应200的代码):

         String okayreply="HTTP/1.0 200 OK \r\n" +
               "Connection: close\r\n" +
               "Content-Lenght : "+ file1.length() + 
               "Content-Type:" +
               "\r\n" +
               "\r\n" +
               "<h2>File Found</h2>\r\n";

    System.out.println(okayreply );

所以我需要找到内容类型并将其存储在变量中。 由此,当显示响应消息时,我可以使用该信息来设置内容类型。

EDIT,它只为内容类型返回空白:

File file1 = new File (filename);
String s = "";

  int indexOfFinalDot = filename.lastIndexOf(".");
if (indexOfFinalDot > 0) {
    String fileExtentsion = filename.substring(indexOfFinalDot).toLowerCase();
    if ("html".equals(fileExtentsion)) {
       s = "text/html";
    }
}

另外:

String okayreply="HTTP/1.0 200 OK \r\n" +
               "Connection: close\r\n" +
               "Content-Lenght : "+ file1.length() + "\r\n" +
               "Content-Type: " + s +
               "\r\n" +
               "\r\n" +
               "<h2>File Found</h2>\r\n";

    System.out.println(okayreply );

您可以尝试根据文件扩展名确定文件的内容类型

请注意,逻辑确实会尝试根据文件名猜测内容类型。 如果文件名错误(无扩展名/错误扩展名),则内容类型标头很可能是错误的。

假设您在某处有一个文件名:

    String filename = "index.html"; 

    int indexOfFinalDot = filename.lastIndexOf(".");
    if (indexOfFinalDot > 0) {
        String fileExtentsion = filename.substring(indexOfFinalDot + 1).toLowerCase();
        if ("html".equals(fileExtentsion)) {
           //your logic here
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM