⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logaction.java

📁 SSH框架下实现日志记录管理页面的相关功能
💻 JAVA
字号:
package com.db711.web.action.admin.log;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.log4j.Logger;

import com.db711.sys.Constant;
import com.db711.sys.StringUtil;
import com.db711.web.form.EntrySearchForm;
import com.db711.web.page.Pager;

import java.util.List;
import java.util.ArrayList;

import com.db711.data.bean.Log;
import com.db711.data.bean.UserInfo;
import com.db711.data.dao.ILogDAO;

/**
 * @Description: 实现日志记录管理页面的相关功能
 * @Company: CSSRC
 * @Copyright: Copyright (c) 2008
 * @author:周锦程
 * @since:JDK1.5
 * @version:1.0
 * @date (开发日期): 2008-03-03
 */
public class LogAction extends Action {

	ActionErrors errors = new ActionErrors();

	static Logger logger = Logger.getLogger(LogAction.class);

	private ILogDAO logDAO;

	public LogAction() {
	}

	public ActionForward execute(ActionMapping mapping, ActionForm actionForm,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		HttpSession session = request.getSession(true);

		ActionForward myforward = null;
		String myaction = mapping.getParameter();

		try {

			if ("LOG_LIST".equalsIgnoreCase(myaction)) {
				myforward = performLogList(mapping, actionForm, request,
						response);
			}

			else {
				myforward = mapping.findForward(Constant.SUCCESS);
			}
		} catch (Exception e) {
			errors.add("ErrorMessage", new ActionMessage("error.Exception"));

			logger.error(StringUtil.getLogString(((UserInfo) session
					.getAttribute(Constant.USER)).getUserAccount(), e
					.getMessage()));
			myforward = mapping.findForward(Constant.FAILURE);
		}

		return myforward;

	}

	private ActionForward performLogList(ActionMapping mapping,
			ActionForm actionForm, HttpServletRequest request,
			HttpServletResponse response) {
		try {
			UserInfo user = (UserInfo) request.getSession().getAttribute(
					Constant.USER);
			if (!(user.getUserRole().equals("admin"))) {
				// 普通用户没有日志的管理权限
				String errorSORT = Constant.errorQuanxian;
				request.setAttribute("ERRORSORT", errorSORT);
				String error = "对不起,您不是管理员,没有日志信息的管理权限!";
				request.getSession().setAttribute("PUBLICINFERROR", error);
				return mapping.findForward("warning");
			}

			EntrySearchForm queryform = (EntrySearchForm) actionForm;

			List list1 = new ArrayList();
			int offset = 0;
			int curpage = queryform.getCurpage();
			int pagesize = queryform.getPagesize();
			String searchaction = request.getParameter("searchaction");
			if (searchaction == null) {
				searchaction = "list";
			}
			// 取得查询语句
			String searchsql = getSearchsql(queryform);

			String pageOffsetTest = request.getParameter("pager.offset");
			// 不是执行翻页的时候才将查询语句保存起来
			if (pageOffsetTest == null) {
				request.getSession().setAttribute("OLDSGSEARCH", searchsql);
			}
			queryform.setSearchsql(searchsql);
			// 如果是翻页的话,要获得之前的查询语句

			if ((pageOffsetTest != null)) {

				String oldSearchSql = (String) request.getSession()
						.getAttribute("OLDSGSEARCH");
				queryform.setSearchsql(oldSearchSql);
				searchsql = oldSearchSql;
			}

			// 根据不同的操作重新设置查询语句

			if (searchaction.equals("search")) {
				curpage = 1;
				queryform.resetReseach();
			} else if (searchaction.equals("goto")) {
				if (null == searchsql) {
					searchsql = " where (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')";
				}

				offset = (curpage - 1) * pagesize;
			} else if (searchaction.equals("reset")) {
				queryform.reset();
				curpage = queryform.getCurpage();
				pagesize = queryform.getPagesize();
				searchsql = " where (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')";
			} else {

				if (null == searchsql) {
					searchsql = " where (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')";
				}
				String pageOffset = request.getParameter("pager.offset");
				if ((pageOffset == null) || pageOffset.equals("")) {
					offset = 0;
				} else {
					offset = Integer.parseInt(pageOffset);
				}
				if (pagesize != 0) {
					queryform.setCurpage((offset / pagesize) + 1);

				} else {
					queryform.setCurpage(1);
				}

			}

			List listresult = new ArrayList();
			// System.out.println(searchsql);
			list1 = logDAO.getSqlresult(searchsql);
			List<Log> list=new ArrayList<Log>();
			for(int i=0;i<list1.size();i++){
				Log log=(Log)(list1.get(i));
				log.setSerialnumber((long)(i+1));
				list.add(log);
			}
			if (list.size() < offset) {
				offset = 0;
			}
			if (pagesize != 0) {
				if (list.size() >= offset + pagesize) {
					listresult = list.subList(offset, offset + pagesize);
				} else {
					listresult = list.subList(offset, list.size());
				}
			}
			String url = request.getRequestURI();
			String pagerHeader = Pager.generateall(offset, list.size(),
					pagesize, url);
			request.setAttribute("pagerHeader", pagerHeader);
			request.setAttribute("LOGLIST", listresult);
		} catch (Exception e) {
			return mapping.findForward(Constant.FAILURE);
		}
		return mapping.findForward(Constant.SUCCESS);
	}

	private String getSearchsql(EntrySearchForm form) {
		String searchitem = form.getSearchitem();
		String searchvalue = form.getSearchvalue();
		String searchvalue1 = form.getSearchvalue1();// 开始日期
		String searchvalue2 = form.getSearchvalue2();// 结束日期
		StringBuffer searchsql = new StringBuffer();
		searchvalue1 = searchvalue1 + " 00:00:00";
		searchvalue2 = searchvalue2 + " 23:59:59";

		if (!searchvalue.equals("") && searchitem.equals("message")) {
			searchsql.append(" where (message like " + " '%"
					+ searchvalue.trim() + "%') and (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')");
		}
		else if ((!searchvalue1.equals("")) && (!searchvalue2.equals(""))
				&& searchitem.equals("createdate")) {
			searchsql.append(" where (createdate >=" + "'" + searchvalue1 + "')"
					+ " and (createdate <=" + "'" + searchvalue2 + "') and (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')");
		}
		else{
			searchsql.append(" where (category not like '%org.hibernate.tool.hbm2ddl.SchemaUpdate%')");
		}
		

		return searchsql.toString();
	}

	public ILogDAO getLogDAO() {
		return logDAO;
	}

	public void setLogDAO(ILogDAO logDAO) {
		this.logDAO = logDAO;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -