我想将文件上传到服务器,为此我正在编写一个 servlet 程序。上传文档的目录位置应从 web.xml 中的参数中获取。我以前没有使用过 web.xml,只知道它为每个 servlet 生成条目。我无法在我在 netbeans 中制作的 Web 应用程序项目中看到此文件。请帮我解决一下这个。谢谢你。
6 回答
它应该位于YOURPROJECT\web\WEB-INF
文件夹中,因此完整路径将是:YOURPROJECT\web\WEB-INF\web.xml
编辑(2015 年 8 月 21 日)
得到了来自duffymo的评论,我的回答不正确。
我决定用一步一步的图片来说明我的答案,以避免任何误解。
我将说明 Linux (Ubuntu) 和 Windows (Windows 7) 操作系统中的 Netbeans 行为。
Linux:
- 让我们使用默认设置创建一个简单的 Java Web 项目。
- 我们将进入项目文件夹以检查该文件夹的内容:
请注意,该web
文件夹在那里。
- 进一步导航:
您可以在此文件夹中手动创建 web.xml 文件,也可以通过项目上下文菜单“新建 -> 创建 -> 其他”使用 Netbeans 进行创建:
现在,我们正在浏览YOURPROJECT\web\WEB-INF\
文件夹以查看,web.xml
那里有:
相同的规则适用于 windows 操作系统,请查看以下图片:
您可以在此处创建 web.xml:
或使用 Netbeans,如上所述。
我知道已经很晚了,但我遇到了同样的问题,所以下面是解决方案:
要创建 web.xml:
- 右键单击您的项目
- 选择新
- 选择其他
- Box 新文件打开,在过滤器中搜索 web.xml
- 你会得到你想要的文件web.xml,然后点击下一步...然后完成
(在 Netbean 7.4 JDK 7 上测试)
web.xml
在 中是可选的Java EE 6
。因此,默认情况下它不会加载到Netbeans
. 您需要web.xml
从 Netbeans 手动加载。
您需要首先创建一个 servlet 页面,然后在 WEB.INF/ 中生成 web.xml
尝试右键单击项目并选择New
-> Other
-> Web
-> Standard Deployment Descriptor (web.xml)
-> Next
-> Finish
。按照它,它将在配置文件中创建。
您可以在 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
就是你要找的。