摘要:
- XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)和 阅读全文
摘要:
① 分布式缓存:缓存的本质就是内存中的哈希表,如果设计一个优质的哈希函数,那么理论上哈希表读写的渐近时间复杂度为O(1)。缓存主要用来存放那些读写比很高、变化很少的数据,这样应用程序读取数据时先到缓存中读取,如果没有或者数据已经失效再去访问数据库或文件系统,并根据拟定的规则将数据写入缓存。对网站数据 阅读全文
摘要:
① 浏览器访问优化: - 减少HTTP请求数量:合并CSS、合并JavaScript、合并图片(CSS Sprite) - 使用浏览器缓存:通过设置HTTP响应头中的Cache-Control和Expires属性,将CSS、JavaScript、图片等在浏览器中缓存,当这些静态资源需要更新时,可以更 阅读全文
摘要:
Lifecycle接口定义了每个对象的重要方法,每个对象都有自己的生命周期需求,如下: 任何spring管理的对象都可以实现这个接口。那么,当ApplicationContext自身启动和停止时,它将自动调用上下文内所有生命周期的实现。通过委托给LifecycleProcessor来做这个工作。注意 阅读全文
摘要:
在Java 语言中,从织入切面的方式上来看,存在三种织入方式:编译期织入、类加载期织入和运行期织入。编译期织入是指在Java编译期,采用特殊的编译器,将切面织入到Java类中;而类加载期织入则指通过特殊的类加载器,在类字节码加载到JVM时,织入切面;运行期织入则是采用CGLib工具或JDK动态代理进 阅读全文
摘要:
spring有2种类型转换器,一种是propertyEditor,一种是Converter。 第一种属性编辑器用法见Spring的属性编辑器的章节。如果2种转换器都适用,那么究竟会适用哪种呢?Spring默认是首先查找PropertyEditor,然后再查找Converter. 用法示例: 定义SE 阅读全文
摘要:
Spring中可以使用两个类加载资源文件:ReloadableResourceBundleMessageSource和ResourceBundleMessageSource。 可配置如下messageSource这个bean id不能变: 或者xml Spring提供了一个接口MessageSour 阅读全文
摘要:
Application下抽象子类ApplicationContextEvent的下面有4个已经实现好的事件 同样,这四个事件都继承了ApplicationEvent,如果我们想自定义事件,也可以通过继承ApplicationEvent来实现 使用示例: 1.新建一个MyEvent的类,继承Appli 阅读全文
摘要:
Spring将ApplicationContext启动的全过程,refresh函数中包含了几乎ApplicationContext中提供的全部功能,而且此函数中逻辑非常清晰明了,很容易分析对应的层次及逻辑。: ApplicationContext ac = new ClassPathXmlAppli 阅读全文
摘要:
bean类 配置xml spring不能将string转换成date类型,没有匹配的编辑器或者转换机制。如果想实现string转换成Date,有两种解决办法。 使用自定义属性编辑器 写完编辑器后还需要把编辑器注入到spring中。 或者 注册Spring自带的属性编辑器CustomDateEdito 阅读全文