【发布时间】:2014-05-19 22:07:32
【问题描述】:
我有一个简单的html 一键页面
<html>
<head>
<script>
function sender() {
var oReq = new XMLHttpRequest();
oReq.open('GET', 'http://localhost:8888?param2=value2', true);
oReq.onreadystatechange = function() {
if (oReq.readyState == 4) {
if (oReq.status == 200) {
alert(xmlhttp.responseText);
}
if (oReq.status == 404) {
alert("404040404!");
}
}
};
oReq.send();
}
</script>
</head>
<body>
<button id="click" onclick="sender();">Send</button>
</body>
</html>
我有一个简单的用 java 编写的 http 服务器,它除了读取传入的请求并显示它之外什么都不做。
但是如何从服务器向我的文件发送响应?例如我的文件位于那里
file:///C:/Users/Admin/Desktop/development/test.html
请求看起来像这样
GET /?param2=value2 HTTP/1.1
Host: localhost:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en,ru-ru;q=0.8,ru;q=0.5,en-us;q=0.3
Accept-Encoding: gzip, deflate
Origin: null
Connection: keep-alive
Header parsing result: param2=value2
在哪里以及如何发送响应?
服务器正在读取这样的标题
BufferedReader reader = new BufferedReader(new InputStreamReader(
sock.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while (true) {
line = reader.readLine();
if (line == null || line.isEmpty())
break;
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
【问题讨论】:
-
我很困惑。您想将响应写入文件吗?它只是一个 HTTP 服务器,因此使用您使用的请求在浏览器中加载服务器并保存页面。我的意思是,在浏览器中导航到 localhost:8888?param2=value2 并保存页面。
-
如果您希望将文件从 javascript 保存到磁盘,那么这是不可能的。
-
呃……哦!是我糊涂了!我想如果文件有
file:///而不是一些网址,我无法发送响应。
标签: java html xmlhttprequest