CSDN博客

img yaohao803

Java到Struts

发表于2004/10/18 10:32:00  699人阅读

1.1 什么是Java

Java有两方面的含义:Java语言、Java平台

  • 作为一种语言,Java是一种跨平台开发语言,能开发出跨平台的应用对象和应用程序。例如:Oracle 8i的安装程序就是用Java开发的。Java语言具有以下特点:简单、面向对象、分布式、解释执行、安全、 跨平台、高性能、多线程等特点。
  • 作为一种平台,Java平台包括两部分内容:Java虚拟机和Java API。

1.2 Java之最

最好的集成开发工具

No1. Visualage For Java (www.ibm.com)

No2. JBuilder 3 (www.inprise.com)

No3. JDeveloper (www.oracle.com)

No4. VisualCafe

我推荐使用emacs

最好的应用服务器

No1. WebObjects (www.apple.com)

No2. WebSphere Application Server Enterprise Edition v3.0 (www.ibm.com)

No3. Apache JServ (java.apache.org)

No4. WebLogic Server

我推荐使用tomcat (jakarta.apache.org), Enhydra (www.enhydra.org)

最好的Java类库

No1. The Java Collections (www.sun.com)

No2. IBM Host Access Library API For Java (www.ibm.com)

No3. JClass Enterprise (www.klgroup.com)

No4. JGL

最好的Java中间件

No1. Sybase Enterprise Application Server (www.sybase.com)

No2. WebSphere Host On-Demand v4 (www.ibm.com)

No3. Progress Sonicmq (www.sonicmq.com)

No4. Visiobroker

我推荐使用cocoom (xml.apache.org), struts (jakarta.apache.org), turbine (java.apache.org)

最好的Java组件

No1. Bea Jumpstart eBusiness Smart Components (www.bea.com)

No2. JClass Enterprise Suite (www.klgroup.com)

No3. LingoGUI (www.slangsoft.com)

No4. Stdioj

最好的数据库产品

No1. Oracle 8i (www.oracle.com)

No2. Sybase Adaptive Server Anywhere (www.sybase.com)

No3. Cloudscape (www.informix.com)

No4. JDataStore

我推荐使用PostgreSQL

最好的Java虚拟机

No1. Java HotSpot Performance Engine (java.sun.com)

No2. ChaiVM (www.hewlett-packard.com)

No3. JSCP (www.nsicom.com)

No4. Jeode Platform

最好的消息工具

No1. Java Message Queue (www.sun.com)

No2. SonicMQ (www.sonicmq.com)

No3. FioranoMQ (www.fiorano.com)

No4. IBus

以上排名来自JDJ Nov 2000统计数据。

Java及Web应用

何键, hjnet@163.net

v0.1, 14 Nov 2000


我把近一段时间我在论坛中所发的贴子进行了一下整理,形成这篇文档,以便大家参考,欢迎提出宝贵意见。 我在写作本文原搞时采用的是sgml格式,通过SGML-Tools转成你所看到的格式。SGML-Tools是一组文本格式化工具,能将简单的sgml文档转变为格式丰富的各种文件,包括HTML、TeX、DVI、PostScript、plain text、groff等。感谢SGML-Tools的所有开发员所作出的贡献。 本文版权归 中文Linux论坛所有。


2. ANT 介绍

Ant是一个基于java的build工具。大家都知道,现在已经有了许多的build工具,例如make、gnumake、nmake、jam等,而且这些工具都非常优秀。那我为什么还要给大家介绍Ant这个新工具呢? 因为Ant是一个跨平台的Build工具。之所以Ant能跨平台,是因为Ant不再需要你编写shell命令,Ant的配置文件是基于XML的任务树,能让你运行各种各样的任务,任务的运行是由实现了特定任务接口的对象来完成的。

2.1 获得Ant

Binary版:最新的稳定版的下载地址是:http://jakarta.apache.org/builds/ant/release/v1.1/bin。

Source版:最新的源码稳定版下载地址是:http://jakarta.apache.org/builds/ant/release/v1.1/src/。如果你想获得最新的源码,地址是:http://jakarta.apache.org/from-cvs/jakarta-ant/

2.2 系统要求

需要在CLASSPATH中包含与JAXP兼容的XML parser,才能编译和使用Ant。

