如果我想删除welcome.html文件如何删除它使用http doDelete()方法如何做到这一点我是java新手所以请plz帮助我
public void doDelete(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean success = false;
File file = null;
try {
file = searchFile(request);
} catch (Exception ex) {
java.util.logging.Logger.getLogger(Request.class.getName()).
log(java.util.logging.Level.SEVERE, null, ex);
}
if (!file.exists()) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
} else {
success = file.delete(); // actual delete operation
}
if (success) {
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
}
private String searchFile(HttpServletRequest req) throws Exception {
String fileName = req.getPathInfo();
fileName = fileName.substring(1);
return fileName;
}
答案 0 :(得分:5)
我们在等你解释 你的代码“如何工作”...我应该指出,如果这段代码 工作,那就是非常危险。
您的代码不会尝试检查用户(即发送请求的人)是否应该删除该文件,或者用户试图删除的内容。如果有一个坏人发给你带有“..”的DELETE请求,他们可能会欺骗你的网络服务器试图删除文件系统中的任何文件!!! (希望你永远不会以“root”运行您的Web服务器......)
更新:您的问题的答案很简单。变化
file = searchFile(request);
到
file = new File(searchFile(request));
但那是你问题的最少!