代码之家  ›  专栏  ›  技术社区  ›  JavaSheriff

使用Jersey编写REST Web服务时使用ServletContainer

  •  0
  • JavaSheriff  · 技术社区  · 7 年前

    在使用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有什么用途?tomcat不是ServletContainer吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   BalusC    7 年前

    通常,任何类的使用都在其javadoc中解释。幸运的是,泽西队的球员认真对待javadocs,你的答案确实是 right there

    com.sun.jersey.spi.container.servlet

    类ServletContainer

    A. Servlet Filter

    如果将此类声明为筛选器和初始化参数 PROPERTY_WEB_PAGE_CONTENT_REGEX FEATURE_FILTER_FORWARD_ON_404 如果未设置为true,则必须在过滤器链中的最后一个位置声明过滤器,因为过滤器不会将任何请求转发给链中的下一个过滤器(如果有)。

    以下各节参考了初始化参数。除非另有规定,否则初始化参数适用于服务器和筛选器初始化参数。

    servlet或过滤器可以配置为具有初始化参数“com.sun.jersey.config.property.resourceConfigClass”或“javax.ws.rs.Application”,其值是实现的类的完全限定名 ResourceConfig Application

    PackagesResourceConfig.PROPERTY_PACKAGES )的新实例 PackagesResourceConfig com.sun.jersey.config.property.packages 软件包资源配置 .

    WebAppResourceConfig 已创建。初始化参数“com.sun.jersey.config.property.classpath”可以设置为提供一个或多个资源路径。每个路径必须用“;”分隔。使用属性名称将资源路径作为属性值添加到映射实例中“ com.sun.jersey.config.property.classpath 。然后将任何其他初始化参数添加到映射实例。然后将该映射实例传递给的构造函数 。如果初始化参数不存在,则使用以下资源路径:“/WEB-INF/lib”和“/WEB-INF/classes”。

    所有初始化参数都作为创建的

    一个新的 WebApplication 将创建和配置实例,以便使用上下文将以下类注入根资源、提供程序和应用程序类: HttpServletRequest HttpServletResponse , ServletContext ServletConfig WebConfig 。如果该类用作 Servlet ServletConfig服务配置 滤器 然后 FilterConfig 可以注入抽象servlet或过滤器部署。

    A. IoCComponentProviderFactory 实例可以通过扩展此类并重写该方法来注册 initiate(ResourceConfig, WebApplication) Web应用程序 IOC组件供应商工厂


    tomcat不是ServletContainer吗?

    com.sun.jersey.spi.container.servlet.ServletContainer RestController RestApiDispatcher 奥索。


    有没有办法在没有Jersey或任何其他第三方框架的情况下实现Rest web服务?