我正在为 Web 服务器编写代码,它向所有客户端显示一些特定的文件夹,并且可以访问其中的所有文件。
我完美地编写了所有代码,但它没有打印当前目录下的文件夹列表。我发布了那个模块,请告诉我为什么它没有打印当前目录下所有文件夹或文件的列表。
假设,我们当前目录的绝对路径如下,
C:\Users\aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding
打印浏览器中所有文件夹和文件的代码是,
void listDirectory(File dir, PrintStream ps) throws IOException {
ps.println("<html><body align=center>");
ps.println("<center> Simple File Based MultiThreaded WebServer</center >");
ps.println("<table border=1 align=center>");
ps.println("<tr bgcolor=#9999CC><td width=100% height=100% align=center>Directory Listing</td >");
ps.println("<td width=40% height=40% align=center>Type</td ></tr> ");
String[] list = dir.list();
for (int i = 0; list != null && i < list.length; i++) {
File f = new File(dir, list[i]);
System.out.println(f.getAbsolutePath());
if (f.isDirectory()) {
ps.println("<tr><td>");
ps.println("< td face= 'Verdana'> <a href='" + f + "'>list</a></td>");
//ps.println("<td align=\"center\"><a href=\"" + f + "\">list</a>");
ps.println("</td");
ps.println("</tr>");
} /*else {
ps.println("<tr><td>");
ps.println(""2""\"" face="\"""Verdana""\""> <A HREF=\""list"\">"list"<A HREF=\""list"\">\n
</td>");
ps.println("<td align=center><a href=\""list"/\"><img src=\"""/images/file.gif""\"></img>");
ps.println("</tr>");
}*/
}
ps.println("</table>");
ps.println("</body></html>");
}
当我运行时http://localhost:8080\
,它没有在浏览器上显示任何内容。告诉我我在这个模块中哪里错了。
编辑编号 1
C:\Users\aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding\build C:\Users\aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding\build.xml C:\Users\aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding\manifest.mf C:\Users \aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding\nbproject C:\Users\aMpliFieR\Documents\NetBeansProjects\FileBasedServer_Understanding\src
编辑 No.2
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at filebasedserver_understanding.Worker.handleClientRequest(Worker.java:94)
at filebasedserver_understanding.Worker.run(Worker.java:57)
at java.lang.Thread.run(Thread.java:722)