注意:需要明确的是,我知道如何执行 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 );
所以我需要找到内容类型并将其存储在变量中。由此,我可以使用该信息来设置显示响应消息时的内容类型。
编辑,它只返回内容类型空白:
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 );
最佳答案
您可以尝试根据文件扩展名判断文件的内容类型
请注意,逻辑确实会尝试根据文件名猜测内容类型。如果文件名错误(无扩展名/错误扩展名),内容类型 header 很可能是错误的。
假设您在某处有一个文件名:
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
}
}
关于java - 返回java服务器中的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22133457/