Java 链接不';当我通过本地主机访问它时,它无法工作
下面的servlet创建了一个名为Shared的目录,然后将视频复制到此目录中。接下来,它提供了下载此视频的链接。但当我点击链接时,什么也没发生。为什么会这样Java 链接不';当我通过本地主机访问它时,它无法工作,java,jakarta-ee,tomcat,servlets,hyperlink,Java,Jakarta Ee,Tomcat,Servlets,Hyperlink,下面的servlet创建了一个名为Shared的目录,然后将视频复制到此目录中。接下来,它提供了下载此视频的链接。但当我点击链接时,什么也没发生。为什么会这样 @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
String path = request.getServletContext().getRealPath("/") + "Shared/" + "sweet-love-story-that-might-make-your-day[www.savevid.com].3gp";
path = path.replace("\\","/");
try {
File f = new File(request.getServletContext().getRealPath("/") + "Shared/");
if(!f.exists()) {
f.mkdir();
// now copy the animation to this directory
} else {
System.out.println("directory already made");
}
writer.println("<html> <head> <title> </title> </head>");
writer.println("<body>");
writer.println("<a href=\"file:///" + path + "\"" + ">Click to download</a>");
writer.println("</body>");
writer.println("</html>");
}catch(Exception exc) {
exc.printStackTrace();
}
}
@覆盖
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
response.setContentType(“text/html”);
PrintWriter=response.getWriter();
String path=request.getServletContext().getRealPath(“/”+”共享/“+”甜蜜的爱情故事,可能会让你的一天变得美好[www.savevid.com].3gp”;
路径=路径。替换(“\\”,“/”;
试一试{
文件f=新文件(request.getServletContext().getRealPath(“/”+“Shared/”);
如果(!f.exists()){
f、 mkdir();
//现在将动画复制到此目录
}否则{
System.out.println(“已生成目录”);
}
writer.println(“”);
writer.println(“”);
writer.println(“”);
writer.println(“”);
writer.println(“”);
}捕获(异常exc){
exc.printStackTrace();
}
}
具有讽刺意味的是,当我编写一个与视频位于同一目录(共享)的html时,我能够下载/查看视频。当我通过localhost
访问链接时,为什么链接不起作用
(我正在使用Tomcat)
**注意:语句request.getServletContext().getRealPath(“/”)
打印W:\UnderTest\NetbeansCurrent\App-1\build\web**
以下是分别从本地主机和本地访问的html快照
及
您将文件写入部署文件夹的路径错误。您的具体问题与这里回答的理由相同:顺便说一下,还有另一个重大错误:
文件://
链接指向本地磁盘文件系统,当最终用户的本地磁盘文件系统上没有该文件时,这显然不起作用(当带有webbrowser的最终用户运行在与webserver物理上不同的机器上时,可能会发生这种情况,就像在现实世界中一样)。您需要(工作!)http://
链接。@BalusC您能告诉我如何使用我创建的http
访问共享目录,如:(request.getServletContext().getRealPath)(“/”+“Shared”).mkdir()
。首先修复第一个错误:使用getRealPath()
作为文件存储位置。请参阅第一条注释。@BalusC有疑问,让我澄清一下。首先,我应该在硬盘上的某个位置创建一个目录Shared
,而不是使用getRealPath()
。然后我应该在应用程序的context.xml
中添加我用来保存文件的路径。是这样吗?