- 博客(20)
- 资源 (41)
- 收藏
- 关注
原创 Servlet 是线程安全的吗?
概要Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 那么 web 容器能为每个请求创建一个Servlet的实例吗?当然是可以的,只要Servlet实现SingleThreadModel接口,就可以了。SingleThreadModel该接口为每次请求创建一个servlet实例。此接口没有方法,跟Seriali
2017-09-07 11:00:14 19777
原创 Tomcat Filter 自己动手实现
Filter 简介Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 它主要用于对用户请求进行预处理,也可以对HttpServletR
2017-09-07 10:59:26 3517
原创 Spring mvc DispatchServlet 实现机制
在Spring中, ContextLoaderListener只是辅助类,在web 容器启动的时候查找并创建WebApplicationContext对象,通过该对象进行加载spring的配置文件。而真正的逻辑实现其实是在DispatcherServlet中进行的,DispatcherServlet是实现servlet接口的实现类。DispatcherServlet 在 web.xml 中的配
2017-09-30 09:47:33 2943
原创 Spring bean 标签加载、解析过程分析
概述上一篇【Spring 加载、解析applicationContext.xml 流程】分析了从xml文件加载到开始解析xml里面的标签为止,基本都是跟spring 真正的核心没什么关系。 这篇我们分析 applicationContext.xml 中的bean 标签解析。parseDefaultElement() 方法org.springframework.beans.fact
2017-09-30 09:46:27 1982
原创 Spring mvc ContextLoaderListener 原理解析
对于熟悉Spring MVC功能,首先应从web.xml 开始,在web.xml 文件中我们需要配置一个监听器 ContextLoaderListener,如下。listener> listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> listener>
2017-09-28 13:47:29 3886
原创 Java 动态代理 原理解析
概要AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。Spring中的动态代理是使用Cglib进行实现的。我们这里分析的是JDK中的动态代理实现机制。下面我们通过例子快速了解JDK中的动态代理实现方式。示例需要代理的接口
2017-09-28 13:46:22 1881
原创 Spring mvc 内置编码过滤器原理解析
在Spring mvc框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodingFilter。web.xml 中 添加如下配置:filter> filter-name>characterEncodingFilterfilter-name> filter-class>org.springf
2017-09-28 13:45:34 2411
原创 spring 循环依赖注入
什么是循环依赖循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如A引用B,B引用C,C引用A,则它们最终反映为一个环。spring 中循环依赖注入分三种情况 1. 构造器循环依赖 2. setter方法循环注入 2.1 setter方法注入 单例模式(scope=singleton) 2.2 setter方法注入 非单例模式我们首先创造3个互相依赖的bea
2017-09-28 13:43:48 12755 2
原创 spring 之 import标签、alias标签、beans标签 解析
继续接着Spring 加载、解析applicationContext.xml 流程解析 import 、 alias、beans 标签。DefaultBeanDefinitionDocumentReader.parseDefaultElement() 1. import 标签解析标签示例<import resource="user-appalicationContext.xml"/>解析impo
2017-09-28 13:42:59 2784
原创 Spring bean 标签加载、解析过程分析
概述上一篇【Spring 加载、解析applicationContext.xml 流程】分析了从xml文件加载到开始解析xml里面的标签为止,基本都是跟spring 真正的核心没什么关系。 这篇我们分析 applicationContext.xml 中的bean 标签解析。parseDefaultElement() 方法org.springframework.beans.factory.xml.D
2017-09-28 13:41:13 2098
原创 Spring 加载、解析applicationContext.xml 流程
概要Spring 框架使用了BeanFactory 进行加载 xml 和生成 bean 实例。下面我们分析下Spring加载xml文件的过程。 spring 版本是最新的 4.3.9 release 版本示例XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("bean.xml"));User user = User.cla
2017-09-28 13:40:20 7062
原创 spring bean 基于xml的4中初始化方法
本例主要介绍基于xml文件配置的4中初始化方法 1、使用property配置Bean 2、使用P标签简化配置Bean 3、使用构造函数初始化Bean 4、使用基础来初始化BeanapplicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sc
2017-09-28 13:39:08 3499
原创 编码规范
代码格式化设置:统一使用tab缩进,一个tab占用4个空格宽度,120字符换行。代码提交前必须进行格式化。JAVA代码提交不允许出现红叉、尽量也不要出现警告。[.classpath] [.project] [.git] [.idea] [.settings] [.iml] 等文件不允许提交。Controller类名称去掉Controller这几个字符,并且首字母小写后,应该与访问地址中对应部
2017-09-28 13:38:06 1704
原创 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
原创 JSP 热部署 源码解析
概述我们知道在开发工程的时候jsp文件是即修改即生效的。Tomcat jsp热部署的实现原理是每个JSP页面从上次访问到下次访问总是有默认几秒的缓存时间的,也就说并不是严格的即修改即生效,tocmat7默认是有4秒的缓存延迟的。这个默认的缓存延迟是在类 EmbeddedServletOptions 的 private intmodificationTestInterval = 4; 这个属性定义的。
2017-09-07 11:01:55 2040
原创 Tomcat WebappClassLoader 类加载机制源码分析
需要了解的知识JVM 类加载机制深入浅出tomcat中的ClassLoader启动类加载器(BootStrap ClassLoader):引导类装入器是用本地代码实现的类装入器,它负责将 jdk中jre/lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作
2017-09-07 11:01:10 7193 3
原创 Tomcat Filter 源码分析
Filter 概述Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。 通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。Filter工作
2017-09-07 10:58:35 4403 1
原创 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
原创 java.util.Random 实现原理
概述该类的实例被用于生成伪随机数的流。该类使用一个 48 位的种子,它被一个线性同余公式所修改。如果 Random 的两个实例用同一种子创建,对每个实例完成同方法调用序列它们将生成和返回相同的数序列成同一方法调用序列,它们将生成和返回相同的数序列。示例public class RandomTest { public static void main(String[] args) {
2017-09-07 10:56:50 3173
原创 Tomcat 怎么停止服务的?
通过分析 Tomcat catalina.bat 原理解析时,发现启动tomcat和关闭tomcat都是调用 MAINCLASS 启动类进行操作的。这里有个疑问,既然都是通过调用 MAINCLASS 类进行操作的,那就是启动tomcat服务是一个进程、关闭tomcat服务应该是另一个进程。那么如果是多个进程,是怎么互相操作的呢?带着疑问我们分析下tomcat的源码。客户端操作(shutdown操作)
2017-09-07 10:54:58 4118
HTML5 世界地图 划分世界区域并显示国家名
2017-12-20
jdk源码share.rar
2017-09-07
openjdk8 源码 包括 jvm的实现
2017-09-07
JAVA网络编程 第4版.pdf
2017-09-07
MySQL必知必会(文字版).pdf
2017-09-07
Java数据结构和算法.(第二版).pdf
2017-09-07
Java RESTful Web Service实战.pdf
2017-09-07
MySQL性能调优与架构设计--全册.pdf
2017-09-07
mysql技术内幕InnoDB存储引擎.pdf
2017-09-07
深入java虚拟机 周志明
2017-09-07
javaFX 基础教程
2015-05-26
GB8567-2006计算机软件文档编制规范
2014-05-06
axis 实现 webservice 例子
2012-08-24
web 编译器
2011-12-06
JNI实例 Java调用DLL c++调用Java
2010-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人