Portal 学习- 分析Jetspeed2 (2)
接下来就是一边想,一边看源码了。我看的代码是Jetspeed2.1.3。
直接看web.xml
<servlet>
<servlet-name>jetspeed</servlet-name>
<servlet-class>org.apache.jetspeed.engine.JetspeedServlet</servlet-class>
<init-param>
<param-name>properties</param-name>
<param-value>/WEB-INF/conf/jetspeed.properties</param-value>
</init-param>
<init-param>
<param-name>applicationRoot</param-name>
<param-value>webContext</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
还有其他的几个Servlet,暂时先不看了,这个Servlet应该就是最主要的Servlet了,看代码吧。JetspeedServelt.java标准Servlet对象,
而且这个Servlet对象实现了HttpSessionListener接口。
所以就是init,doGet,doPost,destroy,sessionCreated,sessionDestroyed函数了。
init函数:
创建了JetspeedEngie对象,同时engine.start()启动这个Engine对象。
通过这个对象把Servlet对于Porlet的处理功能进行了 委托。符合OO的概念:)
这里有个要强调的JetSpeed2使用Spring作为IoC,AoP的框架,所以在Init函数中初始化了SpringComponentManager对象,Jetspeed2中的关键对象都是通过IoC的方式进行创建的。这个我们在看代码的时候要注意。
初始化时的流程图
doGet/doPost函数:
没有什么特别的,把Servlet的Request,Response和ServletConfig对象封装成ReqeustContext对象,然后交给engine对象处理。
engine.service(context).
处理完后清除相应的资源。Servlet处理完成。
destory函数:
engine.shutdown() 停止服务
sessionCreated/sessionDestroyed函数:
在HttpSession的基础上对Portal的Session进行管理。
1 楼 supercode 2008-04-22 继续下文
lz加油