`
Java_大猫
  • 浏览: 170495 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

log4j插入数据库,并生成HTML(最终版)

阅读更多
在师父的讲解下,搞定了。本文章只用于分享学习经验,没有其他用意。希望大家培养开源的精神。

可能有有些一露的地方,大家看下前两篇文章。

public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		UserDao dao=new DaoImp();
		List<Log4j> all=new ArrayList();
		
		int pageCount = 4;//设置页数
		
		int pages=dao.getPages(pageCount);
		String webpagestr=createWebPage(pages);
		
		
		
		for(int i=0;i<pages;i++){
			
		all=dao.all(pageCount*i-i, pageCount);
		creatHtml(request, all, i,webpagestr);
		}
		
		request.setAttribute("list", all);

		return mapping.findForward("suce");
	}

	private String createWebPage(int pages) {
		//设定连接页
		StringBuilder webpagestr = new StringBuilder();
		final String pagelink="<a href=";
		for(int n=0;n<pages;n++){
			//拼接连接
			webpagestr.append(pagelink).append("log").append(n).append(".html>")
			.append(n).append("</a>")
			.append("&nbsp;");
		}
		String sss= webpagestr.toString();
		return sss;
	}

	protected void creatHtml(HttpServletRequest request, List<Log4j> all,int pages,String webpagestr)
			throws FileNotFoundException, IOException {
		//------生成HTML-------------------------------
				
				String filePath = "";
				filePath = request.getRealPath("/")+"template.html";
				
			/******** begin ************/
			
				final String beginForHtmlTag = "<###for###>";
				final String endForHtmlTag = "</###for###>";
				
			FileInputStream input=new FileInputStream(filePath);
			int length=input.available();
			byte[] b=new byte[length];
			input.read(b);    //读取模板
		
			String result = new String(b);//获取内容
			int beginIndex = result.indexOf(beginForHtmlTag);
			int endIndex = result.indexOf(endForHtmlTag);
			String begin = result.substring(0, beginIndex);
			String end = result.substring(endIndex+endForHtmlTag.length());
			
			String table=result.substring(beginIndex+beginForHtmlTag.length(), endIndex);//get table 
			/**
			 * 替换所有
			 */
			StringBuilder content=new StringBuilder();
			for(Log4j log4j:all){
				String temp = table.replace("###username###",log4j.getUsername());
				temp = temp.replace("###classs###",log4j.getClasss());
				temp = temp.replace("###method###",log4j.getMethod());
				temp = temp.replace("###leve###",log4j.getLogLevel());
				temp = temp.replace("###mess###",log4j.getMessage());
				temp = temp.replace("###titme###",log4j.getCreateTime());
				content.append(temp);
			}
			result=begin+content+"<br />current pages:"+pages+"__"+webpagestr+end;
			/******** end ************/
			
			// 根据时间得文件名
//			Calendar calendar = Calendar.getInstance();
//			String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
	
			String fileame ="log"+pages+".html";
			//生成html路径
			fileame = request.getRealPath("/")+fileame;//生成的html文件保存路径
			
			//写入
			FileOutputStream fileoutputstream = new FileOutputStream(fileame);
			byte tag_bytes[] = result.getBytes();
			fileoutputstream.write(tag_bytes);
			fileoutputstream.close();
			
			
		//---------------------------
	}
	
}


分享到:
评论

相关推荐

    log explorer数据库日志恢复

    选择数据库-&gt;attach-&gt;左面对话框中browse-&gt;view log-&gt;就可以看到log记录了 点击“View DDL Commands”里面就有很多drop table 命令 点击下面的“undo”按钮是生成表结构的语句(create table ....) 点击下面的...

    Log Explorer for SQL Server v4.22

    如果被删除数据与有IDENTITY Property属性,恢复时LogExlpore可以通过SET IDENTITY_INSERT ON 命令来对插入的数据设置Identity属性,并保留原数据不变,也可以对该列付与新值。 数据导出: 浏览日志时可将数据导出...

    sql2000 Log Explorer4.2(含注册码)+汉化

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    Log Explorer for SQL Server v4.22 含注册机

    如果被删除数据与有IDENTITY Property属性,恢复时LogExlpore可以通过SET IDENTITY_INSERT ON 命令来对插入的数据设置Identity属性,并保留原数据不变,也可以对该列付与新值。 数据导出: 浏览日志时可将数据导出...

    Log Explorer4.2帮助文档

    如果被删除数据与有IDENTITY Property属性,恢复时LogExlpore可以通过SET IDENTITY_INSERT ON 命令来对插入的数据设置Identity属性,并保留原数据不变,也可以对该列付与新值。 数据导出: 浏览日志时可将数据导出...

    mysql数据库my.cnf配置文件

    # InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 # 独立表空间优点: # 1.每个表都有自已独立的表空间。 # 2.每个表的数据和索引都会存在自已的表空间中。 # 3.可以实现单表在不同的数据库中...

    my-datagenerator:Mysql 数据生成器和 Apache DBunit GUI

    Apache DBunit 的 java Swing gui 和数据生成器,用于用随机数据填充 MySql 5.X 数据库。 功能列表: 清理所有数据库... 将生成的数据导出为sql插入语句用于调试目的的 Log4j 日志系统访问: : 了解更多信息和细节!!

    oracle数据库经典题目

    14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力...

    audit-log::bookmark_tabs:为用户行为在数据库中创建审核日志,包括用于查询日志的Web UI

    演示界面审核日志列表: 详细信息页面:安装将此行添加到您的应用程序的Gemfile中: gem "audit-log" 然后执行: $ bundle 生成文件: $ rails g audit_log:install用法在控制器中使用: class TicktsController &lt...

    Excel导入SQL数据库

    objExcelApp.ActiveChart.ChartTitle.Text = "Visitors log for each week shown in browsers percentage" objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1 objExcelApp.ActiveChart....

    informix 实用大全

    本书由专业Informix用户、数据库管理员、Informix管理员和应用程序开发员编写而成,把各大Informix产品的方方面面综合、深入地集中在一起,包括最新Informix产品的详细信息,如Informix Internet Foundation.2000...

    php网站广告管理插件 v2.0.rar

    当网站的广告比较多时,管理会很麻烦,本系统就是为方便网站上广告的管理而设计的网站插件程序,支持“广告内容 广告ID 广告备注 广告规格 ”等数种广告的搜索管理,让你很方便的查找到你加的广告并进行修改!...

    jexcelapi_2_6_12.zip

    Java Excel API—用于读取、写入和修改Excel电子表格的Java API JExcelApi Java Excel API是一个成熟的开放源码Java API,允许开发...支持使用Jakarta Commons logging、log4j、JDK 1.4 Logger等进行日志记录 更多...

    报修系统数据库设计.doc

    " " "备注 " " super_ log_info(超级管理员日志信息数据表) "编号 "字段名 "类型 "字段意义 "备注 " "1 "id "int " " " "2 "user "varchar(64) "用户名 "人物 " "3 "time "datetime "时间 "时间 " "4 "ip "varchar...

    php网站广告管理插件 v2.0

    当网站的广告比较多时,管理会很麻烦,本系统就是为方便网站上广告的管理而设计的网站插件程序,支持“广告内容 广告ID 广告备注 广告规格 ”等数种广告的搜索管理,让你很方便的查找到你加的广告并进行修改!...

    oracle使用dblink高速复制表数据的动态存储过程

    执行存储过程,通过指定目标数据库登录信息,动态生成dblink,打开游标,按批次插入本地指定表中,每批次1万条数据。同步记录和日志信息写在自动生成的sync_log表中。同步完成后自动删除动态生成的存储过程、dblink...

Global site tag (gtag.js) - Google Analytics