Java 为什么portlet API中没有servlet请求

Java 为什么portlet API中没有servlet请求,java,portlet,Java,Portlet,portlet API DEO不提供对封装的servlet请求和响应对象的任何引用。我知道这不是与用户交互的首选模式,但删除所有访问权限似乎很严厉 我理解,对于portlet驱动的与用户的交互,您希望使用portlet URL,并让portlet容器管理所有复杂性 但是,如果有许多portlet基本上都显示相同数据的变体,那么它们可以使用封闭请求来驱动数据 我们最终使用了一个特定于Liferay的调用来获取请求,而这一切似乎都如我们所愿 然而,我确实感到内疚 所以我的问题是,这项禁令到底有什么深

portlet API DEO不提供对封装的servlet请求和响应对象的任何引用。我知道这不是与用户交互的首选模式,但删除所有访问权限似乎很严厉

我理解,对于portlet驱动的与用户的交互,您希望使用portlet URL,并让portlet容器管理所有复杂性

但是,如果有许多portlet基本上都显示相同数据的变体,那么它们可以使用封闭请求来驱动数据

我们最终使用了一个特定于Liferay的调用来获取请求,而这一切似乎都如我们所愿

然而,我确实感到内疚


所以我的问题是,这项禁令到底有什么深层次的原因,还是仅仅为了强化作者对API环境的看法

portlet不会直接运行到Servlet容器中,而是所谓的portlet容器

您应该能够访问相应的信息,
PortletRequest
PortletResponse
PortletContext

原因是同一portlet的两个实例可以在同一页面中相邻运行,但仍然与各自的生命周期隔离。门户将对您透明地“多路复用”,并将从servlet世界转换为portlet世界。Portlet桥也可用于使用非Portlet技术(例如JSF)开发Portlet。我同意所有这些通常(非常)复杂(因为有许多可用的框架和实现),但是当你考虑到它在概念上是如何工作的时候,你会发现它是非常复杂的


具体细节将取决于您选择开发portlet的技术。但是我觉得应该有一种方法可以使用PortletAPI实现您想要的功能

是的,portlet规范似乎是为重量级实现而设计的,轻量级实现没有选项。我们有许多Portlet可以做一些事情,并且按照Portlet应该做的那样生活。但是,大多数是仅显示的,并且大多数是由页面请求参数确定的公共模型上的视图。您可以将您的模型打包到您在共享类加载器中部署的服务层中。通过这种方式,所有portlet实例都为模型共享相同的类,并且您可以提供缓存等。这只是一个想法。