eclipse - Eclipse + Glassfish v3 中没有 web.xml?

标签 eclipse deployment glassfish deployment-descriptor

我在 Eclipse (helios) + Glassfish v3 中创建了一个简单的“hello world”servlet。我正在使用 Glassfish 的 eclipse 插件 WEB-INF/文件夹中似乎没有 web.xml,但有一个 sun-web.xml。这是我第一次使用 glassfish,但对缺少 web.xml 感到有点惊讶 - 所以这里有一些问题:

  1. 在哪里检查 servlet 的 url 映射?在 Eclipse 中创建新的 Servlet 时,它要求我提供 URL 映射,但我无法在任何可以调整设置的 .xml 文件中找到它。
  2. 如果没有任何 web.xml,从头开始创建它会很容易出错。你有什么建议?谷歌获取示例并玩一玩?难道不应该自动创建吗?
  3. 有人遇到过这种情况吗?我尝试查找 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/

相关文章:

java - 如何在 macOS Sierra 上卸载 Java 9

windows - 是否可以通过 Citrix 客户端建立 SSH 隧道?

c# - 调试 ClickOnce 部署函数

jdbc - Glassfish - 资源注入(inject)不起作用

oracle - java.sql.SQLException : ORA-01002: fetch out of sequence on XATransaction

java - 如何在 Java 中自动运行 GWT 编译?

java - 如何在开发环境中使用自定义 JSP 标签

java - 尝试通过 glassfish(使用 Cargo 和 Maven)设置/使用 mysql 数据源。如何部署mysql连接器?

java - 获取资源404不可用tomcat

java - war文件可以部署在任何服务器上吗?