`
flustar
  • 浏览: 96999 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
一、什么是拦截器? 提到拦截器,使我不得不想起武侠剧中劫匪们常说的一句话:“此山是我开,此树是我栽,要打此路过,留下买路财!”。难不成程序中也有“打劫”的,说的没错,拦截器就是个打劫的。在现实生活中,劫匪劫的大都是钱财,当然也有别的什么,那么程序中的“劫匪”劫的又是什么呢?或者说程序中为什么需要它?在我们的日常编程中少不了写一些重复的代码,例如在一个地方中写了一段代码,后来发现这段代码在其它地方中同样需要,在传统的编程中我们一定会采取复制、粘贴的办法。如果这段代码只在这一两个处需要,我们采取这种办法,还说的过去,但是如果系统对这段代码过于依赖,也就是这段代码在系统中出现的过多,如果那一天我们发 ...
在web应用中,文件上传似乎是很常见的,但是采用传统的方法不但复杂而且难以控制,需要写很多代码,像控制文件大小、文件类型的过滤、存放目录等等。这些复杂的问题在Struts2中已经不存在了,struts2默认使用common-fileupload实现文件的上传。在struts.properties中我们可以看到:struts.multipart.parser=Jakarta 。下面我们就以Common-FileUpload来实现文件上传。 首先,把commons-fileupload.jar和commons-io.jar拷贝到classpath路径下。 建立一个上传文件的页面,upload.j ...
在Struts2中Action部分,也就是Controller层采用了低侵入的方式。为什么这么说?这是因为在Struts2中action类并不需要继承任何的基类,或实现任何的接口,更没有与Servlet的API直接耦合。它通常更像一个普通的POJO(通常应该包含一个无参数的execute方法),而且可以在内容定义一系列的方法(无参方法),并可以通过配置的方式,把每一个方法都当作一个独立的action来使用,从而实现代码复用。 例如: package example; public class UserAction {        private String username;    ...
学习Struts2也有一段时间了,早就想写一些关于它的文章,可由于自己太懒了,不想动手去写,最近看到blogjava中一位叫max的大侠写的struts2专栏很不错,使我更不想写了(有点自卑啊,呵呵)。但这段时间自己实在也太无聊了,于是还是写写吧。        每学习一个框架,我们都免不了要学习一些关于的配置文件,struts2也不例外,下面我就讲一下struts2中几个主要的配置文件。 1) struts-default.xml 这个文件是struts2框架默认加载的配置文件。它定义struts2一些核心的bean和拦截器。 <?xml version="1.0&qu ...
  一:无返回值的存储过程<o:p></o:p> 存储过程为:<o:p></o:p> create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)<o:p></o:p>  as<o:p></o:p> begin<o:p></o:p>  insert into dept values(deptno,dname,loc);<o:p></o:p>  end;< ...
Java面试常见问题 1 、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要 ...
一、FlyWeight模式定义: 运用共享技术有效地支持大量细粒度对象。 二、模式解说 也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight factory负责维护一个对象存储池(Flyweight Pool)来存放内部状态的对象。Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度。 三、结构图   享元模式所涉及的角色有抽象享元角色、具体(单纯)享元 ...
Struts2+spring2+hibernate3整合方案 最近闲来无事可做,于是开始学习struts2。Struts2和struts1、webwork2有什么区别我也不说了,网上有很多这方面的资料。以前在项目中从未使用过struts,一直使用spring+hibernate,现在既然学习了Struts,也不能浪费,于是乎开始琢磨着怎么整合这3个框架。整合原理以spring为容器,管理hibernate的DAO和Struts2的Action。 一、 准备工作 Struts2.06+spring2.5+hibernate3.2+jdk6.0+myeclipse6.0+tomcat5.5+m ...
今天开始学习Composite模式,首先让我们看一下它的定义:  将对象组合成树形结构以表示“整体—部分”的层次结构。Composite模式使单个对象和组合对象的使用具有一致性。 下面给出这个模式的结构图:   如果把Composite模式看成是树形结构的话,那么它主要角色有: 1) 树干角色(Component):该角色是一个抽象类,它定义了一些操作增删树叶(Leaf)的操作。 2) 树枝角色(Composite):树枝上有很多树干,树枝也是树干的一种。 3) 树叶角色(Leaf):树干上的树叶,也就是Component中的具体操作对象。 说到Composite模式,让我想到以前项目中遇到的 ...
Visitor模式定义: 表示一个作用于某对象结构中各元素的操作。它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,也就是动态的增加新的方法。 Visitor模式结构图:   Visitor模式中主要角色: 1) 访问者角色(Visitor):为该对象结构(ObjectStructure)中的具体元素提供一个访问操作接口。该操作接口的名字和参数标识了要访问的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。 2) 具体访问者角色(ConcreteVisitor):实现Vistor接口的操作。 3)元素角色(Element):该接口定义一个accept操作接受具体的访问者 ...
    自从辞职以来,一个多月了只收到一份面试通知,到最后还是不了了之。哎,伤心。。。无聊死了。还好,可以利用这段时间好好充充电,但是由于心情不好,学过的东西很容易忘记,所以就在博客里写下来。由于本人水 ...
设计模式学习笔记(十八)—Mediator中介者模式 一、 模式定义: 用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 二、 结构图   1) 抽象中介者:定义同事(Colleague)对象到中介者(Mediatior)对象的接口,通常是一个事件方法。 2) 具体中介者:具体中介者实现抽象中介者声明的方法。知晓所有的具体同事类,从具体同事接收消息向另外的具体同事类发送命令。 3) 抽象同事类:定义中介者到同事对象的接口,同事对象只知道中介者而不知道其他同事对象。 三、一个例子  import java.util.A ...
一、 模式定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存前的状态。 二、 模式解说 在程序运行过程中,某些对象的状态处在转换过程中,可能由于某种原因需要保存此时对象的状态,以便程序运行到某个特定阶段,需要恢复到对象之前处于某个点时的状态。如果使用一些公有接口让其它对象来得到对象的状态,便会暴露对象的实现细节。 三、 结构图   1) 备忘录(Memento)角色:备忘录角色存储“备忘发起角色”的内部状态。“备忘发起角色”根据需要决定备忘录角色存储“备忘发起角色”的哪些内部状态。为了防止“备忘发起角色”以外的其他对象访问备忘录。备 ...
一、 Proxy模式定义: 为其他对象提供一种代理以控制这个对象的访问。 二、 模式解说 Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层,这个访问层也叫代理。Proxy模式是最常见的模式,在我们生活中处处可见,例如我们买火车票不一定非要到火车站去买,可以到一些火车票的代售点去买。寄信不一定是自己去寄,可以把信委托给邮局,由 ...
Global site tag (gtag.js) - Google Analytics