我正在使用Java和Eclipse,并且正在使用HttpServer。我需要编写一个简单的服务器和几个网页。 这是我的项目目录:
Demo
|
--bin
|
|
--doc
| |
| --js
| --index.html
| --ciao.html
|
--src
|
--server
|
--RootHandler.java
当我在正确的端口连接到本地主机时,Java中的RootHandler
给了我index.html
文件,这是我的主页,一切都很好:
public void handle(HttpExchange arg0) throws IOException {
// TODO Auto-generated method stub
if (arg0.getRequestURI().getPath().equals("/")) {
StringBuilder text = new StringBuilder("");
try {
File f = new File("./doc/index.html");
BufferedReader br = new BufferedReader(new FileReader(f));
String line;
while ((line = br.readLine()) != null) {
text.append(line + "\n");
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
arg0.sendResponseHeaders(200, text.length());
OutputStream os = (OutputStream) arg0.getResponseBody();
os.write(text.toString().getBytes());
os.close();
}
}
问题是当我在主页上浏览并且想要更改页面或包含一些Javascript时。如果在index.html
中,我只是使用这样的锚标记:
<a href="ciao.html">Ciao</a>
它不起作用。该页面将永久加载,而新ciao.html
的请求将保持“待处理”状态。请注意,新页面位于index.html
的同一目录中。
我尝试了其他路径,例如:
/ciao.html
./ciao.html
/doc/ciao.html
doc/ciao.html
和许多其他人,但没有人工作。我想念什么?我网站的根目录是哪个?
很显然,当我想包含一个脚本时也会出现问题,因为它不起作用,并且其变体也不起作用:
<script type="text/javascript" src="/js/bootstrap.js"></script>