代码如下:
//delete.java
public class delete extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
String path = request.getParameter("filename");
try
{
File file = new File("f:\\class\\"+path); //删除指定文件
file.delete();
System.out.println("success");
}
catch(Exception e)
{
e.printStackTrace();
}
response.sendRedirect("/servlets-examples/Servlet2");//跳转回Servlet2
}
}//Servlet2.java代码段
...
int i ;
for (i = 0; i < fs.length; i++) {
FileReader fr = new FileReader(fs[i]);
String filename = fs[i].getName(); //得到文件名 out.println("<td width=15% height=24><div align=center class=style1>"+ filename +"</div></td>");
out.println("<td width=30% height=24><div align=center class=style1><a href=delete?filename="+filename+">删除</a></div></td>");
}
...如果把跳转回Servlet2那句注释掉是可以删除的,但需求是要跳转回来的
但加了跳转后发现运行时只有Tomcat新启动才能删除指定文件
(之后点delete可以输出success,但不能删除文件,很奇怪)
不知道何处不对,求教

解决方案 »

  1.   

    刚又试了遍 发现注释掉response.sendRedirect("/servlets-examples/Servlet2");
    后也只能在Tomcat新启动才能删除指定文件
      

  2.   

    老大
    File file = new File("f:\\class\\"+path); //删除指定文件
    可以删除其它盘文件,是不是很可怕?
      

  3.   

    File file = new File("f:\\class\\"+path); //删除指定文件
    路径错误:应为
    File file = new File("f:\\class\"+path); 
    如果不对的话是你的指定文件不存在。
      

  4.   

    改成f:\\class\后无法编译,'\'被编译器认为特殊字符了