使用Jersey编写Web服务时,我将向Web.xml添加ServletContainer
<servlet>
<servlet-name>Back-End API</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
这个ServletContainer有什么用? ServletContainer不是tomcat吗? 有没有办法在没有Jersey或任何其他第三方框架的情况下实现Rest Web服务?
答案 0 :(得分:2)
这个ServletContainer的用途是什么?
通常在其javadoc中解释任何类的使用。幸运的是,泽西岛的球员认真对待javadocs,你的回答确实是right there。
<子>的 com.sun.jersey.spi.container.servlet 强> 子>
Class ServletContainer
用于部署根资源类的
Servlet
或Filter
。如果将此类声明为过滤器并且未设置初始化参数
PROPERTY_WEB_PAGE_CONTENT_REGEX
或未将FEATURE_FILTER_FORWARD_ON_404
设置为true,则必须在过滤器链的最后位置声明过滤器, filter不会将任何请求转发给链中的下一个过滤器(如果有)。以下部分引用了初始化参数。除非另有说明,否则初始化参数适用于服务器和过滤器初始化参数。
servlet或过滤器可以配置为具有初始化参数“com.sun.jersey.config.property.resourceConfigClass”或“javax.ws.rs.Application”,其值是类的完全限定名称。实现
ResourceConfig
或Application
。如果具体类具有采用Map类型的单个参数的构造函数,则使用该构造函数实例化该类,并将包含所有初始化参数的Map实例作为参数传递。否则,该类被实例化为由运行时管理的单例组件,并且可以执行注入(可以注入的工件仅限于在配置servlet或过滤器时注册的可注入提供程序。)如果初始化参数“com.sun.jersey.config.property.resourceConfigClass”或“javax.ws.rs.Application”不存在且初始化参数“com.sun.jersey.config.property.packages”存在(参见
PackagesResourceConfig.PROPERTY_PACKAGES
)创建了PackagesResourceConfig
的新实例。初始化参数“com.sun.jersey.config.property.packages”必须设置为提供一个或多个包名。每个包名必须用';'分隔。使用属性名称“com.sun.jersey.config.property.packages”将包名称作为属性值添加到Map实例。然后将任何其他初始化参数添加到Map实例。然后将Map实例传递给PackagesResourceConfig
的构造函数。如果不存在上述资源配置相关的初始化参数,则会创建
WebAppResourceConfig
的新实例。初始化参数“com.sun.jersey.config.property.classpath”可以设置为提供一个或多个资源路径。每条路径必须用';'分隔。使用属性名称“com.sun.jersey.config.property.classpath”将资源路径作为属性值添加到Map实例。然后将任何其他初始化参数添加到Map实例。然后将Map实例传递给WebAppResourceConfig
的构造函数。如果初始化参数不存在,则使用以下资源路径:“/ WEB-INF / lib”和“/ WEB-INF / classes”。所有初始化参数都作为创建的
ResourceConfig
的属性添加。将创建并配置一个新的
WebApplication
实例,以便可以使用上下文将HttpServletRequest
,HttpServletResponse
,{{ 1}},ServletContext
和WebConfig
。如果此类用作ServletConfig
,则可以注入Servlet
类。如果此类用作ServletConfig
,则可以注入Filter
类。可以注入WebConfig
来抽象servlet或过滤部署。可以通过扩展此类并覆盖方法
IoCComponentProviderFactory
来注册initiate(ResourceConfig, WebApplication)
实例,以使用WebApplication
实例启动IoCComponentProviderFactory
。
是的,是的。只是选择了类是不是tomcat的ServletContainer?
FilterConfig
的名称。他们最好将其命名为com.sun.jersey.spi.container.servlet.ServletContainer
或RestController
orso。
有没有办法在没有Jersey或任何其他第三方框架的情况下实现Rest Web服务?
烨。您有几种选择: