Web 应用基础
Apache Struts http://jakarta.apache.org/struts
Spring http://www.springframework.org/
HelloWorld public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); 以下情况怎么办? 改变消息内容以不同方式输出这个消息附上 HTML 标签而非文本
HelloWorld (Revised, v1) public class HelloWorldWithCommandLine { public static void main(string[] args) { if(args.length > 0) { System.out.println(args[0]); else { System.out.println("Hello World!"); 现在无需改变代码就可以更改消息内容, 但消息显示方式无法方便地改变
Interface <<interface>> MessageProvider String getmessage() implements <<class>> HelloWorldMessageProvider String getmessage()
Interface <<interface>> MessageRenderer void render() void setmessgeprovider(messageprovider provider) MessageProvider getmessageprovider() implements <<class>> StandardOutMessageRenderer void render() void setmessgeprovider(messageprovider provider) MessageProvider getmessageprovider()
HelloWorldMessageProvider public class HelloWorldMessageProvider implements MessageProvider { public String getmessage() { return "Hello World!";
StandardOutMessageRenderer public class StandardOutMessageRenderer implements MessageRenderer { public MessageProvider messageprovider = null; public void render() { if (messageprovider == null ) { throw new RuntimeException ("Message Provider is null"); System.out.println(messageProvider.getMessage()); public void setmessageprovider (MessageProvider provider) { this.messageprovider = provider; public MessageProvider getmessageprovider() { return this.messageprovider;
HelloWorld (Revised, v2) public class HelloWorldDecoupled { public static void main(string[] args) { MessageRenderer mr = new StandardOutMessageRenderer; MessageProvider mp = new HelloWorldMessageProvider(); mr.setmessageprovider(mp); mr.render(); 还有一个小问题 : 若想改变消息提供和显示者还要改变代码
MessageSupportFactory (Part 1) import java.io.fileinputstream; import java.util.properties; renderer.class= StandardOutMessageRenderer provider.class= HelloWorldMessageProvider public class MessageSupportFactory { private static MessaeSupportFactory instance = null; private Properties props = null; private MessageRenderer renderer = null; private MessagProvider provider = null; private MessageSupportFactory() { props = new Properties(); try { props.load(new FileInputStream("msf.properties")); String rendererclass=props.getproperty("renderer.class"); renderer = (MessageRenderer) Class.forName(rendererClass).newInstance(); String providerclass=props.getproperty("provider.class"); provider = (MessageProvider) Class.forName(providerClass).newInstance();
MessageSupportFactory (Part 2) catch (Exception e) { e.printstacktrace(); static { instance = new MessageSupportFactory(); public static MessageSupportFactory getinstance() { return instance; public MessageRenderer getmessagerenderer() { return renderer; public MessageProvider getmessageprovider() { return provider;
HelloWorld (Revised, v3) public class HelloWorldDecoupledWithFactory { public static void main(string[] args) { MessageRenderer mr = MessageSupportFactory.getInstance().getMessageRenderer; MessageProvider mp = MessageSupportFactory.getInstance().getMessageProvider; mr.setmessageprovider(mp); mr.render();
Spring renderer.class=standardoutmessagerenderer renderer.messaeprovider(ref)=provider provider.class=helloworldmessageprovider public class HelloWorldSprin { public static void main(string[] args) { BeanFactory factory = getbeanfactory(); MessageRenderer mr = (MessageRenderer) factory.getbean("renderer"); mr.render();
Service Web
Web Services A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML and supports direct interactions with other software applications using XML based messages via internet-based protocols
Web Services Service Registry Service Description Find UDDI,WSDL Publish UDDI,WSDL Service Requestor Bind Service Provider Service Description Service
Grid Computing
Semantic David Billington is a lecturer of Discrete Mathematics. <course name="discrete Mathematics"> <lecturer>david Billington</lecturer> </course> <lecturer name="david Billington"> <teaches>discrete Mathematics</teaches> </lecturer> <teachingoffering> <lecturer>david Billington</lecturer> <course>discrete Mathematics</course> </teachingoffering>
Semantic Network David Billington is a lecturer of Discrete Mathematics. David Billington teaches Discrete Mathematics is-a is-a lecturer course (Discrete Mathematics, is-a, course) (David Billington, is-a, lecturer) (David Billington, teaches, Discrete Mathematics) RDF: Resource Description Framework
Ontology 万物 生物 非生物 植物 动物 有机物 无机物 脊椎动物 无脊椎动物 哺乳动物 Ontology Vocabulary
Reference " 如果无论 John 到哪里去,Lucy 也就去那里, 那么如果 John 在学校里, Lucy 在哪里?" 两个事实的公式集为 : ( x)[ AT( JOHN, x) AT( LUCY, x)] AT ( JOHN, SCHOOL) 需证明的公式 : ( x) AT ( LUCY, x)
Reference "Lucy 在哪里 " 的反演树 AT( LUCY, x) AT ( JOHN, y) AT ( LUCY, y) AT ( JOHN, x) AT ( JOHN, SCHOOL) NIL
Reference 求取答案例题的反演树 AT ( LUCY, x) AT ( LUCY, x) AT( JOHN, y) AT( LUCY, y) AT ( JOHN, x) AT ( LUCY, x) AT ( JOHN, SCHOOL) AT ( LUCY, SCHOOL) Logic and Proof
Social Network and Small World
Agent Community Trust
Semantic Web
Intelligent Search Engine
虚拟现实设备 : 高性能图形计算机 头盔 眼镜 三维显示器 三维鼠标 环形屏幕 手套
虚拟现实 虚拟环境 虚拟房间虚拟汽车虚拟人
虚拟现实分类 沉浸型虚拟现实系统 简易型虚拟现实系统
虚拟现实在军事领域的应用 虚拟战场环境单兵模拟训练与评判诸军种联合虚拟演习进行指挥员训练
虚拟现实在商业领域的应用 物品外观展示物品特性展示物品的功能参数物品的价格
虚拟现实在文化遗产保护领域的应用
Web 3D 技术 实现层次 开发技术 可扩展性 最适合的 ( 难度 ) 应用领域 Java3D 中层 Java J2SE 标准扩展 网上三维展示 (JVM) ( 较易 ) ( 好 ) OpenGL 底层 C\C++ 各大厂商支持 三维设计软件 ( 显卡 ) ( 难 ) ( 较好 ) Direct3D 底层 C++ Windows 平台 三维游戏 ( 操作系统 ) ( 较难 ) ( 差 ) VRML/X3D 上层 标记语言 安装插件支持 网上虚拟现实 ( 网页 ) ( 易 ) ( 一般 )
VRML/X3D
Any Question?