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

📄 requestlogger.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	{		RequestData rd = getCurrentRequest();		if (value instanceof Session)		{			rd.addEntry("Session created");		}		else if (value instanceof Page)		{			Page page = (Page)value;			rd.addEntry("Page created, id: " + page.getId() + ", class:" + page.getClass());		}		else if (value instanceof IPageMap)		{			IPageMap map = (IPageMap)value;			rd.addEntry("PageMap created, name: " +					(map.getName() == null ? "DEFAULT" : map.getName()));		}		else		{			rd.addEntry("Custom object created: " + value);		}	}	/**	 * @see org.apache.wicket.protocol.http.IRequestLogger#logResponseTarget(org.apache.wicket.IRequestTarget)	 */	public void logResponseTarget(IRequestTarget target)	{		getCurrentRequest().addResponseTarget(getRequestTargetString(target));	}	/**	 * @see org.apache.wicket.protocol.http.IRequestLogger#logEventTarget(org.apache.wicket.IRequestTarget)	 */	public void logEventTarget(IRequestTarget target)	{		getCurrentRequest().addEventTarget(getRequestTargetString(target));	}	/**	 * @param target	 * @return The request target nice display string	 */	private String getRequestTargetString(IRequestTarget target)	{		AppendingStringBuffer sb = new AppendingStringBuffer(128);		if (target instanceof IListenerInterfaceRequestTarget)		{			IListenerInterfaceRequestTarget listener = (IListenerInterfaceRequestTarget)target;			sb.append("Interface[target:");			sb.append(Classes.simpleName(listener.getTarget().getClass()));			sb.append("(");			sb.append(listener.getTarget().getPageRelativePath());			sb.append("), page: ");			sb.append(listener.getPage().getClass().getName());			sb.append("(");			sb.append(listener.getPage().getId());			sb.append("), interface: ");			sb.append(listener.getRequestListenerInterface().getName());			sb.append(".");			sb.append(listener.getRequestListenerInterface().getMethod().getName());			sb.append("]");		}		else if (target instanceof IPageRequestTarget)		{			IPageRequestTarget pageRequestTarget = (IPageRequestTarget)target;			sb.append("PageRequest[");			sb.append(pageRequestTarget.getPage().getClass().getName());			sb.append("(");			sb.append(pageRequestTarget.getPage().getId());			sb.append(")]");		}		else if (target instanceof IBookmarkablePageRequestTarget)		{			IBookmarkablePageRequestTarget pageRequestTarget = (IBookmarkablePageRequestTarget)target;			sb.append("BookmarkablePage[");			sb.append(pageRequestTarget.getPageClass().getName());			sb.append("]");		}		else if (target instanceof ISharedResourceRequestTarget)		{			ISharedResourceRequestTarget sharedResourceTarget = (ISharedResourceRequestTarget)target;			sb.append("SharedResource[");			sb.append(sharedResourceTarget.getResourceKey());			sb.append("]");		}		else		{			sb.append(target.toString());		}		return sb.toString();	}	/**	 * This class hold the information one request of a session has.	 * 	 * @author jcompagner	 */	public static class SessionData implements IClusterable, Comparable	{		private static final long serialVersionUID = 1L;		private final String sessionId;		private final long startDate;		private long lastActive;		private long numberOfRequests;		private long totalTimeTaken;		private long sessionSize;		private Object sessionInfo;		/**		 * Construct.		 * 		 * @param sessionId		 */		public SessionData(String sessionId)		{			this.sessionId = sessionId;			startDate = System.currentTimeMillis();			numberOfRequests = 1;		}		/**		 * @return The last active date.		 */		public Date getLastActive()		{			return new Date(lastActive);		}		/**		 * @return The start date of this session		 */		public Date getStartDate()		{			return new Date(startDate);		}		/**		 * @return The number of request for this session		 */		public long getNumberOfRequests()		{			return numberOfRequests;		}		/**		 * @return Returns the session size.		 */		public long getSessionSize()		{			return sessionSize;		}		/**		 * @return Returns the total time this session has spent.		 */		public long getTotalTimeTaken()		{			return totalTimeTaken;		}		/**		 * @return The session info object given by the {@link ISessionLogInfo#getSessionInfo()}		 *         session method.		 */		public Object getSessionInfo()		{			return sessionInfo;		}		/**		 * @return The session id		 */		public String getSessionId()		{			return sessionId;		}		void addTimeTaken(long time)		{			lastActive = System.currentTimeMillis();			numberOfRequests++;			totalTimeTaken += time;		}		void setSessionInfo(Object sessionInfo)		{			this.sessionInfo = sessionInfo;		}		void setSessionSize(long size)		{			sessionSize = size;		}		public int compareTo(Object sd)		{			return (int)(((SessionData)sd).lastActive - lastActive);		}	}	/**	 * This class hold the information one request of a session has.	 * 	 * @author jcompagner	 */	public static class RequestData implements IClusterable	{		private static final long serialVersionUID = 1L;		private long startDate;		private long timeTaken;		private final List entries = new ArrayList(5);		private String eventTarget;		private String responseTarget;		private String sessionId;		private long totalSessionSize;		private Object sessionInfo;		private int activeRequest;		/**		 * @return The time taken for this request		 */		public Long getTimeTaken()		{			return new Long(timeTaken);		}		/**		 * @param activeRequest		 *            The number of active request when this request happened		 */		public void setActiveRequest(int activeRequest)		{			this.activeRequest = activeRequest;		}		/**		 * @return The number of active request when this request happened		 */		public int getActiveRequest()		{			return activeRequest;		}		/**		 * @return The session object info, created by {@link ISessionLogInfo#getSessionInfo()}		 */		public Object getSessionInfo()		{			return sessionInfo;		}		/**		 * Set the session info object of the session for this request.		 * 		 * @param sessionInfo		 */		public void setSessionInfo(Object sessionInfo)		{			this.sessionInfo = sessionInfo;		}		/**		 * @param sizeInBytes		 */		public void setSessionSize(long sizeInBytes)		{			totalSessionSize = sizeInBytes;		}		/**		 * @param id		 */		public void setSessionId(String id)		{			sessionId = id;		}		/**		 * @return The time taken for this request		 */		public Date getStartDate()		{			return new Date(startDate);		}		/**		 * @return The event target string		 */		public String getEventTarget()		{			return eventTarget;		}		/**		 * @return The response target string		 */		public String getResponseTarget()		{			return responseTarget;		}		/**		 * @param target		 */		public void addResponseTarget(String target)		{			responseTarget = target;		}		/**		 * @param target		 */		public void addEventTarget(String target)		{			eventTarget = target;		}		/**		 * @param timeTaken		 */		public void setTimeTaken(long timeTaken)		{			this.timeTaken = timeTaken;			startDate = System.currentTimeMillis() - timeTaken;		}		/**		 * @param string		 */		public void addEntry(String string)		{			entries.add(string);		}		/**		 * @return All entries of the objects that are created/updated or removed in this request		 */		public String getAlteredObjects()		{			AppendingStringBuffer sb = new AppendingStringBuffer();			for (int i = 0; i < entries.size(); i++)			{				String element = (String)entries.get(i);				sb.append(element);				if (entries.size() != i + 1)				{					sb.append("<br/>");				}			}			return sb.toString();		}		/**		 * @return The session id for this request		 */		public String getSessionId()		{			return sessionId;		}		/**		 * @return The total session size.		 */		public Long getSessionSize()		{			return new Long(totalSessionSize);		}		public String toString()		{			return "Request[timetaken=" + getTimeTaken() + ",sessioninfo=" + sessionInfo +					",sessionid=" + sessionId + ",sessionsize=" + totalSessionSize + ",request=" +					eventTarget + ",response=" + responseTarget + ",alteredobjects=" +					getAlteredObjects() + ",activerequest=" + activeRequest + "]";		}	}}

⌨️ 快捷键说明

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