新功能开发文档.docx

上传人:b****8 文档编号:30280184 上传时间:2023-08-13 格式:DOCX 页数:17 大小:52.74KB
下载 相关 举报
新功能开发文档.docx_第1页
第1页 / 共17页
新功能开发文档.docx_第2页
第2页 / 共17页
新功能开发文档.docx_第3页
第3页 / 共17页
新功能开发文档.docx_第4页
第4页 / 共17页
新功能开发文档.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

新功能开发文档.docx

《新功能开发文档.docx》由会员分享,可在线阅读,更多相关《新功能开发文档.docx(17页珍藏版)》请在冰豆网上搜索。

新功能开发文档.docx

新功能开发文档

保存用户访问信息记录表

createtableMA_REPORT_USR(

"USER_ID"VARCHAR(10)NOTNULL,(用户名字段)

"USER_IP"VARCHAR(15)NOTNULL,(用户IP)

"OPERATION_OBJ"VARCHAR(200),(操作对象)

"OPERATION"VARCHAR(900),(操作手段)

"OPERATION_TIME"VARCHAR(10)(操作时间)

);

LADW项目上新增内容:

记录用户对cognos报表访问的action:

CognosMesAction

packagecom.pb.sas.action;

importjava.io.IOException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.HashMap;

importjava.util.Map;

importmons.logging.Log;

importmons.logging.LogFactory;

importcom.pb.sas.service.inf.IMaReportUsrService;

importcom.pb.sas.util.UserInfo;

@SuppressWarnings("serial")

publicclassCognosMesActionextendsBaseAction{

privatestaticfinalLoglog=LogFactory.getLog(UserInfo.class);

privateIMaReportUsrServicereportService;

publicIMaReportUsrServicegetReportService(){

returnreportService;

}

publicvoidsetReportService(IMaReportUsrServicereportService){

this.reportService=reportService;

}

publicstaticLoggetLog(){

returnlog;

}

//记录用户操作cognos报表信息

@SuppressWarnings("unchecked")

publicvoidaddCognosMessage()throwsIOException

{

System.out.println("进入报表访问页面");

Stringcognospath=getRequest().getParameter("path");//报表对应名称

System.out.println("lujing"+"*****"+cognospath.substring(44,51));

StringopenDocUrl=getRequest().getParameter("url");//完成后跳转的页面

openDocUrl+="&ui.action=run&CAMUsername=806999&CAMPassword=806999&ui.object="+cognospath+"&cv.header=false&cv.toolbar=false";

System.out.println("lujing2"+"***********"+openDocUrl);

Stringcognosname=reportService.findCognos(cognospath.substring(44,51));

StringusrIp=getRequest().getRemoteAddr();//IP

UserInfouser=(UserInfo)getSession().getAttribute("user");

StringusrId=user.getUserId();//ID

Stringoperation="查看";//操作

StringoperationObj=cognosname;//被操作对象

SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");//设置日期格式

StringoperationTime=df.format(newDate()).toString();//操作时间

Mapreportmap=newHashMap();

reportmap.put("usrId",usrId);

reportmap.put("usrIp",usrIp);

reportmap.put("operation",operation);

reportmap.put("operationObj",operationObj);

reportmap.put("operationTime",operationTime);

reportService.saveMaReportUsr(reportmap);

//保存完后跳入报表页面

getResponse().sendRedirect(openDocUrl);

}

}

service接口:

IMaReportUsrService

packagecom.pb.sas.service.inf;

importjava.util.Map;

publicinterfaceIMaReportUsrService{

publicvoidsaveMaReportUsr(MapparamMap);//记录用户信息

publicStringfindCognos(Stringpath);//根据报表存放路径获取报表名称

}

Service类:

MaReportUsrService

packagecom.pb.sas.service.impl;

importjava.util.Map;

importcom.pb.sas.dao.inf.IMaReportUsrDao;

importcom.pb.sas.entity.MaReportUsr;

importcom.pb.sas.entity.MaReportUsrId;

importcom.pb.sas.service.inf.IMaReportUsrService;

publicclassMaReportUsrServiceimplementsIMaReportUsrService{

publicIMaReportUsrDaomaReportUsrDAO;

publicvoidsetMaReportUsrDAO(IMaReportUsrDaomaReportUsrDAO){

this.maReportUsrDAO=maReportUsrDAO;

}

publicIMaReportUsrDaogetMaReportUsrDAO(){

returnmaReportUsrDAO;

}

publicvoidsaveMaReportUsr(MapparamMap){

//TODOAuto-generatedmethodstub

System.out.println("jinruxitong");

StringuserId=(String)paramMap.get("usrId");

StringuserIp=(String)paramMap.get("usrIp");

StringoperationObj=(String)paramMap.get("operationObj");

Stringoperation=(String)paramMap.get("operation");

StringoperationTime=(String)paramMap.get("operationTime");

System.out.println(operationTime);

MaReportUsrIdusrID=newMaReportUsrId();

MaReportUsrusr=newMaReportUsr();

usrID.setUserId(userId);

usrID.setUserIp(userIp);

usrID.setOperation(operation);

usrID.setOperationObj(operationObj);

usrID.setOperationTime(operationTime);

usr.setId(usrID);

maReportUsrDAO.saveMaReportUsr(usr);

}

publicStringfindCognos(Stringpath){

//TODOAuto-generatedmethodstub

returnmaReportUsrDAO.findCognos(path);

}

}

