在线统计功能在企业级应用中具有较为深远的意义,例如,一些国企中逐步深化信息化建设,而这种建设的成熟性或者易用性往往体现在应用的使用人数和频率上,而这也可称为评价公司IT部门效能的一个参考。
此次HY 对FileNet WorkplaceXT(以下简称XT)提出统计功能,这种统计是基于用户真实登录应用的情况。比较流行的方法是利用HttpSessionListener来监听session的创建与销毁(此处不做讨论)。在此次实践中,对XT本身进行改造,首要任务是从非开源的XT应用中找寻到可以获取登录信息的方式,及加入自己发的统计功能。
首先在WcmDefault.jsp 页面中获取userid和password,将其保存到session中,代码如下所示,
WcmDataStore dataStore = controller.getDataStore();
WcmServerCredentials credentials = dataStore.getServerCredentials();
String userid = credentials.getUserId();
String password = credentials.getPassword();
session.setAttribute("loginStatisticUserId", userid);
session.setAttribute("loginStatisticPassword", password);
然后在Browse.jsp 页面中加入ajax调用,调用登陆统计servlet(自开发),在这里可以整合登陆统计登陆过程的逻辑,代码如下所示,
<script type="text/javascript">
Window.onload = $.ajax({
type:'get',
url:'loginStatisticServlet',
data:'data=',
dataType:'text',
success:function(msg){
},
error:function(){
}
});
</script>
之后建立servlet(登录时的逻辑写在此类中),
最后在web.xml中进行配置,代码如下所示,
<servlet>
<servlet-name>LoginStatisticAction</servlet-name>
<servlet-class>com.LoginStatisticServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginStatisticAction</servlet-name>
<url-pattern>/loginStatisticServlet</url-pattern>
</servlet-mapping>
探索类似问题没有过于复杂的内容,只需反编译项目,继而阅读分析其登录过程,找出获取登录信息的途径即可。而在探索过程中,要明确自己首要的目标,要准确而不冗余的完成它。比如我们做统计工作,要分为几个阶段,其中获取到用户登录信息是一个阶段,而对用户ID转化为用户姓名,以及其他深度加工,则应归为后续阶段,不要混为一谈的去做,否则工作量难以把控,特别是在分工合作情形下更应如此。像这次月底前上线的任务有几个,而分工完成各自擅长或专属(做过类似的或每次都做)的功能,则要明确目标,精准而不冗余的完成它(不包括另外一个高度职位的视角)。