我给大家推荐一个XML parser:xerces,下载地址:http://xml.apache.org/xerces

当然,JDK肯定是必需的,并且是1.1或之后版本。

2.3 编译Ant

1. 进入jakarta-ant目录

2. 将JDK加入到你的PATH环境变量中

3. 设置JAVA_HOME环境变量,指向你的JDK安装目录

4. 运行bootstrap.sh角本文件

5. 运行以下命令创建Ant的Binary版:

          build.sh -Dant.dist.dir=<安装Ant的目录> dist
        

2.4 安装Ant

1. 设置ANT_HOME环境变量,指向你的Ant目录

2. 设置JAVA_HOME环境变量,指向你的JSK目录

3. 将ANT_HOME/bin加入PATH环境变量中

4. 将ant.jar和xerces.jar加入到CLASSPATH环境变量中

假设Ant安装在/usr/local/ant目录,可通过以下方法进行设置:

          export ANT_HOME=/usr/local/ant
          export JAVA_HOME=/usr/local/jdk-1.2.2
          export PATH=${ANT_HOME}/bin:${PATH}
          export CLASSPATH=${ANT_HOME}/lib/ant.jar:<xerces安装目录>/lib/xerces.jar:${CLASSPATH}
        

2.5 运行ant

运行Ant非常简单,如果你按照上面描述的方法安装了ant,只需在命令行键入ant就行了。

当你不带任何参数运行ant时,Ant会在当前目录找一个名叫build.xml的文件。如果找到了,就将该文件作为build配置文件。如果没找到,它会自动地查找上级目录,一直找到根目录。也可以通过命令行参数 -buildfile <file> 来指定其他配置文件,其中,<file>是你要采用的配置文件名。

3. JSP介绍

JSP是JavaServer Pages的简写。JSP技术能让Web开发员和网页设计员快速地开发容易维护的动态Web主页。

用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源(例如JavaBesns)的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

JSP技术是Servlet技术的扩展。Servlet是平台无关的,100%纯Java的Java服务端组件。

3.1 JSP与jakarta

正是因为Jakarta项目组的努力,才使Servlet/JSP据有了前所未有的动力。

从Servlet2.2开始,Sun公司已放弃了对Servlet的控制,全权交由Jakarta项目组进行开发和维护。Sun公司不再提供Servlet/JSP的开发包,而是将软件下载全部链接到Jakarta站点,并全力支持Jakarta项目组的开发工作(Jakarta项目组中有部分骨干力量是Sun公司员工)。这是Sun公司的英明决策,也是开源软件的重大成果。

JSP技术是jakarta所提供的两大模板技术(JSP和Velocity)之一,这两个都是非常好的模板技术。jakarta的framework(例如struts、slide)对JSP提供了很好的支持,java.apache的framework(turbine)对Velocity提供了很好的支持。

3.2 运行自己的JSP文件

有些网友不知道怎么才能运行自己的JSP文件,我在这里简单介绍一下,给大家提供一点参考:
1. 下载并安装tomcat。下载地址:http://jakarta.apache.org/tomcat
2. 编写自己的JSP网页和Java对象。
3. 配置自己的Web应用。配置方法:
   在TOMCAT_HOME/conf/server.xml文件中加入一行:
   <Content path="/appName" docBase="webapps/appName" debug="0" reloadable="true"/>
   其中,TOMCAT_HOME是tomcat的主目录,appName是你的Web应用的名称。
4. 将你的jsp文件、html文件、image文件拷贝到TOMCAT_HOME/webapps/appName目录下。
5. 编译你的java文件。
6. 将编译好的class文件拷贝到TOMCAT_HOME/webapps/WEB-INF/classes目录下。也可将class文件打包成jar文件放到TOMCAT_HOME/webapps/WEB-INF/lib目录下。
7. ALL IS OK! 你可以在你的浏览器上看到你的成果了:
   http://localhost:8080/appName/youjsp.jsp
   其中,appName是你配的Web应用名称,youjsp.jsp是你编写的jsp文件名。

4. Tomcat介绍

在我写了一些有关Struts和Framework的贴子后,有人问我什么是tomcat,什么是jakarta。我才发现我应该先写一些更基本的东西。这篇是介绍tomcat的文章,我还准备写一篇介绍jakarta的文章。

