接下来就是一边想,一边看源码了。我看的代码是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的方式进行创建的。这个我们在看代码的时候要注意。
初始化时的流程图
[img]http://zhaocx.iteye.com/upload/picture/pic/7912/0b4d1ad9-a087-32fe-ac50-695d7ddc69aa.jpg[/img]
doGet/doPost函数:
没有什么特别的,把Servlet的Request,Response和ServletConfig对象封装成ReqeustContext对象,然后交给engine对象处理。
engine.service(context).
处理完后清除相应的资源。Servlet处理完成。
destory函数:
engine.shutdown() 停止服务
sessionCreated/sessionDestroyed函数:
在HttpSession的基础上对Portal的Session进行管理。
直接看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的方式进行创建的。这个我们在看代码的时候要注意。
初始化时的流程图
[img]http://zhaocx.iteye.com/upload/picture/pic/7912/0b4d1ad9-a087-32fe-ac50-695d7ddc69aa.jpg[/img]
doGet/doPost函数:
没有什么特别的,把Servlet的Request,Response和ServletConfig对象封装成ReqeustContext对象,然后交给engine对象处理。
engine.service(context).
处理完后清除相应的资源。Servlet处理完成。
destory函数:
engine.shutdown() 停止服务
sessionCreated/sessionDestroyed函数:
在HttpSession的基础上对Portal的Session进行管理。