AWFFull 是基于 “Webalizer” 的 Web 服务器日志分析程序。AWFFull 以 HTML 格式生成使用统计信息以便用浏览器查看。结果以柱状和图形两种格式显示,这有利于解释数据。...它提供每年、每月、每日和每小时的使用统计数据,并显示网站、URL、referrer、user agent(浏览器)、用户名、搜索字符串、进入/退出页面和国家(如果一些信息不存在于处理后日志中那么就没有)...一些小的可视化调整,包括 Geolizer 用量中使用 Kb、Mb。 额外的用于 URL 计数、进入和退出页面、站点的饼图 图形上的水平线更有意义,更易于阅读。...在 Ubuntu 17.10 上安装 AWFFull sud-apt-get install awffull 配置 AWFFull 你必须在 /etc/awffull/awffull.conf 中编辑...如果你在同一台计算机上运行多个虚拟站点,则可以制作多个默认配置文件的副本。
三、Tomcat类加载 在Tomcat中类的加载稍有不同,如下图: ?...该类加载器会加载位于 WEB-INF/lib下的jar文件中的class 和 WEB-INF/classes下的class文件。Tomcat 的 Server 文件配置详解!这篇推荐大家看下。...WEB-INF/lib中加载 5、使用common类加载器在CATALINA_HOME/lib中加载 四、问题扩展 通过对上面Tomcat类加载机制的理解,就不难明白 为什么Java文件放在Eclipse...这是因为Eclipse中的src文件夹中的文件Java以及webContent中的JSP都会在Tomcat启动时,被编译成class文件放在 WEB-INF/class中。...通过这样,我们就可以简单的把Java文件放置在src文件夹中,通过对该Java文件的修改以及调试,便于学习拥有源码Java文件、却没有打包成xxx-source的jar包。
[TOC] 0x00 快速入门 在前面的学习中我们知道了XML的基础用法,和它的解析器方式包括DOM和SAX方式,在Java中处理操作XML文件常用的解决方案是Jaxp、Jdom,dom4j等等,其中后者最为常用且本文学习也是采用...xml/index.xml")); System.out.println("读取XML源文件地址: " + document.getName()); //3.获取xml中根元素...子元素名称stu 子子元素名称: name 1001:WeiyiGeek-20-中国北京东直门220号 1002:张欣欣-18-中国河北开封区小龙街道220号 0x02 Xpath基础使用 描述:在dom4j...里面支持xpath的写法,xpath其实是xml的路径语言,支持我们再解析xml的时候,能够快速的定位到具体的某一个元素中; 实验结构: ?...使用流程: 1.添加jaxen-1.1-beta-6.jar依赖流程; 2.在查找指定节点时候根据XPath语法规则来查询; 3.利用Xpath获取节点采用rootElement.selectSingleNode
[TOC] 0x00 快速入门 在前面的学习中我们知道了XML的基础用法,和它的解析器方式包括DOM和SAX方式,在Java中处理操作XML文件常用的解决方案是Jaxp、Jdom,dom4j等等,其中后者最为常用且本文学习也是采用...xml/index.xml")); System.out.println("读取XML源文件地址: " + document.getName()); //3.获取xml中根元素...子元素名称stu 子子元素名称: name 1001:WeiyiGeek-20-中国北京东直门220号 1002:张欣欣-18-中国河北开封区小龙街道220号 ---- 0x02 Xpath基础使用 描述:在dom4j...里面支持xpath的写法,xpath其实是xml的路径语言,支持我们再解析xml的时候,能够快速的定位到具体的某一个元素中; 实验结构: WeiyiGeek....使用流程: 1.添加jaxen-1.1-beta-6.jar依赖流程; 2.在查找指定节点时候根据XPath语法规则来查询; 3.利用Xpath获取节点采用rootElement.selectSingleNode
topicId=16780&forumId=13 Apache SOAP的Web Services在Tomcat上的初体验:安装和测试 下载: Apache SOAP http://xml.apache.org...2、安装Tomcat到%Tomcat%,如:F:\Program Files\Apache Group\Tomcat 3、复制%ApacheSOAP%\webapps\soap.war文件到%Tomcat...%\webapps目录下 4、启动Tomcat,此时Tomcat自动将soap.war解压了 5、在%Tomcat%\webapps\soap\WEB-INF\classes建立测试文件HelloSOAPClient.java...、HelloSOAP.java,源码附后 6、编译,进入%Tomcat%\webapps\soap\WEB-INF\classes目录 javac -classpath ....;%classpath%;F:\OpenSource\SOAP\lib\soap.jar *.java 7、SOAP服务的发布 使用IE浏览器浏览http://localhost:8080/soap
在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。...="false" autoDeploy="false"> 补充:在托管环境中Web应用程序可能不受信任,也可以设置deployXML属性为false来忽略context.xml以防给该web应用程序提高权限...补充:为了使托管在Tomcat上的所有web应用程序强制使用HTTPS,必须在每个 CATALINA_HOME/webapps/$WEBAPP/WEB-INF/web.xml 文件里每个security-constraint...可以在 CATALINA_BASE/conf/web.xml 中配置一个全局过滤器。 #该过滤器可以被每个使用 WEB-INF/web.xml 文件的应用程序覆盖。...注意事项: 因为基本上所有的权限类型(比如访问单个文件和目录或Java包)都应该根据每个应用程序进行单独配置,所以这会大大增加操作成本。另外,限制过于严格的策略文件会影响应用程序的功能。
例如,health端点提供了应用的基本健康信息。 每个端点都可以启用或禁用。这控制着端点是否被创建,并且它的bean是否存在于应用程序上下文中。...使用Spring Session对反应性Web应用程序的支持时不可用。...文件 Yes jolokia 通过HTTP暴露JMX beans(当Jolokia在类路径上时,WebFlux不可用) Yes logfile 返回日志文件内容(如果设置了logging.file或logging.path...FullGC 时,老年代的内存空间 15 jvm.gc.pause GC 耗时 是 显示在监控页面 TOMCAT 16 tomcat.sessions.created tomcat... 再给方法添加@ReadOperation,@ WritOperation或@DeleteOperation注释后,该方法将通过JMX自动公开,并且在Web应用程序中也通过HTTP公开。
数据经过网络传输都是以字节为单位的,所以所有的数据都必须能够被序列化为字节。在Java中数据要被序列化,必须继承Serializable接口。...我们能够看到的汉字都是以字符形式出现的,例如在Java中,“淘宝”两个字符在计算机中的十进制数值是28120和23453,16进制是6bd8和5d9d,即这两个字符是由这两个数字唯一表示的。...把这两个问题搞清楚后,我们看一下在Java web中哪些地方可能会存在编码转换。 用户从浏览器端发起一个Http请求,需要存在编码的地方是 URL,Cookie,Parameter。...一次HTTP请求在很多地方需要编解码。 HTTP url请求 的编码 是在浏览器 端。 HTTP url请求的解码是在服务器端 的 java 容器。比如tomcat。...在java端处理url解码有两个类: java.net.URLEncoder java.net.URLDecoder 这两个类可以将所有“%”加 UTF-8码值用UTF-8解码,从而获得原始的字符
在实际的软件开发中还需要:应用程序的监控和管理。SpringBoot的Actuator模块实现了应用的监控与管理。...在SpringBoot项目中Actuator模块提供了众多HTTP接口端点(Endpoint),来提供应用程序运行时的内部状态信息。...使用Spring Session对反应性Web应用程序的支持时不可用。...(当Jolokia在类路径上时,WebFlux不可用) GET /logfile 返回日志文件内容(如果设置了logging.file或logging.path属性的话),支持使用HTTP Range头接收日志文件内容的部分信息...比如上面示例中的gauge.response.hello: 5,它表示上一次hello请求的延迟时间为5毫秒。 counter.
阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 ? 每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。...GC日志开头的“[GC”和“[Full GC”说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。如果有“Full”,说明这次GC是发生了应用程序停顿的。...发生的区域,这里显示的区域名称与使用的GC收集器是密切相关的,例如上面样例所使用的Serial收集器中的新生代名为“Default New Generation”,所以显示的是“[DefNew”。...而在方括号之外的“3324K->152K(11904K)”表示“GC前Java堆已使用容量->GC后Java堆已使用容量(Java堆总容量)”。...整个Java堆(新生代+老年代)在回收前使用了3324k,垃圾回收后使用了152k,堆总容量是11904k,说明现在老年代没有使用内存。
configuration 里设置VM option 运行jar包, java -XX:+UseG1GC xxx.jar 线上环境 web容器:Tomcat, startup.sh -> catalina.sh...、MAT 在分析Dump文件的时候用 GC Viewer 分析GC日志 4.1jconsole Jconsole工具是JDK自带的可视化监控工具。...查看java应用程序的运行情况、监控堆信息、永久区使用情况、类加载情况等等 命令行中输入:jconsole 即可 4.2jvisualvm 监控本地java进程 可监控本地java进程的CPU,...监控远端java进程 比如监控客户端的tomcat 演示一下部署在服务器上的tomcat (1)在visualvm中选中“远程”,右击“添加” (2)主机名上写服务器的ip地址,比如31.100.39.63...5.2程序监控调优 前提:java 应用程序必然是正常运行的。. 目的:减少GC 频率,减少Full GC 发现现象才去解决?
包 (4)logs:存放tomcat在运行时产生的日志文件 (5)temp:存放运行时产生的临时文件 (6)webapps:存放应用程序 (7)work:存放tomcat运行时编译后的文件,比如...我觉得可以分为两步 (1)加载web项目中的web.xml文件,解析这个文件中的servlet标签,将其变成java中的对象 (2)在源码中用集合保存 注意第(1)步,为什么是加载web.xml文件呢...性能优化思路 既然tomcat是Java写的,最终这些代码是会跑到jvm虚拟机中的,也就是说jvm的一些优化思路也可以在tomcat中 进行落实。...在同一个时间点上,S0和S1只能有一个区有数据,另外一个是空的。 8.2.3 垃圾回收算法 为什么需要学习垃圾回收算法? Java是做自动内存管理的,自动垃圾回收。...日志分析工具 评价一个垃圾回收器的好坏:吞吐量和停顿时间 要想分析,得把GC日志打印出来才行,可以在tomcat中catalina.sh JAVA_OPTS配置相关参数 XX:+PrintGCDetails
遇到的问题 今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息。...原因分析 先来看一下Java中的异常类图: ? Throwable是Java中所有异常信息的顶级父类,其中的成员变量detailMessage就是在调用e.getMessage()返回的值。...enableSuppression) suppressedExceptions = null; } 显然,从源码中可以看到在Throwable的默认构造函数中是不会给detailMessage...所以,在程序日志中不要单纯使用getMessage()方法获取异常信息(返回值为空时,不利于问题排查)。...正确的做法 在Java开发中,常用的日志框架及组件通常是:slf4j,log4j和logback,他们的关系可以描述为:slf4j提供了统一的日志API,将具体的日志实现交给log4j与logback。
配置文件中添加以下内容 #启用端点 management: #全局配置 endpoints: #关闭默认配置(即全部内容需重新配置) enabled-by-default: false...FullGC 时,老年代的内存空间 15 jvm.gc.pause GC 耗时 是 显示在监控页面 TOMCAT 16 tomcat.sessions.created tomcat...最大配置后,拒绝的 session 个数 是 显示在监控页面,方便分析问题 22 tomcat.global.error 错误总数 是 显示在监控页面,方便分析问题 23 tomcat.global.sent...自定义 Endpoint 端点,只需要在我们的新建 Bean 上使用 @Endpoint 注解即可, Bean 中的方法就可以通过 JMX 或者 HTTP 公开。...Actuator 提供了三个用于方法上的注解,只有加三个注解的方法才支持对外公开,并且每个注解都有支持它的 HTTP method。
,我们可以在启动参数里修改我们配置文件中配置的参数。...%t.log \ ## gc日志存放的位置 -XX:+PrintHeapAtGC \ ## HotSpot在GC前后都会将GC堆的概要状况输出到log中 -XX:+PrintTenuringDistribution...=false \ ## 启用访问你日志 -Dserver.tomcat.accesslog.directory=/usr/local/springboot_demos/springboot-port8001...=.yyyy-MM-dd ## 放在日志文件名中的日期格式 -Dserver.tomcat.accesslog.rotate=true \ ## 是否启用访问日志分割...-XX:-UseGCOverheadLimit \ ## jvm gc行为中超过98%以上的时间去释放小于2%的堆空间时会报“GC overhead limit exceeded
7.垃圾回收策略调优 垃圾回收的设置也是在catalina.sh中,调整JAVA_OPTS变量。...8.添加JMS远程监控 对于部署在局域网内其它机器上的Tomcat,可以打开JMX监控端口,局域网其它机器就可以通过这个端口查看一些常用的参数(但一些比较复杂的功能不支持),同样是在JVM启动参数中配置即可...前后的详细堆栈信息 -Xloggc:filename:与上面几个配合使用,把相关日志信息记录到文件以便分析 -verbose:class 监视加载的类的情况 -verbose:gc 在虚拟机发生内存回收时在输出设备显示信息...⑦logs:存放日志,当我们需要查看日志的时候,可以查询信息。 ⑧webapps:放置我们的web应用。...18.Web请求在Tomcat请求中的请求流程是怎么样的?
scheduledtasks: # 12、显示应用程序中的计划任务,默认开启 enabled: true sessions: # 13、允许从Spring会话支持的会话存储中检索和删除...使用Spring Session对反应性Web应用程序的支持时不可用。默认开启。...enabled: true jolokia: # 17、通过HTTP暴露JMX beans(当Jolokia在类路径上时,WebFlux不可用),默认开启 enabled: true...logfile: # 18、返回日志文件内容(如果设置了logging.file或logging.path属性的话),支持使用HTTP Range头接收日志文件内容的部分信息,默认开启...","jvm.gc.memory.allocated","tomcat.global.request.max","tomcat.global.request","tomcat.sessions.expired
需要依赖 spring-integration-core loggers 显示和修改应用程序中日志的配置 logfile 返回日志文件的内容(如果已设置logging.file.name或logging.file.path...属性) metrics 获取系统度量指标信息 mappings 显示所有@RequestMapping路径的整理列表 scheduledtasks 显示应用程序中的计划任务 sessions 允许从Spring...需要使用Spring Session的基于Servlet的Web应用程序 shutdown 关闭应用,要求endpoints.shutdown.enabled设置为true,默认为 false threaddump...获取系统线程转储信息 heapdump 返回hprof堆转储文件 jolokia 通过HTTP公开JMX bean(当Jolokia在类路径上时,不适用于WebFlux)。...,如:操作系统信息(systemProperties)、环境变量信息、JDK 版本及 ClassPath 信息、当前启用的配置文件(activeProfiles)、propertySources、应用程序配置信息
jvm调优就是根据gc日志分析jvm内存分配、回收的情况来调整各区域内存比例或者gc回收的策略;更深一层就是根据dump出来的内存结构和线程栈来分析代码中不合理的地方给予改进。...Tomcat默认可以使用的内存为128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置: JAVA_OPTS='-...参数详解 -server 启用jdk 的 server 版; -Xms java虚拟机初始化时的最小内存; -Xmx java虚拟机可使用的最大内存; -XX:PermSize...中的配置中,和连接数相关的参数有: maxThreads: Tomcat使用线程来处理接收的每个请求。...您可以查看本地应用程序以及远程主机上运行的应用程序的相关数据 2、如何安装 在jkd bin目录下有一个jvisualvm.exe文件 双击就可以使用 3、如何使用jvisualvm 1、配置JMX管理
前言 最近在本地用 tomca 启动项目的时候报了一段 tomcat 缓存不足的警告:无法将位于[xxxxx/xxxxx/xxxxx]的资源添加到Web应用程序[]的缓存中,因为在清除过期缓存条目后可用空间仍不足...- 请考虑增加缓存的最大空间。...这个错一般是 tomcat 在构建静态文件的时候需要的缓存空间不够,这个警告本身不影响项目运行,但强迫症的我还是忍受不了。????...解决办法 修改 tomcat /conf 下的 content.xml,在标签下增加如下内容: <Resources cachingAllowed="true" cacheMaxSize
领取专属 10元无门槛券
手把手带您无忧上云