用于REST服务的DAF管道servlet组件(如ActorServlet)的正确范围是什么?它应该设置为全局还是请求?
答案 0 :(得分:2)
来自ATG文档:
如果未明确设置组件的$ scope属性,则它自动具有全局范围。
查看<div id="container">
<div class="item">
<table width="500px">
<tr><td>Header</td></tr>
</table>
</div>
</div>
<div id="container">
<div class="item scroll">
<div class="bigContent">
<table width="500px">
<tr><td>Some content</td></tr>
</table>
</div>
</div>
</div>
中组件浏览器中的ActorServlet
,它显示没有明确的范围设置,因此默认情况下应指示它是dynadmin
范围。
进一步研究一下,global
(ActorServlet
的组件)扩展了实现RestPipelineServlet
接口的PipelineableServletImpl
。这里有一个抽象方法PipelineableServlet
,它构成了正在执行的实际管道“链”的一部分。
passRequest
这意味着您将始终可以访问当前的public abstract void passRequest(ServletRequest paramServletRequest, ServletResponse paramServletResponse)
throws IOException, ServletException;
。在request
内部调用PipelineableServletImpl
方法。
service
您通常会覆盖public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws IOException, ServletException {
//Insert your logic here
passRequest(pRequest, pResponse);
}
方法并在其中添加您自己的逻辑,但仍然可以访问当前 service
,这应该向您表明,只要其余的变量都是线程安全的,指定您的Pipeline Servlet为request
范围是正确的方法。