2013-08-23 10 views
1

我想在点击jsp页面的HTML链接后删除文件。jsp:点击html链接时删除文件

以下是我的jsp代码:

<% 
File f=new File("c:\\Folder\\1.jpg"); 
f.delete(); 
%> 

我应该在HTML代码中使用什么href?在客户端

<a href......>Delete me </a> 
+1

对于特别重要的安全考虑,您不能删除文件有人的电脑,当他们点击网页上的按钮。 – jahroy

+0

您的目标是删除服务器上存在的文件吗?如果是这样,请参阅@shreyanshjogi的答案。你可以做他建议的或者向servlet发出请求(这会更好)。要向Servlet发出请求,您需要配置容器以将URL模式映射到您的servlet。这是[关于servlet映射的问题](http://stackoverflow.com/q/8198312/778118)。你必须谷歌关于如何设置你使用的任何容器上的servlet映射。 – jahroy

回答

3

为此,您可以使用Ĵ查询删除,而无需刷新 下面是代码,您试试看

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script> 
$(document).ready(function(e) { 
    $("#deletefilesAnchor").click(function(e) { 
     e.preventDefault(); 
     if (confirm('Are you sure you want to Delete Files?')) { 
     // Save it! 
      $.ajax({ 
       type: "POST", 
       url: "action.jsp", 
       success: function(msg){ 
        alert(msg) 
       }, 
      }); 
     } else { 
     // Do nothing! 
     } 
    }); 
}); 

</script> 
</head> 
<body> 
<a id="deletefilesAnchor" href="#">Delete files</a> 
</body> 
</html> 

action.jsp

<% 
File f=new File("c:\\Folder\\1.jpg"); 
if(f.delete()) 
out.println("Sucessfully deleted file"); 
else 
out.println("Error in deleting file"); 
%> 
+1

感谢它的工作:) – user2651739

+0

欢迎.... @ user2651739 – 2013-08-26 11:12:25

5

Html戏剧和服务器side.You Java(Jsp)戏剧需要为一个server request

而且一个

File f=new File("c:\\Folder\\1.jpg"); 

后所做的request上面的行会尝试从用户机器的server没有(谁点击了链接)删除文件的更多点。

您可能会误解在同一文档上存在jsphtml。是的,但JSP部分本身在服务器端编译,JSP输出解析为html并发送到client

注意:由于安全原因,Html和Javascript无法访问机器上的文件。

1
if(request.getParameter("btnSubmit")!=null) //btnSubmit is the name of your button, not id of that button. 
{ 
File f=new File("c:\\Folder\\1.jpg"); 
f.delete(); 
} 

<input type="submit" id="btnSubmit" name="btnSubmit" value="delete"/> 

这个你就可以实现

+0

请注意,这只会删除服务器上存在的文件(即托管网站的计算机)。这对在个人电脑上使用网络浏览器的人没有任何影响。 – jahroy

+0

他们可以检查文件是否存在文件? –

+0

我不明白你在问什么。你能澄清一下吗?可以编写代码来完成服务器上的任何文件。 **但**,您不能使用在浏览器中运行的代码(除非您使用ActiveX或Java小程序或某种插件)在别人的计算机上操作文件。 – jahroy

0

你不能这样做,像这样。

servlet/jsp运行在服务器端,但是html链接在客户端(浏览器)运行。如果你看到页面的源代码(点击浏览器页面上的鼠标右键),那么你可以看到jsp代码不存在。

如果你想这样做,你应该链接到另一个页面(如b.jsp),然后在jsp中,使用上面的代码删除文件。