簡體   English   中英

Servlet服務不良Servlet

[英]Servlet Service poor Servlet

一般而言, ServletServicePoorServlet什么區別? 何時僅使用servlet,何時將servlet定義為OSGI Service?

PoorServlet

public class PoorServlet extends SlingAllMethodsServlet
{
    @Override
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException
    {
        //Do something fun here
    }
}

ServiceServlet

@Properties({
        @Property(name="service.pid", value="mycompany.ServiceServlet",propertyPrivate=false),
        @Property(name="service.description",value="Service servlet", propertyPrivate=false),
        @Property(name="service.vendor",value="mycompany", propertyPrivate=false)
})
public class ServiceServlet extends SlingAllMethodsServlet
{
    @Override
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException
    {
        //Do something fun here
    }

}

PoorServlet不是OSGi服務,因此不會在Sling servlet引擎中注冊。 結果,它將在任何路徑下都不可用。 這是一個簡單的POJO,Sling對此一無所知。

您的示例中的ServiceServlet也不是OSGi組件。 為了使其成為OSGi組件,應使用add @Component@Service批注。 然后,您可以添加sling.servlet.paths屬性,其中應包含一個或多個servlet路徑。 完成這些修改后,您可以在適當的路徑下訪問servlet。

還有一個有用的@SlingServlet批注,可以代替@Service @SlingServlet@Service @Component和所有與servlet相關的屬性使用:

@SlingServlet(paths="/bin/my/path")
public class ServiceServlet extends SlingAllMethodsServlet {
...

請在Sling文檔中找到更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM