8

我想将文件上传到服务器,为此我正在编写一个 servlet 程序。上传文档的目录位置应从 web.xml 中的参数中获取。我以前没有使用过 web.xml,只知道它为每个 servlet 生成条目。我无法在我在 netbeans 中制作的 Web 应用程序项目中看到此文件。请帮我解决一下这个。谢谢你。

4

6 回答 6

34

它应该位于YOURPROJECT\web\WEB-INF文件夹中,因此完整路径将是:YOURPROJECT\web\WEB-INF\web.xml


编辑(2015 年 8 月 21 日)

得到了来自duffymo的评论,我的回答不正确。

评论

我决定用一步一步的图片来说明我的答案,以避免任何误解。

我将说明 Linux (Ubuntu) 和 Windows (Windows 7) 操作系统中的 Netbeans 行为。

Linux:

  1. 让我们使用默认设置创建一个简单的 Java Web 项目。

linux系统上的简单web项目

  1. 我们将进入项目文件夹以检查该文件夹的内容:

linux系统上的web项目文件夹

请注意,该web文件夹在那里。

  1. 进一步导航:

linux系统上web文件夹的内容

linux系统上的web.xml文件位置,文件尚未创建

可以在此文件夹中手动创建 web.xml 文件,也可以通过项目上下文菜单“新建 -> 创建 -> 其他”使用 Netbeans 进行创建:

在 netbeans #1 的 linux 系统上创建 web.xml

在 netbeans #2 的 linux 系统上创建 web.xml

现在,我们正在浏览YOURPROJECT\web\WEB-INF\文件夹以查看,web.xml那里有:

创建 web.xml 文件

相同的规则适用于 windows 操作系统,请查看以下图片:

Windows 上的 Web 应用程序项目文件夹

Windows 上的 web-application 文件夹的内容

您可以在此处创建 web.xml:

Windows 上的 web.xml 文件位置

或使用 Netbeans,如上所述。

于 2013-10-11T11:49:53.093 回答
29

我知道已经很晚了,但我遇到了同样的问题,所以下面是解决方案:

要创建 web.xml:

  1. 右键单击您的项目
  2. 选择新
  3. 选择其他
  4. Box 新文件打开,在过滤器中搜索 web.xml
  5. 你会得到你想要的文件web.xml,然后点击下一步...然后完成

(在 Netbean 7.4 JDK 7 上测试)

于 2013-12-22T07:01:54.163 回答
6

web.xml在 中是可选的Java EE 6。因此,默认情况下它不会加载到Netbeans. 您需要web.xml从 Netbeans 手动加载。

于 2013-10-11T11:50:43.590 回答
2

您需要首先创建一个 servlet 页面,然后在 WEB.INF/ 中生成 web.xml

于 2015-05-02T07:21:00.680 回答
2

尝试右键单击项目并选择New-> Other-> Web-> Standard Deployment Descriptor (web.xml)-> Next-> Finish。按照它,它将在配置文件中创建。

视频教程:https ://www.youtube.com/watch?v=UAMOeHtPwrc

于 2016-12-28T21:11:49.250 回答
0

您可以在 web.xml 中使用上下文参数

在您的普通 java 类中,您会阅读此静态字段。

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
...
<context-param>
    <description>directory where the document would be uploaded</description>
    <param-name>directory</param-name>
    <param-value>/tmp</param-value>
</context-param>
...
</web-app>

您可以使用函数访问此上下文参数ServletContext.getInitParameter

如果您使用的是 Servlet 3.0 规范,则可以使用注释(http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/package-summary.html)。我想这@WebInitParam就是你要找的。

于 2013-10-11T11:55:11.433 回答