gpt4 book ai didi

java - 如何自定义 HTML 到 Servlet 的请求

转载 作者:行者123 更新时间:2023-12-01 04:27:05 26 4
gpt4 key购买 nike

我正在使用 Java 的 servlet 和 HTML 表单构建服务器。

我已经成功上传文件:用户到达 HTML 页面,在他/她的树文件夹中选择他/她想要上传的文件。该文件被发送到我编写并下载到服务器上的 servlet(实际上我暂时只在本地主机上运行它,所以服务器是我的“我的文档”文件夹)。

我想做的下一步是:用户(登录后,但我会设法做到这一点)到达 HTML 页面,选择服务器托管的文件并下载它。

为此,我必须将文件名发送到“下载 Servlet”。这是我的问题:

  • 如何列出 HTML 页面上“我的文档”中的文件。
  • 如何将所选文件的名称发送到 servlet。
  • 如何捕获“请求”并从中生成名称字符串。

为了精确说明最后两点,请看一下:

List<FileItem> items = null;
items = upload.parseRequest(request);
FileItem item = items.get(0);
String fileName = item.getName();

上面的 block 捕获请求中的文件夹的名称。我实际上想做的是,如果请求中的内容是字符串(=捕获请求中包含的字符串),则执行相同的操作。

最佳答案

File API 将为您提供选择目录中文件所需的信息。

List<File> files = Arrays.asList(new File("/your/directory").listFiles());

List<String> fileNames = new LinkedList<>();
for (File file : files) {
fileNames.add(somePrefix + file.getName());
}

request.setAttribute("fileNames", fileNames);

我执行上述操作是因为出于安全原因您可能不想提供文件的真实路径。一旦您的请求属性中包含了文件名列表,您就可以在 jsp 中迭代它们。

<form ...>
Select a file:<br />
<c:forEach items="${fileNames}" var="fileName">
<input type="radio" name="fileName" value="${fileName}">
</c:forEach>
<input type="submit" name="submit" value="submit">Submit
</form>

现在,每个文件都附加到一个输入元素,该元素将转换为请求参数。提交表单后,您可以通过以下方式访问选择的文件名

String fileName = request.getParameter("fileName");

然后您可以将该文件名附加到某个目录结构并在文件系统上找到它。

关于java - 如何自定义 HTML 到 Servlet 的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18411417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com