在我的台式机上一显示页面就报错,
可是在我的笔记本上就能显示页面,但 myeclipse 的控制台也报差不多的错,
不过笔记本上也不是总没事,最开始的时候一发布就能显示页面,过了一段时间再发布就不能显示了,只能删了再重新导入就又可以了,好奇怪哦 .
代码如下 :
- Java code
public class DirList extends HttpServlet{ /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filePath="c:\\"; if(request.getParameter("filePath")!=null)filePath=request.getParameter("filePath"); this.showDir(filePath,response.getWriter()); } private void showDir(String filePath,PrintWriter write) throws IOException{ File dirFile=new File(filePath); File[] fileList=dirFile.listFiles(); for(int i=0;i<fileList.length;i++){ File fileTmp=fileList[i]; if(fileTmp.isFile()){ write.write(fileTmp.getName()+"<br>"); }else{ write.write("<span>+</span>"+fileTmp.getName()+"<br>"); write.write("<div style='margin-left:10;border:1px red solid;'>"); //就是下面这句,注释掉就不报错了 //this.showDir(fileTmp.getAbsolutePath(), write); } } write.write("</div>"); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
------解决方案--------------------------------------------------------
for(int i=0;i<fileList.length;i++){
==》
for(int i=0;fileList != null && i< fileList.length;i++){
------解决方案--------------------------------------------------------
那就只能是 fileList == null
估计是该目录你无权访问,或者你所指定的filePath根本不是目录。
无权访问这个就没啥好招了。
是否是目录可以先判断下的:
fileTmp.isDirectory()