链接:https://pan.baidu.com/s/1kgehn-xVF5p4ZJg6P_R5Ow密码:i1i8
禁用TRACE请求关闭xpoweredBy响应头禁用SSL v3协议自定义错误页面Tomcat内部生成的错误页面包含Tomcat相关信息, 更换其错误页面编辑conf/web.xml,在</web-app>标签前添加以下内容<error-page> <error-code>404</error-code>
Host元素(conf/server.xml)autoDeploy定期检测新增或存在更新的应用,存在则触发应用的重部署或重加载。默认值为true。deployXML设置为false,Tomcat将不会解析应目录中的META-INF/context.xml文件。如果应用不使用META-INF/context.xml更改配置,建议关闭。**Context元素(conf/context.xml)**re
线程池namePrefix创建的每个线程的名称前缀,建议修改成有意义的字符串,方便后期分析线程栈。maxThreads线程池中活动线程的最大数目。决定服务的承载力。minSpareThread备用线程的最小数据。maxIdleThread活动线程数大干最小备用线程数时,空闲线程关闭之前的等待时间,单位为毫秒prestartminSpareThreads是否在启动连接池启动时预启动备用线程,建议tr
在双栈操作系统上,IPV6的套接字可以访问IPV4与IPV6的协议栈。所以只用创建一个IPV6Socket,就可以接受来自IPv4和IPv6的连接。接受的IPv4的连接,会做IPv4到IPv6的地址转换(IPv4-mapped),以适应IPv6的数据结构。有时我们用netstat看到服务只监听在IPv6的通配地址上,却可以接受IPv4的连接就是这样道理。(见参考1)禁用ipv6的Socket接受I
Tomcat的conf目录下的logger.properties为tomcat的日志配署。打开一看是不是很晕?本人也是分析代码才得到结论。handlers=1catalina.org.apache.juli.AsyncFileHandler,2localhost.org.apache.juli.AsyncFileHandler,3manager.org.apache.juli.AsyncFileH
移至本人公告号:https://mp.weixin.qq.com/s?__biz=MzI4Mjc5MDkzMQ==&mid=2247483652&idx=1&sn=1cd40465b60c049b529bca6dddf3cf12&chksm=eb95dc78dce2556e2bf5cac69dbcfdab7fe868c35ad049b79e8ed99fba1c994
Tomcat输入流,数据流动图
这一篇本来要讲一下WebSocket的协议格式,后发现有人帮我做了这件事:https://segmentfault.com/a/1190000005680323我就没必要班门弄锯了。
接上篇,这篇我们采用编程式WebSocket实现上篇的例子:服务端Endpoint,不再使用ServerEndpoint注解:public class ProgramerServer extends Endpoint { @Override public
本节描述声明式WebSocket编程,可以与后一篇编程式WebSocket作对比学习:首先上服务端:@ServerEndpoint("/chat") public class DeclarativeServer { @OnOpen public&nb
如果你的应用可以忍受Full GC带来的停顿,Throught收集器(即并行GC)能获得最高的性能。同是他使用CPU和堆的大小都比其他的收集器少(当然不包括Serial收集器,它的使用场景太有限)。如果无法忍受Full GC带来的停顿,如果可用堆较小,可以选择CMS或G1,如果可用堆较大,建议使用G1。1. 对于高负荷的应用,若GC时间不超过3%, 调优GC的优化空间比较有限,建议其他
public static void main(String[] args) throws Exception { //空实现,接受任意
最近分析HotSpot VM GC日志,就各种收集器的名称搞晕掉了,幸好参考R大(RednaxelaFX )一些回复和文章。整理在此文,以方便自已日后查阅,也可让有需要的同学少走弯路,追本溯源,一切从DefNew的来因说起。DefNew: 是使用-XX:+UseSerialGC(新生代,老年代都使用串行回收收集器)时启用ParNew: 是使用-XX:+UseParNewGC(新
JAVAEE7 JSR 342Web Application Technologies:Java API for WebSocket JSR 356Java API for JSON Processing JSR 353Java Servlet 3.1 JSR 340JavaServer Faces 2.2 JSR 344Expression Language 3.0 JSR 341JavaSer
Java web开发过程经常遇到乱码,本篇我们探讨一下乱码产生的原因与解决思路。一次完整的Web请求会有4次编解码转换,如下所示。 第一次:客户端(通常为浏览器)将字符转换成TCP字节流发向服务器。这里有一次字符到字节的转换。第二次:服务器读取客户端发来的TCP字节流,转换成字符串。这里是一次字节到字符的转换。第三次:服务器将结果字符串换成TCP字节流发向客户端。这里又有一次字符到字节的
http://leanote.com/blog/post/57e60cbdab64416b5501a609 图片上传失真,所以加链接上来。
直接上代码,代码依赖tomcat的tomcat-coyote.jar。 package guojje.tools; import java.io.File; import java.io.FileInputStream; import java.io.FilenameFilter; import java.io.IOException; impo
转自:https://fralef.me/tomcat-disable-jsessionid-in-url.html
早天看到一遍关于JDK日志层级的文章,原文:http://tutorials.jenkov.com/java-logging/logger-hierarchy.html一路被这个文章讲的晕头转向。什么 forward,Passed,propagated等等。JDK为什么把他设计的那么复杂,今天看一下JDK的代码。发现他测试的结果是对的,但讲法的差强人意。日志结构却如上图树形所示,但Log
同样的代码:public class TestBatch { public static void main(String[] args) throws SQLException, ClassNotFoundException { //Class.forName(
代码验证:package com.guojje; import java.io.IOException; import java.util.concurrent.CountDownLatch; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public cl
接上篇:http://guojuanjun.blog.51cto.com/277646/1423392我们提到过远程对象的调用是通过网络通信的方式进行远程对象方法的调用。既然是网络通信,自然会提到安全问题。如何给远程对象的通信加上安全呢?奥秘依在UnicastRemoteObject类中,其中一个构造方法:/** * Creat
接上:http://guojuanjun.blog.51cto.com/277646/1423392这一次我们从学习RegistryImpl_Stub.java和RegistryImpl_Skel.java的实现上学习远程方法的调用过程。RegistryImpl_Stub.bind:public void bind(java.lang.String $param_St
讨论开始之前,我们先看看网上的一个例子,这个例子我腾抄了一分,没有用链接的方式,只是为了让大家看得方便,如有侵权,我立马***。定义远程接口:package com.guojje; import java.rmi.Remote; import java.rmi.RemoteException; public interface IHello&nbs
JDK1.5以前RMI调用是需要存根与代理的,1.2之后代理类好像看不到了.rmic只会生成存根类.(1.2之前的JDK,我也没试过,我学习JAVA的时候,1.5就出来了)开发RMI应用时,在进行bind对象时,会检测远程对象所对应的存根是否存在.这就是常发生的*_stub.class找不到的问题. STUB用在客户端调用时,Rmi Registry为什么要检测他呢?这是因为当客户端通过Namin
今天同事写了几行类似这样的代码:public static void main(String args[]) { List<String> famous = new ArrayList<String>(); famous.add("liudehua"); famous.add("madehua"); famous.add("liushishi
This table captures the history of the JAXB RI integration into JDK. This is for information purposes only. In particular, the JAXB RI in JDK ispackage renamed to avoid any conflict with the stand-alo
大家知道采用<%@ include file=""%>方式包含文件时,需要在被包含文件里指定其pageEncoding.否则无法获取到对应的pageEncoding,则tomcat采用iso8850-1来读取被包含文件,被包含文件含有中文时就会出现乱码。但如果include的是一个html,txt等静态文件就比较麻烦。现在测试出一个方案就是在web.xml里添加:
今天从网上抄了个Spring MVC的demo. 发现Controller方法上采用@RequestMapping("/hello")作为Request与Controller的映射。但对于/hello.html居然也会走这个方法。不解,调查发现在DefaultAnnotationHandlerMapping类有一个addUrlsForPath方法:/** * Add
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号