有人能告诉我web.xml中servlet-class标记的用法是什么吗?例如,我目前正在使用tomcat 8,我正在使用restful jersey框架。那你为什么把这个类:org.glassfish.jersey.servlet.ServletContainer放在servlet-class标签中而不是org.apache.catalina.servlets.DefaultServlet用于tomcat? 也有人可以告诉我在哪里可以找到java ee web.xml规范/文档吗?
感谢
答案 0 :(得分:1)
部署描述符是Java Servlet规范的一部分。
您可以在此处找到3.1规范JSR340
查看https://www.jcp.org/en/jsr/detail?id=340
上的最终版本servlet-class 提供了完全限定的Java类名 端点实现。您指定了serlvet类名称,例如com.stackoverflow.myweb.LoginSerlvet,这可以映射到像/ login这样的URL。这使得它更容易在Web应用程序,html等中使用。每当请求登录时,LoginServlet将运行(取决于HTTP类型,如果它是GET,POST等)。还取决于您可能需要添加使用的外部库的Servlet。例如,在您的情况下,您需要 jersey 库。还要检查web.xml以设置servlet(servlet-class)并检查servlet-mapping。为什么你需要添加ServletContainer而不是DefaultServlet就像你想要使用Rest Jersey一样,每当你调用映射的url时(例如/ rest / *它将运行jersey servlet)。我认为你有点困惑,因为你认为servlet-class是将在你的应用程序中托管所有编写的servlet的类,而不是。
做一些关于如何构建Java servlet应用程序的教程,你很快就会更好地理解它。