[英]Servlet Service poor Servlet
一般而言, ServletService
和PoorServlet
什么區別? 何時僅使用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.