[英]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.