All Downloads are FREE. Search and download functionalities are using the official Maven repository.

clime.messadmin.model.Request Maven / Gradle / Ivy

Go to download

Notification system and Session administration for J2EE Web Applications

There is a newer version: 4.1.1
Show newest version
/**
 * 
 */
package clime.messadmin.model;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import clime.messadmin.filter.MessAdminRequestWrapper;
import clime.messadmin.filter.MessAdminResponseWrapper;
import clime.messadmin.filter.MessAdminThreadLocal;

/**
 * @author Cédrik LIME
 */
public class Request {

	/**
	 * 
	 */
	public Request(String url) {
		super();
	}

	private void hit(final RequestInfo requestInfo, int duration) {
		//++requestInfo.hits;
		requestInfo.usedTime.registerValue(duration);
	}

	private void addRequestLength(final RequestInfo requestInfo, final MessAdminRequestWrapper request) {
		if (-1 != request.getContentLength()) {
			requestInfo.requestLength.registerValue(request.getContentLength());
		} else if (-1 != request.getRequestLength()) {
			requestInfo.requestLength.registerValue(request.getRequestLength());
		} else {
			requestInfo.requestLength.hit();
		}
	}

	private void addResponseLength(final RequestInfo requestInfo, final MessAdminResponseWrapper response) {
		if (-1 != response.getContentLength()) {
			requestInfo.responseLength.registerValue(response.getContentLength());
		} else if (-1 != response.getResponseLength()) {
			requestInfo.responseLength.registerValue(response.getResponseLength());
		} else {
			requestInfo.responseLength.hit();
		}
	}

	/*****************************************/
	/**	Request/Response Listener methods	**/
	/*****************************************/

	/**
	 * @see IRequestListener#requestInitialized(HttpServletRequest, ServletContext)
	 */
	public void requestInitialized(final RequestInfo requestInfo, HttpServletRequest request,
			ServletContext servletContext) {
		requestInfo.lastRequestDate = MessAdminThreadLocal.getStartTime().getTime();
	}

	/**
	 * @see IRequestListener#requestDestroyed(MessAdminRequestWrapper, MessAdminResponseWrapper, ServletContext)
	 */
	public void requestDestroyed(final RequestInfo requestInfo, MessAdminRequestWrapper request,
			MessAdminResponseWrapper response, ServletContext servletContext) {
		requestInfo.lastResponseDate = MessAdminThreadLocal.getStopTime().getTime();
		requestInfo.lastResponseStatus = response.getStatus();
		++requestInfo.responseStatus[(response.getStatus()/100)];
		//requestInfo.responseStatus[(response.getStatus()/100)].hit(lastResponseDate);
		addRequestLength(requestInfo, request);
		addResponseLength(requestInfo, response);
		int lastUsedTime = MessAdminThreadLocal.getUsedTime();
		hit(requestInfo, lastUsedTime);
	}

	/**
	 * @see IRequestListener#requestException(Exception, MessAdminRequestWrapper, MessAdminResponseWrapper, ServletContext)
	 */
	public void requestException(final RequestInfo requestInfo, Exception e, HttpServletRequest request, MessAdminResponseWrapper response, ServletContext servletContext) {
		++requestInfo.nErrors;
		requestInfo.lastError = new ErrorData(request, e);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy