【发布时间】:2012-11-14 20:40:31
【问题描述】:
请看下面的代码
JSP
<%--
Document : index
Created on : Nov 27, 2012, 1:11:48 PM
Author : Yohan
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<div>
<div>Content for New Div Tag Goes Here</div>
<p> </p>
<p> </p>
<p> </p>
<div>
<form method="post" action="FileSelector" enctype="multipart/form-data">
Select File: <input type="file" name="location"/></div>
<br>
<input type="submit" value="Submit"/>
</form>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
</body>
</html>
Servlet
package importWizard;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class FileSelector extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
{
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
{
PrintWriter pw = response.getWriter();
File location = (File)request.getParameter("location");
pw.write(location);
}
}
如您所见,我无法将文件从 JSP 发送到 Servlet。我不需要发送文件,但至少需要文件的完整位置(它只是发送文件名)。如何将文件或文件的完整位置从 JSP 发送到 servlet?
【问题讨论】:
-
知道客户端文件绝对位置的目的究竟是什么?您打算如何处理这些在实际应用程序中通常完全无用的信息,因为服务器无论如何都无法直接访问客户端的磁盘文件系统。
-
他可能想跟踪源文件,例如我们经常在Word文档的页脚中看到完整的文件路径。也许如果我们能知道最终的目的,我们就能给出更好的建议。
-
@BalusC:我们将它转移到桌面程序,因此这个问题得到了解决。但我仍然对这个问题感兴趣。我们需要做的是,从用户那里读取txt、csv、xml和Excel文件,加载到数组列表中,显示数据,询问用户分隔符,根据数据创建表格。换句话说,这是一个 KPI。但是我问了很多关于这个的问题,发现使用 java web 来满足所有要求是一项非常艰巨的任务,所以我们现在是桌面应用程序,正如我们第一次计划的那样,这就是整个团队的技术能够而不是网络
-
这在 web 中很难,因为客户端必须自己发送文件的内容,而不是服务器必须根据客户端提供的路径自己获取文件的内容(如果可能的话,它会一直是一个巨大的安全漏洞)。实际上,客户端应用程序(或您自己称呼的桌面程序)将能够做到这一点。如果您仍然坚持使用 Web 应用程序,那么(签名的)applet 或 webstart 应用程序将是您想到的解决方案之一。
标签: java jsp tomcat servlets netbeans