一、什么是拦截器? 提到拦截器,使我不得不想起武侠剧中劫匪们常说的一句话:“此山是我开,此树是我栽,要打此路过,留下买路财!”。难不成程序中也有“打劫”的,说的没错,拦截器就是个打劫的。在现实生活中,劫匪劫的大都是钱财,当然也有别的什么,那么程序中的“劫匪”劫的又是什么呢?或者说程序中为什么需要它?在我们的日常编程中少不了写一些重复的代码,例如在一个地方中写了一段代码,后来发现这段代码在其它地方中同样需要,在传统的编程中我们一定会采取复制、粘贴的办法。如果这段代码只在这一两个处需要,我们采取这种办法,还说的过去,但是如果系统对这段代码过于依赖,也就是这段代码在系统中出现的过多,如果那一天我们 ...
在web应用中,文件上传似乎是很常见的,但是采用传统的方法不但复杂而且难以控制,需要写很多代码,像控制文件大小、文件类型的过滤、存放目录等等。这些复杂的问题在Struts2中已经不存在了,struts2默认使用common-fileupload实现文件的上传。在struts.properties中我们可以看到:struts.multipart.parser=Jakarta 。下面我们就以Common-FileUpload来实现文件上传。 首先,把commons-fileupload.jar和commons-io.jar拷贝到classpath路径下。 建立一个上传文件的页面,upload. ...
在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" encod ...
  一:无返回值的存储过程 存储过程为: create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)  as begin  insert into dept values(deptno,dname,loc);  end; 然后呢,在java里调用时就用下面的代码: public class TestProcedure { Connection conn=null ; CallableStatement cstmt=null ;  PreparedS ...
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+mys ...
今天开始学习Composite模式,首先让我们看一下它的定义:  将对象组合成树形结构以表示“整体—部分”的层次结构。Composite模式使单个对象和组合对象的使用具有一致性。 下面给出这个模式的结构图:   如果把Composite模式看成是树形结构的话,那么它主要角色有: 1) 树干角色(Component):该角色是一个抽象类,它定义了一些操作增删树叶(Leaf)的操作。 2) 树枝角色(Composite):树枝上有很多树干,树枝也是树干的一种。 3) 树叶角色(Leaf):树干上的 ...
Visitor模式定义: 表示一个作用于某对象结构中各元素的操作。它可以使你不修改各元素类的前提下定义作用于这些元素的新操作,也就是动态的增加新的方法。 Visitor模式结构图:   Visitor模式中主要角色: 1) 访问者角色(Visitor):为该对象结构(ObjectStructure)中的具体元素提供一个访问操作接口。该操作接口的名字和参数标识了要访问的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。 2) 具体访问者角色(ConcreteVisitor):实现Vistor接口的操作。 3)元素角色(Element): ...