IMaReportUsrDao接口

packagecom.pb.sas.dao.inf;

importcom.pb.sas.entity.MaReportUsr;

/**

*模块名:

用户访问信息记录(业务逻辑层接口)

*作者:

伍林

*日期:

XXXX年XX月XX日

*/

publicinterfaceIMaReportUsrDao{

publicvoidsaveMaReportUsr(MaReportUsrusr);//保存用户信息

publicStringfindCognos(Stringpath);//找到对应的cognos报表名称

}

MaReportUsrDao类

packagecom.pb.sas.dao.impl;

importjava.util.List;

importjava.util.Map;

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

importcom.pb.sas.dao.inf.IMaReportUsrDao;

importcom.pb.sas.entity.MaMenu;

importcom.pb.sas.entity.MaReportUsr;

importcom.pb.sas.entity.MaReportUsrId;

publicclassMaReportUsrDaoextendsHibernateDaoSupportimplementsIMaReportUsrDao{

publicvoidsaveMaReportUsr(MaReportUsrusr){

getHibernateTemplate().save(usr);

}

publicStringfindCognos(Stringpath){

Stringsql="selectmenuDescfromMaMenuwhereurllike'%"+path+"%'";

Listlist=getHibernateTemplate().find(sql);

returnlist.get(0).toString();

}

}

利用hibernate机制生成数据表对应的实体bean

在Spring的配置文件里面加入以下代码以便对ACTION的自动注入

--用户操作信息记录管理-->

在hibernate的配置文件里面加入对数据库生成的XML的映射

修改logincognos.jsp的代码,使其先记录用户要操作的信息再跳入报表的访问页面

<%@pagepageEncoding="UTF-8"%>

<%@pageimport="com.pb.sas.util.CommonConstant"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

<%

//Stringbo_url=CommonConstant.BO_URL;

//Stringcognos_url="http:

//182.10.10.3/ibmcognos/";//IIS开发20121228

Stringcognos_url="http:

//10.0.0.23/ibmcognos/";

//StringdocID=request.getParameter("docID");

//Stringtitle=request.getParameter("title");

Stringpath=request.getParameter("path");

Stringbouser="806999";;

Stringbopassword="806999";

//Stringbouser=request.getSession().getAttribute("bouser");

//Stringbopassword=request.getSession().getAttribute("bopassword");

path=.URLEncoder.encode(newString(path.getBytes("iso-8859-1"),"utf-8"),"utf-8");

//IIS���ʵ�ַ

StringopenDocUrl=cognos_url+"cgi-bin/cognos.cgi?

b_action=cognosViewer&ui.action=run&CAMUsername="+bouser+"&CAMPassword="+bopassword+"&ui.object="+path+"&cv.header=false&cv.toolbar=false";

StringpostAction="https:

//10.0.0.23:

8443/LADW/CognosMesAction_addCognosMessage.action?

path="+path+"&url="+openDocUrl;

//StringopenDocUrl=cognos_url+"cgi-bin/cognos.cgi?

b_action=cognosViewer&ui.action=run&ui.object="+path;

//����е�¼�������������������ע��͵�¼

//StringlogOffUrl=cognos_url+"cgi-bin/cognos.cgi?

b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff"

//StringlogOnUrl=cognos_url+"cgi-bin/cognos.cgi?

b_action=xts.run&m=portal/main.xts&h_CAM_action=logonAs&CAMUsername="+user+"&CAMPassword="+password;

%>

<%response.sendRedirect(postAction);%>

至于用户访问birt报表的记录信息要修改cadw项目上的内容

Java代码基本与之前是相同的

不同点在于,不用另外新建一个action,直接在reportaction的report_Name()方法里面新增代码

publicStringreport_Name(){

if(dateService==null)

{

System.out.println("******************null");

}else

{

System.out.println("*******************notnull");

}

if(reportService==null)

{

System.out.println("***********************null2");

}else

{

System.out.println("****************************notnull2");

}

Stringdate=dateService.serachDate();

getRequest().setAttribute("date",date);

getRequest().setAttribute("report_name",report_name);

System.out.println("开始保存");

System.out.println("name"+"*****************"+report_name);//报表名称

Stringbirtname=reportService.findCognos(report_name);

Stringuserid="admin";//用户ID

StringusrIp=getRequest().getRemoteAddr();//用户IP

SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

StringoperationTime=df.format(newDate()).toString();//time

Stringoperation="访问";//用户操作

Mapreportmap=newHashMap();

reportmap.put("usrId",userid);

reportmap.put("usrIp",usrIp);

reportmap.put("operation",operation);

reportmap.put("operationObj",birtname);

reportmap.put("operationTime",operationTime);

reportService.saveMaReportUsr(reportmap);

System.out.println("baocunchenggong");

returnSUCCESS;

}

修改success.jsp代码为:

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyEclipseSampleReportAccessWebpage

--kenengchuxiandianjicanshuwufabaocundexianxiang-->

<%

Stringdate=request.getAttribute("date").toString();

StringreportDir=request.getAttribute("report_name").toString();

StringopenDocUrl="/frameset?

__report=reports/"+reportDir+"&__format=HTML&__parameterpage=true&date="+date+"&date1="+date;

%>


<%

response.sendRedirect(path+"/frameset?

__report=reports/"+r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1