簡體   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