tomcat
汲建帅
这个作者很懒,什么都没留下…
展开
-
Tomcat startup.bat 原理分析
startup.bat 解析验证CATALINA_HOME 环境变量是否设置,如果没有设置则通过CATALINA_HOME/bin目录下查找catalina.bat文件来确定CATALINA_HOME环境变量是否有效,如果没有找到catalina.bat 则goto end,结束。 验证catalina.bat是否存在,如果不能存在则结束。 判断启动 startup.bat 是否有参数,如果有参原创 2017-08-27 14:29:16 · 1778 阅读 · 0 评论 -
Tomcat 怎么停止服务的?
通过分析 Tomcat catalina.bat 原理解析时,发现启动tomcat和关闭tomcat都是调用 MAINCLASS 启动类进行操作的。这里有个疑问,既然都是通过调用 MAINCLASS 类进行操作的,那就是启动tomcat服务是一个进程、关闭tomcat服务应该是另一个进程。那么如果是多个进程,是怎么互相操作的呢?带着疑问我们分析下tomcat的源码。客户端操作(shutdown操作)原创 2017-09-07 10:54:58 · 4115 阅读 · 0 评论 -
Tomcat connector 实现原理
Bootstrap.main()->Bootstrap.init() bootstrap.init() 方法中设置catalinaDaemon创建 Connector 对象Bootstrap.main()->Bootstrap.start()->Catalina.start()->Catalina.load()->Catalina.createStartDigester()createStartD原创 2017-09-07 10:57:49 · 2041 阅读 · 0 评论 -
Tomcat Filter 源码分析
Filter 概述Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。 通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。Filter工作原创 2017-09-07 10:58:35 · 4402 阅读 · 1 评论 -
Tomcat Filter 自己动手实现
Filter 简介Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 它主要用于对用户请求进行预处理,也可以对HttpServletR原创 2017-09-07 10:59:26 · 3515 阅读 · 0 评论 -
Servlet 是线程安全的吗?
概要Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 那么 web 容器能为每个请求创建一个Servlet的实例吗?当然是可以的,只要Servlet实现SingleThreadModel接口,就可以了。SingleThreadModel该接口为每次请求创建一个servlet实例。此接口没有方法,跟Seriali原创 2017-09-07 11:00:14 · 19775 阅读 · 0 评论 -
Tomcat WebappClassLoader 类加载机制源码分析
需要了解的知识JVM 类加载机制深入浅出tomcat中的ClassLoader启动类加载器(BootStrap ClassLoader):引导类装入器是用本地代码实现的类装入器,它负责将 jdk中jre/lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作原创 2017-09-07 11:01:10 · 7187 阅读 · 3 评论 -
JSP 热部署 源码解析
概述我们知道在开发工程的时候jsp文件是即修改即生效的。Tomcat jsp热部署的实现原理是每个JSP页面从上次访问到下次访问总是有默认几秒的缓存时间的,也就说并不是严格的即修改即生效,tocmat7默认是有4秒的缓存延迟的。这个默认的缓存延迟是在类 EmbeddedServletOptions 的 private intmodificationTestInterval = 4; 这个属性定义的。原创 2017-09-07 11:01:55 · 2039 阅读 · 0 评论 -
Tomcat 之 Session的活化和钝化 源码分析
概要Session活化:从硬盘上读取序列化的session到内存中 Session钝化:把内存中的session序列化到硬盘上Tomcat中两种Session钝化管理器session钝化机制是由sessionManager管理 tomcat提供了以下这两种session处理方式org.apache.catalina.session.StandarManagerorg.apache.catali原创 2017-09-28 13:37:08 · 2611 阅读 · 0 评论