4.1 什么是Tomcat

Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。

4.2 Tomcat下载

下载地址:http://jakarta.apache.org/downloads/binindex.html

4.3 Tomcat和JServ的区别

JServ是由Apache开发并使用的Servlet API 2.0兼容的Servlet容器。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。

4.4 什么是servlets,什么是JSPs

Servlet为Web开发员提供了一个简单、一致的机制,来扩展Web服务器的功能,并且和已有的业务系统交互。可以把Servlet看作在服务端运行的Applet。

JSP技术是servlet技术的扩展,对HTML和XML的页面创作提供支持。它网页设计员能非常容易地将固定或静态的模板数据与动态内容进行组合。

5. servlet/jsp/xml Frameworks介绍

现在,已经有众多的基于Java的开源Web Framework,让我们能更加容易构造Web应用。我在这里给大家作一个简单的介绍。

5.1 Cocoon - 基于XML的Web内容发布

Cocoon是采用100%纯Java编写的一个内容发布框架。Cocoon让你能采用W3C的最新技术(DOM、XML、XSL)来提供Web内容。
新的Cocoon模式能将文档内容、样式、处理逻辑进行完全的分离,允许这三层能独立地设计、创建和管理,从而减少了管理开销,加强了工作的重用性,减少了开发时间。
下载地址:http://xml.apache.org/cocoon
    

5.2 Xang - 快速开发动态网页

Xang能整合不同的数据源,让你能快速地开发数据驱动的、跨平台的Web应用。Xang体系结构能将数据、逻辑和表示完全划清。Xang基于开放的工业标准,例如HTTP、XML、XSL、DOM、ECMAScript(JavaScrip)。

下载地址:http://xml.apache.org/xang

5.3 Slide - 内容管理框架

Slide是一个内容管理和集成系统,是一个内容管理底层框架。Slide提供了一个分级的结构,能将内容存储到任意的、分布式的数据仓库。出此之外,Slide还集成了安全、锁定、内容版本和其他一些服务。

下载地址:http://jakarta.apache.org/slide

5.4 Struts - 基于MVC设计模式的JSP

Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。
采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
Struts有如下的主要功能:
1. 包含一个controller servlet,能将用户的请求发送到相应的Action对象。
2. JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。
3. 提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。
下载地址:http://jakarta.apache.org/struts
    

5.5 Jetspeed - 基于Web的组件

Jetspeed是实现了Enterprise Information Portal的开源软件。Jetspeed能从Internet的纵多资源中提取信息,来帮助用户管理大量的数据。这些信息能来自不同的内容类型,从XML到XMTP,到iCalendar这些新协议。

下载地址:http://java.apache.org/jetspeed

5.6 Turbine - 基于Servlet的Web应用开发

Turbine是基于servlet的framework,使有经验的Java开发员能快速地构建web应用。
使用Turbine,可以通过创建使用特定服务来处理模板的Screen,来集成现有的模板技术(例如Velocity、Webmacro、Java Server Pages(JSP)、FreeMarker、Cocoon)。
下载地址:http://java.apache.org/turbine
    

5.7 各种Framework比较

在这些framework中,我觉得Cocoon、Struts和Turbine比较好。这三者各有所长,Cocoon是最好的XML Framework,Struts是最好的JSP Framework,Turbine是最好的Servlet Framework。
    

6. JSP Framework - Struts介绍

Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。

采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。

Struts有如下的主要功能:

1. 包含一个controller servlet,能将用户的请求发送到相应的Action对象。

2. JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。

3. 提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

Struts是Jakarta项目的一部分,主页在http://jakarta.apache.org/struts.

Version 0.5的下载地址:http://jakarta.apache.org/builds/jakarta-struts/release/v0.5

6.1 1、什么是MVC模式。

MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式,好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。

6.2 2、是否所有JSP应用都该采用MVC模式?

不一定所有的JSP应用都该采用MVC模式。但对于大型应用来说,我认为还是该采用MVC模式。不使用MVC模式,用户界面界面设计往往将这些对象混在一起,而MVC则将它们分离以提高灵活性和复用性。

6.3 3、Struts中能做XML吗,与Cocoon相比有何优点?

Struts把主要精力放在JSP上了。Cocoon才是专业级的XML Framework。

7. Struts的安装

7.1 安装Struts需要的软件

