Eclipse + Glassfish v3中没有web.xml?

PhD*_*PhD 8 eclipse deployment glassfish deployment-descriptor

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

  1. 我在哪里检查servlet的url-mappings?在Eclipse中创建一个新的Servlet时,它要求我进行URL映射,但是我无法在任何.xml文件中找到它,我可以在其中调整设置.
  2. 如果没有任何web.xml,从头开始创建它将非常容易出错.你有什么建议?谷歌的样品和游戏?不应该自动创建一个?
  3. 有没有遇到过这个?我试着查找web.xml和sun-web.xml之间的区别,但结果并不是很有启发性.我不想为配置目的学习另一个xml,也不想学习glassfish.

我们必须配置servlet上下文,映射等,尤其是在开发/测试期间,但是我完全没有使用web.xml.

vkr*_*mer 12

Eclipse允许您在为Java EE 6创建Dynamic Web Project时不创建web.xml文件,因为Java EE 6规范(通常)和Servlet 3.0规范(特别是)尝试不再强调部署描述符.

您可以使用注释来提供web.xml文件中包含的所有数据.Servlet 3.0注释Javadoc非常愚蠢.您应该阅读来自jcp.org站点Servlet 3.0规范,以获得更多解释性文本.

要更改Servlet 3.0 servlet的url-mapping,首先要查看的是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 {}
Run Code Online (Sandbox Code Playgroud)


TMN*_*TMN 10

如果您发现确实需要web.xml文件,则可以在Project Explorer视图中按上下文单击部署描述符,并且应该有一个选项"Generate Deployment Descriptor Stub".这将为web.xml你创造一个display-namewelcome-file-list元素.