<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Hello World!</title> </head> <body> <h2><s:property value="message" /></h2> </body> </html>
actions
package tutorial; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport { public static final String MESSAGE = "Struts is up and running ..."; public String execute() throws Exception { setMessage(MESSAGE); return SUCCESS; } private String message; public void setMessage(String message){ this.message = message; } public String getMessage() { return message; } }
xml mapping files
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="tutorial" extends="struts-default"> <action name="HelloWorld" class="tutorial.HelloWorld"> <result>/HelloWorld.jsp</result> </action> <!-- Add your actions here --> </package> </struts>
基本概念
1.OOP中唯一关系的是对象的接口是什么,像计算机的销售商她不电(sh)源内
部结构是怎样的,他只关系能否l你提供?sh)就行?jin)Q也是只要知道can or not
而不是how and why.所有的E序是由一定的属性和行ؓ(f)对象l成的,不同的对?/P>
的访问通过函数调用来完成,对象间所有的交流都是通过Ҏ(gu)调用Q通过对封?/P>
对象数据Q很大限度上提高复用率?nbsp;
2.OOP中最重要的思想是类Q类是模板是蓝图Q从cM构造一个对象,卛_?/P>
?jin)这个类的一个实?instance)?nbsp;
3.装:是把数据和行ؓ(f)l合起在一个包?q对对象使用者隐藏数据的?/P>
现过E,一个对象中的数据叫他的实例字段(instance field)?nbsp;
4.通过扩展一个类来获得一个新cdl承(inheritance)Q而所有的c都?/P>
由O(jin)bject根超cL展而得Q根类下文?x)做介绍?nbsp;
5.对象?个主要特?nbsp;
behavior---说明q个对象能做什?
state---当对象施加方法时对象的反?
dentity---与其他相D为对象的区分标志.
每个对象有唯一的indentity 而这3者之间相互媄(jing)?
6.cM间的关系:
use-a :依赖关系
has-a :聚合关系
is-a :l承关系--?Acȝ承了(jin)Bc,此时AcM仅有?jin)BcȝҎ(gu)Q还有其
自己的方?(个性存在于共性中)
7.构造对象用构造器:构造器的提出,构造器是一U特D的Ҏ(gu)Q构造对?/P>
q对其初始化?nbsp;
?Datacȝ构造器叫Data
new Data()---构造一个新对象Q且初始化当前时?
Data happyday=new Data()---把一个对象赋值给一个变量happydayQ从
而该对象能够多ơ用,此处要声明的使变量与对象变量二?
是不同的.newq回的值是一个引用?nbsp;
构造器特点:构造器可以?个,一个或多个参数
构造器和类有相同的名字
一个类可以有多个构造器
构造器没有q回?nbsp;
构造器L和newq算W一起?
8.重蝲:当多个方法具有相同的名字而含有不同的参数Ӟ便发生重?~译
器必L选出调用哪个Ҏ(gu)?nbsp;
9.?package)Java允许把一个或多个cL集在一hZl,UC包,?/P>
便于l织dQ标准Java库分多包.java.lang java.util javaQnet{,
包是分层ơ的所有的java包都在java和javax包层ơ内?nbsp;
10.l承思想:允许在已l存在的cȝ基础上构建新的类Q当你承一个已l?/P>
存在的类Ӟ那么你就复用?jin)这个类的方法和字段Q同时你可以在新cMd?/P>
的方法和字段?nbsp;
11.扩展c?扩展cd分体C(jin)is-a的承关p? 形式?class (子类)
extends (基类)?nbsp;
12.多?在java中,对象变量是多态的.而java中不支持多重l承?nbsp;
13.动态绑?调用对象Ҏ(gu)的机制?nbsp;
(1)~译器检查对象声明的cd和方法名?nbsp;
(2)~译器检查方法调用的参数cd?nbsp;
(3)?rn)态绑?若方法类型ؓ(f)priavte static final ~译器会(x)准确知道该调
用哪个方法?nbsp;
(4)当程序运行ƈ且用动态绑定来调用一个方法时Q那么虚拟机必须调用x
所指向的对象的实际cd相匹配的Ҏ(gu)版本?nbsp;
(5)动态绑?是很重要的特性,它能使程序变得可扩展而不需要重~译已存
代码?nbsp;
14.finalc?为防止他Z你的cMz新类Q此cL不可扩展的?nbsp;
15.动态调用比?rn)态调用花费的旉要长?nbsp;
16.抽象c?规定一个或多个抽象Ҏ(gu)的类本n必须定义为abstract?nbsp;
? public abstract string getDescripition
17.Java中的每一个类都是从ObjectcL展而来的?nbsp;
18.objectcM的equal和toStringҎ(gu)?nbsp;
equal用于试一个对象是否同另一个对象相{?nbsp;
toStringq回一个代表该对象的字W串Q几乎每一个类都会(x)重蝲该方法,?/P>
便返回当前状态的正确表示.
(toString Ҏ(gu)是一个很重要的方?
19.通用~程:Mcȝ型的所有值都可以同objectcL的变量来代ѝ?nbsp;
20.数组列表:ArrayList动态数l列表,是一个类库,定义在java.uitl?/P>
中,可自动调节数l的大小?nbsp;
21.classc?objectcM的getclassҎ(gu)q回ckasscd的一个实例,E序
启动时包含在mainҎ(gu)的类?x)被加蝲Q虚拟机要加载他需要的所有类Q每一个加
载的c都要加载它需要的cR?nbsp;
22.classcMؓ(f)~写可动态操Ujava代码的程序提供了(jin)强大的功能反,q项
功能为JavaBeans特别有用Q用反Java能支持VBE序员习(fn)惯用的工具?nbsp;
能够分析c能力的E序叫反器QJava中提供此功能的包?/P>
Java.lang.reflect反射机制十分强大.
1.在运行时分析cȝ能力?nbsp;
2.在运行时探察cȝ对象?nbsp;
3.实现通用数组操纵代码?nbsp;
4.提供Ҏ(gu)对象?nbsp;
而此机制主要针对是工兯(g)而不是应用及(qing)E序?nbsp;
反射机制中的最重要的部分是允许你检查类的结?用到的API?
java.lang.reflect.Field q回字段.
java.reflect.Method q回Ҏ(gu).
java.lang.reflect.Constructor q回参数.
Ҏ(gu)指针:java没有Ҏ(gu)指针Q把一个方法的地址传给另一个方法,可以在后
面调用它Q而接口是更好的解x案?nbsp;
23.接口(Interface)说明c该做什么而不指定如何dQ一个类可以实现一
个或多个interface?nbsp;
24.接口不是一个类Q而是对符合接口要求的cȝ一套规范?nbsp;
若实C个接口需?个步?
1.声明c需要实现的指定接口?nbsp;
2.提供接口中的所有方法的定义?nbsp;
声明一个类实现一个接口需要用implements 关键?nbsp;
class actionB implements Comparable 其actionb需要提供CompareTo
Ҏ(gu)Q接口不是类Q不能用new实例化一个接?
25.一个类只有一个超c,但一个类能实现多个接口。Java中的一个重要接?/P>
QCloneable
26.接口和回?~程一个常用的模式是回调模式,在这U模式中你可以指?/P>
当一个特定时间发生时回调对象上的Ҏ(gu)?nbsp;
?ActionListener 接口监听.
cM的API?java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.对象clone:cloneҎ(gu)是object一个保护方法,q意味着你的代码不能
单的调用它?nbsp;
28.内部c?一个内部类的定义是定义在另一个内部的cR?nbsp;
原因?
1.一个内部类的对象能够访问创建它的对象的实现Q包括私有数据?nbsp;
2.对于同一个包中的其他cL_(d)内部c能够隐藏v来?nbsp;
3.匿名内部cd以很方便的定义回调?nbsp;
4.使用内部cd以非常方便的~写事g驱动E序?nbsp;
29.代理c?proxy):
1.指定接口要求所有代?nbsp;
2.objectcd义的所有的Ҏ(gu)(toString equals)
30.数据cd:Java是强调类型的语言Q每个变量都必须先申明它都类型,
java中d?个基本类?4U是整型Q?U是点型,一U是字符型,被用?/P>
Unicode~码中的字符Q布?yu)(dng)型?/P>
文章来源:http://yuguichong1984.blog.163.com/blog/static/119181320061122111333250
当前开?/SPAN>EJb3用到的开发工具和插gQ?/SPAN>
Eclipse 3.2
JBossIDE-1.5.1.GA-Bundle-win32
jboss-EJB-3.0_RC8-FD
JBoss?/SPAN>jboss-EJB-3.0_Embeddable_ALPHA_8用于容器外测?/SPAN>
JBossIDE-EJB3-Tools-1.0.2.GA.zip,
WTP,Dali, JSR220-ORM-M2,Myeclipse5
NetBean当然不以了(jin).