`
文章列表
Servlet生命周期分为三个阶段:   1,初始化阶段  调用init()方法   2,响应客户请求阶段  调用service()方法   3,终止阶段  调用destroy()方法 Servlet初始化阶段:   在下列时刻Servlet容器装载Servlet:     1,Servlet ...
Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。   在代码中,Servlet生命周期由接口javax.servlet.Servlet定义。所有的Java Servlet 必须直接或间接地实现javax.servlet.Servlet接口,这 ...
Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。 Servlet过滤器本身不生成请求和响应对象,它只提供过滤作用。 Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容。 在Servlet被调用后检查Response Header和Response内容,Servlet过滤器负责过滤WEB的组件可以是Servlet,JSP和HTML。 Filter接口:   每一个Servlet过滤器都会实现javax.serlvet.Filter接口,这个接口中 ...
1,HttpServletResponse对象的sendRedirect(String location)方法称作重定向。如果location地址前面加上"/",则表示相对于Servlet容器的根来请求,即http://localhost:8080,如果location地址前面没有加上"/",则表示相对于当前请求的URL来寻找地址。 RequestDispatcher的forward(request,response)方法称作请求转发 请求转发与重定向的区别。     1,请求转发,整个过程处于同一个请求当中     2,重定向,实际上客户端会向服务器 ...
Servlet本身是单实例的,这样当多个用户同时访问某个Servlet时,会访问该唯一的Servlet实例中的成员变量,如果对成员变量进行写入工作,那就会导致Servlet的多线程问题,即数据不一致。 解决Servlet多线程同步问题的方案:   1,Servlet实现了javax.servlet.singleThreadModel(Servlet2.4中已经废弃该接口),此时的Servlet容器将保证Servlet实例是以单线程的方式运行,也就是说同一时刻,只会有一个线程运行Servlet的service()方法。   不推荐使用,大大降低了效率。   2,去除实例变量,使用局部变量  推荐 ...

【缓存】ehcache

Java缓存框架 EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。   下图是 Ehcache 在应用程序中的位置:     主要的特性有:   1. 快速.   2. 简单.   3. 多种缓存策略   4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题   5. 缓存数据会在虚拟机重启的过程中写入磁盘   6. 可以通过RMI、可插入API等方式进行分布式缓存   7. 具有缓存和缓存管理器的侦听接口   8. 支持多缓存管理器实例,以及一个实例的多个缓存区域   9. 提供Hibernate ...
代理模式:为其他对象提供一种代理以控制对这个对象的访问。 优点: 1.职责清晰 2.高扩展性 3.智能化 使用场景:避免中间过程,减轻负担。典型动态代理场景:Spring AOP。 package com.syc.designpatterns.chapter12; public interface IGamePlayer { // 登录游戏 public void login(String user,String password); // 杀怪,网络游戏的主要特色 public void killBoss(); // 升级 public void upgr ...
装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 优点: 1.装饰类和被装饰类可以独立发展,而不会相互耦合。 2.装饰模式是继承关系的一个替代方案。 3.装饰模式可以动态 ...
适配器模式:将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 优点: 1.适配器模式可以让两个没有任何关系的类在一起运行,只要适配器这个角色能够搞定他们就成。 2.增加了类的透明性。 3.提高了类的复用度。 4.灵活性非常好。 package com.syc.designpatterns.chapter19; public interface IUserInfo { // 获取用户姓名 public String getUserName(); // 获得家庭地址 public String getHomeAd ...
直接选择排序的思路很简答,需要经过n-1趟比较。 优点:算法简答,容易实现。 缺点:每趟只能确定一个元素,n个数组需要进行n-1趟比较。 package com.syc.crazejava.chapter12; public class DataWrap implements Comparable<DataWrap> { int data; String flag; public DataWrap(int data,String flag){ this.data = data; this.flag = flag; } public ...
本文转自: public class TestAnonymousInterClass{       public static void main(String args[]){            TestAnonymousInterClass test=new TestAnonymousInterClass();            test.show();        }       //在这个方法中构造了一个匿名内部 ...
java.lang.System的静态方法arraycopy()可以实现数组的复制,讲课的老师说这个方法效率比较高,如果数组有成千上万个元素,那么用这个方法,比用for语句循环快不少。于是我试了试,发现以下问题。 如果是复制一个一位数组,那 ...
本文转自:http://blog.csdn.net/superbeck/article/details/4799407 长期以来一直都是做java应用的开发,所使用的开发工具基本上也都是基于java的,经常用的有eclipse, netbeans, ant, maven, cruisecontrol, tomcat, findbugs等。在使用这些工具的时候,有时候会碰到OutOfMemory的问题。 问题 -------------------------------------------------------------------------------- 一般在遇到这个问 ...
本文转自:http://www.cnblogs.com/zxp_9527/archive/2008/12/24/1361911.html 因为调试JProfile,不断修改Tomcat初始内存参数,往往Servlet还没crash,环境先崩溃,开始怀疑初始化参数的作用。废话不多说,开始研究。网上的好资料不多,有一篇解释还比较清楚,就拿来主义了。 最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(), totalMemory(), maxMemory()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory() ...
下面都是注册码 love yLR8ZC-855550-69545856608357821 Administrator NLR8ZC-855550-69545856815928409 baidu oLR8ZC-855550-6954585759478464 eclipse rLR8ZC-855550-6954585325769481
Global site tag (gtag.js) - Google Analytics