我在 Eclipse (helios) + Glassfish v3 中创建了一个简单的“hello world”servlet。我正在使用 Glassfish 的 eclipse 插件 WEB-INF/文件夹中似乎没有 web.xml,但有一个 sun-web.xml。这是我第一次使用 glassfish,但对缺少 web.xml 感到有点惊讶 - 所以这里有一些问题:
- 在哪里检查 servlet 的 url 映射?在 Eclipse 中创建新的 Servlet 时,它要求我提供 URL 映射,但我无法在任何可以调整设置的 .xml 文件中找到它。
- 如果没有任何 web.xml,从头开始创建它会很容易出错。你有什么建议?谷歌获取示例并玩一玩?难道不应该自动创建吗?
- 有人遇到过这种情况吗?我尝试查找 web.xml 和 sun-web.xml 之间的区别,但结果根本没有启发性。我不想为了配置目的而学习另一个 xml,而且这也是 glassfish 特有的。
我们必须配置 servlet 上下文、映射等,尤其是在开发/测试期间,但 web.xml 的完全缺失让我感到困惑。
最佳答案
Eclipse 允许您在为 Java EE 6 创建动态 Web 项目时不创建 web.xml 文件,因为 Java EE 6 规范(一般情况)和 Servlet 3.0 规范(特别)尝试不强调部署描述符.
您可以使用注释来提供 web.xml 文件中包含的所有数据。 Javadoc for the Servlet 3.0 annotations是相当迟钝的。您应该通读Servlet 3.0 spec from the jcp.org site以获得更多解释性文字。
要更改 Servlet 3.0 servlet 的 url 映射,首先要查看的地方是 servlet 的源代码。查找(并更改) urlPatterns 元素的值。
如果您尝试创建基于 Servlet 3.0 的 Web 应用程序,请尽量避免创建 web.xml 文件。
sun-web.xml/glassfish-web.xml 文件用于“完成”war 文件的描述,以便部署到 GlassFish 容器中。
关于像 WebServlet 这样的注释的另一个注释...它们不会将带注释的类集成到类层次结构中,因此 @WebServlet 的正确使用看起来像
@WebServlet(
name = "MyServlet",
urlPatterns = {"/path_to_servlet"}
)
public class MyServlet extends HttpServlet {}
关于eclipse - Eclipse + Glassfish v3 中没有 web.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5099731/