我正在开发一个servlet来执行一些特定于sling中的resourceType的逻辑,并将信息设置为可通过jsp访问的请求,然后将类似于 this answer 中提供的第一个解决方案向 jsp 发出请求.
这里有一些示例代码来代表我的情况:
@SlingServlet(
resourceTypes="myapp/components/mycomponent",
methods="GET",
extensions={"html"}
)
...
@Reference
private ServletResolver serlvetResolver;
protected void doGet(....) {
setPropertiesToRequest();
Servlet servlet = servletResolver.resolveServlet(resource, "....jsp");
servlet.service(slingRequest, slingResponse);
clearPropertiesFromRequest();
}
因此,我注意到我失去了 sling 的选择器处理(我必须推出自己的更简单版本来确定要渲染哪个 jsp。 Full featured sling selector handling is described in more detail here )。我想联系堆栈溢出社区,询问通过剥夺请求的默认获取处理程序我可能还会错过什么。我已经扫描了source code但我认为可能还有更多事情发生。
其次,我对这种方法如何以及在何处影响请求解析的性能感兴趣。
谢谢,托马斯
最佳答案
用 Java 处理业务逻辑并委托(delegate)脚本进行渲染听起来像是最近发布的 Sling Models 的工作。 。使用它应该不需要实现您自己的选择器处理,因为这些不会影响模型选择,只会影响渲染脚本。
关于java - 重写 Sling DefaultGetServlet.java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815873/