DAF管道servlet的正确范围是什么

时间:2017-12-22 13:47:47

标签: atg

用于REST服务的DAF管道servlet组件(如ActorServlet)的正确范围是什么?它应该设置为全局还是请求?

1 个答案:

答案 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范围。

进一步研究一下,globalActorServlet的组件)扩展了实现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范围是正确的方法。