利用commons的StringUtils进行非正则表达式的替换
我们知道java.lang.String 的 replace()方法中,第一个参数是正则表达式 如果执行, p("***".replaceAll("*", "1")); //会报错,因为"***"不是合法的正则表达式 应该用 p(StringUtils.replace("***","*", "1")); //打印出"111"
我们知道java.lang.String 的 replace()方法中,第一个参数是正则表达式 如果执行, p("***".replaceAll("*", "1")); //会报错,因为"***"不是合法的正则表达式 应该用 p(StringUtils.replace("***","*", "1")); //打印出"111"
如 Integer.parseInt(" 5 ") ,会抛出异常
web.xml中的session-timeout的单位是分,而不是秒
存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的。 它的作用是:如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦
xmlHttp.responseText的默认编码是UTF-8 而response如果没有显式设置的话,不管request的编码是什么,response的编码就是ISO-8859-1。所以将servet 与 ajax联用的时候,注意将response的编码设成与ajax一致
使用前者,并不会自动地将 escapleXml 置为true!! 看来以后不能偷懒了,唉
发送给对象的请求和它的相应操作在运行时刻的连接就叫做“动态绑定”。动态绑定允许你在运行时刻替换有相同接口的对象,这种可替换性就叫做“多态”
是一对一关系,不是多对一关系
接口型模式: Adapter:修改类的外部接口以满足客户期望 Facade:为一组类提供简单的接口 Composit:把树和树叶都定义在同一个抽象的接口中—树节点,我认为其主要作用是方便递归 Bridge:对一个总的接口来说,扩展(从逻辑角度理解,如 碗 扩展 餐具)使用一个类层次结构,实现(从物理角度理解,如金餐具、银餐具)使用另一个类层次结构。这两个类层次结构可以相互独立。也就是说,当富人变穷,将一套金餐具换成一套泥餐具后,他们全家仍然可以顺利执行吃饭喝汤的动作 责任型模式: Singleton:将责任集中到某个类的单个实例中 Observer:使某个对象不必关心有哪些对象依赖自己 Mediator:将责任集中到某个类中,这个类可以监视其他对象的交互 Proxy:使得一个对象代表另一个对象进行各种操作,代理者能够智能地将调用转发给另一个对象 Chain of Responsibility:能够允许一个请求沿着对象链不断向上提交,直到这个请求被某一级对象处理 Flyweight:将共享的细粒度对象的责任集中在一处 构造型模式: Builder:不解 Factory Method:推迟确定需要实例化的类 Abstract Factory:构造一系列具有某个特性的对象 Prototype:根据给定的例子创建一个对象 Menento:从对象的休眠版本重新创建对象,该休眠版本包含结对象的内部状态 非GOF模式: Monostate:采用构造分别构造的两个同类对象,其实仍是同一个对象。实现办法:限制对象的所有成员变量都是静态变量
以确保该文件的路径有效. 注意,要执行该方法的主体并不是文件本身,而是这个文件所在的目录