purgesessionlogcontroller.java

来自「Java的框架」· Java 代码 · 共 130 行

JAVA
130
字号
package mcaps.core.user.webapp.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Properties;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import mcap.core.user.service.UserManager;

import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.web.servlet.view.RedirectView;

/**
 * This class handles the request to purge session log.
 * @author Tan Beng Suang
 * @date 13-Sep-2005
 * @version 1.0.1.0
 */
public class PurgeSessionLogController extends AbstractController {

	private UserManager userManager;
	private SimpleDateFormat format = new SimpleDateFormat ("dd-MM-yyyy HH:mm:ss");
	
	/**
	 * Returns the userManager.
	 * @return UserManager
	 */
	public UserManager getUserManager () {
		return userManager;
	}

	/**
	 * Sets the userManager.
	 * @param userManager The userManager to set.
	 */
	public void setUserManager (UserManager userManager) {
		this.userManager = userManager;
	}

	public ModelAndView handleRequestInternal (HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		//if the request is from GET, do nothing. Just show the form.
		if (request.getMethod().equals("GET"))
			return new ModelAndView ("core/user/purgeSessionLog");
		
		//return to main page if cancel
		if (request.getParameter ("cancel") != null) {
			return new ModelAndView (new RedirectView ("mainPage.action"));
		}	
		
		
		Properties prop = new Properties ();
		String username = request.getParameter("username");
		prop.put("username", username);
		if (username.equals("All"))
			username = null;
		
		Date startDate = null;
		Date endDate = null;
		
		String day = request.getParameter("start_date_dd");
		String month = request.getParameter("start_date_mm");
		String year = request.getParameter("start_date_yyyy");
		
		if (!StringUtils.isBlank (day) && !StringUtils.isBlank (month) &&
				!StringUtils.isBlank (year)) {
			startDate = format.parse(day + "-" + month + "-" + year + " 00:00:00");
			prop.put ("start_date_dd", day);
			prop.put ("start_date_mm", month);
			prop.put ("start_date_yyyy", year);
		}
		
		day = request.getParameter("end_date_dd");
		month = request.getParameter("end_date_mm");
		year = request.getParameter("end_date_yyyy");
		
		if (!StringUtils.isBlank (day) && !StringUtils.isBlank (month) &&
				!StringUtils.isBlank (year)) {
			endDate = format.parse(day + "-" + month + "-" + year + " 23:59:59");
			prop.put ("end_date_dd", day);
			prop.put ("end_date_mm", month);
			prop.put ("end_date_yyyy", year);
		}
		
		int count = userManager.purgeSessionLog (username, startDate, endDate);
		
		saveMessage (request, getText ("sessionLogs.purged", 
						new Object[] {String.valueOf(count)}, request.getLocale ()));
		
		RedirectView view = new RedirectView ("purgeSessionLog.action");
		view.setAttributes(prop);
		return new ModelAndView (view); 
	}

	
	/**
	 * Save the message to be displayed to user in the session.
	 */
	public void saveMessage (HttpServletRequest request, String msg) {
		
		List messages = (List) request.getSession ().getAttribute ("messages");

		if (messages == null) {
			messages = new ArrayList ();
		}

		messages.add (msg);
		request.getSession ().setAttribute ("messages", messages);
	}
	
	/**
	 * Convenience method for getting a i18n key's value with arguments.
	 * @param msgKey
	 * @param args
	 * @param locale the current locale
	 * @return
	 */
	public String getText (String msgKey, Object[] args, Locale locale) {
		return getMessageSourceAccessor ().getMessage (msgKey, args, locale);
	}
}

⌨️ 快捷键说明

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