在网站性能的相关工作中,一个重要的方面是有一定的监控和日志统计,然后对这些数据进行分析,知道什么时候慢了,慢在哪里,然后才可以进行有针对性的性能优化工作;
这里,80/20准则是非常适用的,我所见过的大部分情况都是约80%页面都是没问题的,但是有约20%的页面的性能较差;
监控http请求的处理时间的方法有很多,这里介绍一种javaweb程序中监控/统计http请求处理时间的简便方法:就是利用Filter来统计所有请求的处理时间;
Filter是j2ee的一种过滤器模式,可以在一个filterchain上挂很多个不同的filter,做各种的处理,比如安全、编码等;filter可以指定对应到哪些url,如果指定url-pattern为/*,那么就可以做对所有请求的统计
添加一个Filter名为PerfFilter, 在web.xml添加如下代码
<filter> <display-name>PerfFilter</display-name> <filter-name>PerfFilter</filter-name> <filter-class>PerfFilter</filter-class> </filter> <filter-mapping> <filter-name>PerfFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后在PerfFilter中有如下代码
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; long t1 = System.currentTimeMillis(); chain.doFilter(request, response); long t2 = System.currentTimeMillis(); System.out.println(“***request (” + req.getRequestURI() + “) finished with time(ms): ” + (t2-t1) ); }
这时候,所有的http请求,无论是servlet,jsp还是其他各种框架的实现,比如struts,springmvc,jsf等,都可以被这个Filter统计到,可以方便后续的日志分析工作[实际中通常将System.out换成相关的logger],找到较慢的请求,然后重点该进。
例如,本地访问servlet和jsp,就会在控制台看到如下输出;
***request (/webtest/TestServlet) finished with time(ms): 5000
***request (/webtest/jsp1.jsp) finished with time(ms): 3000
有必要的话,还可以将请求相关的参数打印出来,因为实际工作中,不少请求的响应时间是和参数密切相关的;
这种做法的好处是有一个单独、统一的性能日志,系统以后添加任何servlet/jsp或者切换框架,都不需要任何改动;
相关推荐
6. **Filter和Listener**:在JavaWeb中,Filter可以拦截请求和响应,进行预处理或后处理,如身份验证、日志记录。Listener则监听特定事件,如会话创建或销毁。源码中可能包含自定义的Filter和Listener实现。 7. **...
5. **过滤器(Filter)与监听器(Listener)**:Filter可以对HTTP请求和响应进行预处理和后处理,实现如权限控制、字符编码转换等功能。Listener可以监听特定事件,如Session创建、销毁,以及ServletContext的变化等...
在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它主要用于对HTTP请求和响应进行拦截、修改或处理。本教程将深入讲解JDBC与过滤器Filter的结合使用,帮助开发者更好地理解和应用这一技术。 首先,理解...
JavaWeb程序设计通常涉及以下组件:Servlet、JSP(JavaServer Pages)、Filter、Listener等。Servlet是Java Web应用的核心,用于处理客户端请求并返回响应。JSP则允许开发者使用HTML语法来嵌入Java代码,简化视图层...
Filter是JavaWeb中的一个中间件,它可以拦截请求和响应,执行一些预处理或后处理操作,如登录检查、数据过滤、字符编码转换等。创建Filter需要实现`javax.servlet.Filter`接口: ```java import javax.servlet.*; ...
11. **Web容器**: 如Tomcat、Jetty等,它们提供了运行JavaWeb应用的环境,负责Servlet的生命周期管理和请求响应。 12. **部署描述符(web.xml)**: 是JavaWeb应用的配置文件,用于配置Servlet、Filter、Listener...
2. **第4章 Filter(过滤器)**:在JavaWeb应用中,Filter是用于拦截请求和响应的重要组件。它允许我们在请求到达目标Servlet或JSP之前以及响应返回客户端之后进行预处理和后处理,例如实现登录检查、URL编码解码、...
JavaWeb小程序是初学者入门Web开发的一个典型项目,它基于MVC(Model-View-Controller)架构模式,这种模式在Web应用中广泛使用,能够有效分离业务逻辑、数据处理和用户界面。MVC模式的核心思想是将应用程序的不同...
Filter,即过滤器,是一种能够拦截HTTP请求和响应的机制,允许开发者在请求到达Servlet之前或Servlet响应返回给客户端之后进行处理。这种处理可以包括数据验证、日志记录、安全控制、字符编码转换等多种任务。 ...
在JavaWeb开发中,过滤器(Filter)是一个重要的概念,它允许我们在请求被发送到目标资源(如Servlet、JSP页面)之前或之后对请求进行处理。本项目"javaWeb项目 filter练习"主要关注了两个核心的应用场景:编码过滤...
6. **过滤器与监听器**:在JavaWeb中,过滤器(Filter)可以对请求和响应进行预处理和后处理,例如字符编码转换、权限控制等。监听器(Listener)则监听Web组件的生命周期事件,如session创建、销毁等。 7. **会话...
9. **过滤器和监听器**:Filter和Listener是JavaWeb中的重要组件。过滤器可以在请求到达Servlet之前或响应离开Servlet之后对其进行处理,监听器则可以监听特定的Web事件,如session的创建和销毁。 10. **部署描述符...
综上所述,“用户统计JavaWeb”涉及到了多个方面的技术和方法,包括使用Filter和Listener来监控用户的登录状态、通过HttpSession存储用户信息、以及利用ServletContext来实现全局数据共享等。通过这些技术和方法的...
3. **HTTP协议理解**:请求方法GET和POST的区别,请求头和响应头的使用,以及会话管理的概念。 4. **JDBC数据库操作**:连接数据库,执行SQL语句,处理结果集,以及事务管理等基本操作。 5. **MVC模式**:模型-...
4. Filter(过滤器):Filter接口允许我们在数据被发送到响应或者请求被发送到目标之前对HTTP请求和响应进行拦截处理。在chap10中,可能存在一个"LoggingFilter",用于记录每个请求的详细信息,或者"EncodingFilter...
Servlet是Java为Web应用程序设计的一种小型Java应用程序,它扩展了Web服务器的功能,能够处理HTTP请求并生成响应。JSP则是用于创建动态网页的工具,将HTML和Java代码混合在一起,使得视图和逻辑分离。 在源码中,你...
JavaWeb应用是使用Java语言开发的、运行在服务器端的应用程序,能够处理来自客户端(如浏览器)的请求,并返回相应的动态内容。这些应用通常由HTML、CSS、JavaScript以及Java Servlets、JSP(JavaServer Pages)等...
6. **过滤器(Filter)与监听器(Listener)**:过滤器在请求到达目标资源之前进行预处理,响应之后进行后处理,可以实现如权限控制、编码转换等功能。监听器可以监听特定事件,如session的创建、销毁等,常用于实现...
JavaWeb开发技术中的Filter映射是构建Web应用程序的关键部分,它允许开发者在HTTP请求处理的生命周期中添加自定义逻辑。Filter是一种特殊的Java类,能够拦截客户端到服务器端的请求和服务器响应,对数据进行预处理...
过滤器(Filter)可以对请求和响应进行拦截和处理,例如权限验证、字符编码转换等。监听器(Listener)则可以监听特定事件,如会话创建、销毁等,以实现特定功能,如会话超时处理。 **7. 页面跳转与请求转发** 在...