浏览 5837 次
锁定老帖子 主题:JSP中计算页面执行(处理)时间
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-25
最后修改:2010-11-25
//在CJWBlog的用户日志首页最下方,会显示页面执行时间 Processed in 4 ms ,实现如下: //1. TimerFilter源码如下: package com.chinajavaworld.util; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; public class TimerFilter implements Filter { public static class Timer { long time; public void start() { time = System.currentTimeMillis(); } public void stop() { time = System.currentTimeMillis() - time; } public long getTime() { return time; } public Timer() { time = 0L; } } public static final String DEFAULT_TIMER_ATTRIBUTE = "cjw.timer"; private String key; public TimerFilter() { key = null; } public void init(FilterConfig filterConfig) throws ServletException { if(filterConfig.getInitParameter("key") != null) key = filterConfig.getInitParameter("key"); else key = DEFAULT_TIMER_ATTRIBUTE; } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; Timer timer = new Timer(); timer.start(); request.setAttribute(key, timer); filterChain.doFilter(servletRequest, servletResponse); timer.stop(); handleTimer(timer); } public void handleTimer(Timer timer1) { } public void destroy() { } } //2. 在web.xml中配置: <filter> <filter-name>Timer</filter-name> <filter-class>com.chinajavaworld.util.TimerFilter</filter-class> </filter> <filter-mapping> <filter-name>Timer</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> //3. 在JSP页面中写上代码: <% // Get the timer from the request as an attribute if it exists: TimerFilter.Timer timer = (TimerFilter.Timer)request.getAttribute(TimerFilter.DEFAULT_TIMER_ATTRIBUTE); if (timer != null) { timer.stop(); %> <p style="font-size:11px;">Processed in <b><%= timer.getTime() %></b> ms <%}%> //4. 完成. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-25
思路不错,还可以再设计一点,做成Tag。
不过一般不要轻易用Filter,消耗资源。 |
|
返回顶楼 | |
发表时间:2010-11-25
chan.d 写道 思路不错,还可以再设计一点,做成Tag。 不过一般不要轻易用Filter,消耗资源。 嗯;慢慢改进;谢谢提供思路哈! |
|
返回顶楼 | |
发表时间:2011-11-16
request.setAttribute(key, timer); 这一行代码是不是应该在filterChain.doFilter(servletRequest, servletResponse); 这一行的后面呢?
|
|
返回顶楼 | |