Java Development Kit - 你需要download和install 1.2(或之后)版本的JDK。下载地址:http://java.sun.com/j2se
Servlet Container - 通常的选择是下载Tomcat(至少是3.1版,推荐使用3.2版)。下载地址:http://jakarta.apache.org/tomcat
Ant Build System - 如果你通过Struts源码发布包安装,你必须下载1.1或之后版本的ant build system。在你通过Struts来开发你自己的Web应用程序是,我也推荐使用ant来build你的应用。下载地址:http://jakarta.apache.org/ant
Servlet API Classes - 为了编译Structs自己,或应用程序使用Struts,你需要一个包含Servlet和JSP API对象的servlet.jar包。大多数Servlet container(例如Tomcat)已经自带了这个文件。否则,你必需下载:http://jakarta.apache.org/builds/jakarta-servletapi
XML Parser - Structs需要一个与Java API for XML Parsing(JAXP)规格兼容的XML处理器。我推荐使用Xerces。下载地址:http://xml.apache.org/xerces-j
Xalan XSLT Processor - 如果你通过Structs源码发布版来构造你的Structs系统,你必须下载和安装1_2_D01或之后版本的Xalan XSLT处理器(Xerces中已自带Xalan)。这个处理器用于将基于XML的Structs文档转换为Html文档。
  

7.2 通过源码构造Structs

1.下载Structs的源码发布包。
2.设置ANT_HOME环境变量,指向你的Ant目录。
3.设置JAVA_HOME环境变量,指向你的JDK目录。
4.设置SERVLETAPI_HOME环境变量,指向你的Servlet API目录(如果你的CLASSPATH已经包含了servlet.jar,就不需要指定该目录)
5.将Structs的源码发布包进行解包。
6.进入Structs目录,运行以下命令:
  ./build.sh dist
该命令将创建Struts的二进制发布包,目录在../dist/structs(相对于你的编译目录)。
  

7.3 通过Struts的二进制发布包安装Structs

1.下载Struts的二进制发布版。
2.将Struts的二进制发布版进行解包。(如果你是通过Struts源码构造Struts,build的结果就已经是已解包的Struts)。解包后的Struts包含以下内容:
  lib/struts.jar - 这个文件包含了Struts的所有Java对象。你需要把它拷贝到你的Web应用的WEB-INF/lib目录。
  lib/structs.tld - 这是一个"tag library descriptor"文件,它描述了Struts库的自由tag。需要将它拷贝到你的Web应用的WEB-INF目录。
  webapps/struts-documentation.war - 这是一个"web application archive"文件,包含了所有的Struts文档。你可以将它安装到支持Servlet API 2.2或之后版本的servlet container(推荐使用tomcat)中。
  webapps/struts-example.war - 这是一个web应用实例,它广泛地演示了Struts的许多功能。你可以将它安装到兼容Servlet2.2或之后版本以及JSP1.1或之后版本规范的servlet容器中(推荐使用tomcat)。
  webapps/struts-test.war - 这个web应用包含了Struts支持的许多tag的测试网页,可以作为使用Struts tag的例子。

可通过以下的步骤在你自己的应用程序中使用Struts:
1.将Struts目录的lib/struts.jar拷贝到web应用的WEB-INF/lib目录。
2.将Struts目录的lib/struts*.tld拷贝到web应用的WEB-INF目录。
3.修改Web应用目录的WEB-INF/web.xml文件,增加一个<servlet>元素来定义controller servlet,增加一个<servlet-mapping>元素来建立URI请求与servlet的对应关系。可以参照Struts例子中的WEB-INF/web.xml文件来了解详细的语法要求。
4.修改Web应用目录的WEB-INF/web.xml文件,使之包含以下的tag库定义:
        <taglib>
          <taglib-uri>/WEB-INF/struts.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
        </taglib>
5.创建一个WEB-INF/action.xml文件来定义你的web应用的action映射关系。可以参照Struts例子中的action.xml文件来了解详细的语法要求。
6.在使用Struts tag库的JSP网页中加入以下tag库定义:
        <@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %>
        <@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
        <@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
7.最后,在编译你的web应用的java程序时,不要忘了在CLASSPATH中包含struts.jar文件哟。
阅读全文
0 0

相关文章推荐

img
取 消
img