2013年6月4日星期二

配置JDK和Tomcat环境变量

配置JDK和Tomcat环境变量

48617人阅读 评论(9) 收藏 举报
1.安装JDK
安装好JDK后,再配置JDK的环境变量:
在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。
新建系统变量JAVA_HOME:C:/Program Files/Java/jdk1.5.0_06;
新建系统变量CLASSPATH:.;%JAVA_HOME%/lib;(注意:点号表示当前目录,不能省略)
在系统变量Path的值的前面加入以下内容:%JAVA_HOME%/bin;(注意:这里的分号不能省略)
到这里,JDK安装完毕。

2.安装Tomcat
安装好Tomcat后,再配置Tomcat的环境变量:
在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。
新建系统变量CATALINA_HOME:D:/jakarta-tomcat-5.0.30
在系统变量CLASSPATH的值的后面加入:%CATALINA_HOME%/common/lib;
在系统变量Path的值中"%JAVA_HOME%/bin;"的后面加入以下内容:%CATALINA_HOME%/bin;
到这里,Tomcat安装完毕。

配置好以上环境变量之后,各系统变量的值如下:
JAVA_HOME:C:/Program Files/Java/jdk1.5.0_06
CATALINA_HOME:D:/jakarta-tomcat-5.0.30
CLASSPATH:.;%JAVA_HOME%/lib;%CATALINA_HOME%/common/lib;
Path:%JAVA_HOME%/bin;%CATALINA_HOME%/bin;%SystemRoot%/system32;%SystemRoot%;%
SystemRoot%/System32/Wbem

------------------------------------------------------------------------
测试JDK和Tomcat
打开cmd进行测试JDK是否配置成功: 
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/Administrator>java 
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.
    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
C:/Documents and Settings/Administrator>javac --输入javac显示下面的内容就是配置成功
用法:javac <选项> <源文件>
其中,可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
  -cp <路径>                   指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖安装的扩展目录的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -proc:{none,only}          控制是否执行注释处理和/或编译。
  -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认
的搜索进程
  -processorpath <路径>        指定查找注释处理程序的位置
  -d <目录>                    指定存放生成的类文件的位置
  -s <目录>                    指定存放生成的源文件的位置
  -implicit:{none,class}     指定是否为隐式引用文件生成类文件
  -encoding <编码>             指定源文件使用的字符编码
  -source <版本>               提供与指定版本的源兼容性
  -target <版本>               生成特定 VM 版本的类文件
  -version                   版本信息
  -help                      输出标准选项的提要
  -Akey[=value]              传递给注释处理程序的选项
  -X                         输出非标准选项的提要
  -J<标志>                     直接将 <标志> 传递给运行时系统

C:/Documents and Settings/Administrator>

测试Tomcat是否配置成功:
进入Tomcat目录下的bin里面
双击startup.bat
如果显示下列信息就配置成功
2008-7-30 21:27:34 org.apache.coyote.http11.Http11Protocol init
严重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoi
nt.java:297)
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:142)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:918
)
        at org.apache.catalina.core.StandardService.initialize(StandardService.j
ava:580)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:764)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:509)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:243)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:408)
2008-7-30 21:27:34 org.apache.catalina.startup.Catalina load
严重: Catalina.start
LifecycleException:  Protocol handler initialization failed: java.net.BindExcept
ion: Address already in use: JVM_Bind:8080
        at org.apache.catalina.connector.Connector.initialize(Connector.java:920
)
        at org.apache.catalina.core.StandardService.initialize(StandardService.j
ava:580)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:764)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:509)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:243)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:408)
2008-7-30 21:27:34 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 625 ms
2008-7-30 21:27:34 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-7-30 21:27:34 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.7
2008-7-30 21:27:34 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2008-7-30 21:27:34 org.apache.catalina.core.ApplicationContext log
信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.
webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule:
 Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.bal
ancer.rules.RequestParameterRule: Target param name: paramName / Target param va
lue: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balanc
er.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
log4j:WARN No appenders could be found for logger (org.apache.catalina.session.M
anagerBase).
log4j:WARN Please initialize the log4j system properly.
2008-7-30 21:27:35 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2008-7-30 21:27:35 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
log4j:WARN No appenders could be found for logger (org.apache.catalina.session.M
anagerBase).
log4j:WARN Please initialize the log4j system properly.
2008-7-30 21:27:37 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=tru
e
2008-7-30 21:27:37 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNul
l=true
2008-7-30 21:27:38 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='com.yourcompany.struts.ApplicationResources', return
Null=true
2008-7-30 21:27:39 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2008-7-30 21:27:39 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
log4j:WARN No appenders could be found for logger (org.apache.catalina.session.M
anagerBase).
log4j:WARN Please initialize the log4j system properly.
2008-7-30 21:27:43 org.apache.coyote.http11.Http11Protocol start
严重: Error starting endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoi
nt.java:297)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.startEndpoint(PoolTcpEndpo
int.java:312)
        at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:181
)
        at org.apache.catalina.connector.Connector.start(Connector.java:990)
        at org.apache.catalina.core.StandardService.start(StandardService.java:4
59)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:683
)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2008-7-30 21:27:43 org.apache.catalina.startup.Catalina start
严重: Catalina.start:
LifecycleException:  Protocol handler start failed: java.net.BindException: Addr
ess already in use: JVM_Bind:8080
        at org.apache.catalina.connector.Connector.start(Connector.java:992)
        at org.apache.catalina.core.StandardService.start(StandardService.java:4
59)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:683
)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2008-7-30 21:27:43 org.apache.catalina.startup.Catalina start
信息: Server startup in 9188 ms

Tomcat的安装与配置

Tomcat的安装与配置  

2012-09-24 21:16:48|  分类: 默认分类 |  标签:tomcat  安装与配置   |字号 订阅

Tomcat的安装

本节将介绍Tomcat工作环境的安装、基本的启动与停止方法、JDK的安装与JVM性能调整、二进制版本的Tomcat安装以及从源代码安装Tomcat,最后讲解如何启动、停止和自动启动Tomcat,并进行安装的测试。

1  安装准备

在安装Tomcat之前必须先安装JDKJDK的全称是Java Development Kit,是Sun公司免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。
在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统API实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat也具有上述特征,所以需要预先下载JDKTomcat,这两个软件的版本和下载地址如下:
JDK选择Sun官方网站提供的JDK-6U1,下载网址https://sdlc5e.sun.com/ECom/ EComActionServlet;jsessionid=6C6B460AC2EF83F7FF253E51D5B5BA1C
用户访问上述网址需要注册,注册后就可以根据自己的计算机平台配置选择合适版本。
如果使用32Windows系统,那么选择下载:
Windows Offline Installation (build 06)Multi-language
jdk-6u2-windows-i586-p.exe
如果使用32Linux系统,那么选择下载:
Linux RPM in self-extracting file (build 05)
jdk-6u2-linux-i586-rpm.bin
如果使用64Windows系统,那么选择下载:
Windows x64 executable (build 05)
jdk-6u2-windows-amd64.exe
如果使用64Linux系统,那么选择下载:
Linux x64 RPM in self-extracting file (build 05)
jdk-6u2-linux-amd64-rpm.bin
Tomcat选择apache - tomcat 6.0.14,下载网址为http://tomcat.apache.org/download-60.cgi
在如图1-5所示的下载页面中,Binary Distributions(二进制发行版)下方有若干组下载项,每组下载项有两个不同的版本对应不同的操作系统,其中zipWindows平台下运行版本,tar.gzLinux平台下运行版本。其中Core组和Administration Web Application组必须下载,这两组分别对应Tomcat核心安装包和控制平台包,其他组内容可以根据需要来决定是否下载。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
  1-5  Tomcat下载页面
本书内容都基于32Windows系统,所以JDK选择jdk-6u1-windows-i586-p.exeTomcat选择apache- tomcat 6.0.14.zipapache- tomcat 6.0.14-admin.zip
对于Windows操作系统,tomcat 6.0.14提供了两种安装文件,一个文件为apache-tomcat 6.0.14.exe,另一个文件为apache-tomcat 6.0.14.zipapache-tomcat 6.0.14.exe是可运行的安装程序,读者只需要双击这个文件,即可开始安装Tomcat。在安装过程中,安装程序会自动搜寻JDKJRE的位置,并把Tomcat服务加入到Windows操作系统的服务中,同时在“开始”→“程序”菜单中加入Tomcat服务器管理菜单。apache-tomcat 6.0.14.zip是一个压缩包,只需要把它解压到本地硬盘即可,这种方式既适合Windows系统下的安装,也适用于其他操作系统,例如Linux系统,所以下面主要介绍apache-tomcat 6.0.14.zip的安装与Tomcat运行环境的设置。

2  JDK安装及设置

1)双击jdk-6u1-windows-i586-p.exe,弹出如图1-6所示界面。单击“接受”按钮进入下一步。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
  1-6  执行安装程序
2)选择安装内容及路径,如图1-7所示。
其中,中间列表是要安装的可选功能,单击每个可选功能左边的按钮,将弹出下拉菜单,其选项内容包括“此功能将安装在本地硬盘驱动器上”、“此功能及所有子功能将安装在本地硬盘驱动器上”、“现在不安装此功能”和“此功能将不可用”,系统默认均为第一个选项。
3)安装JRE,如图1-8所示。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
  
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
 
1-7  选择安装内容及路径                   1-8  设置JRE安装内容及路径
【专家提示】系统默认安装路径是C:\Program Files\Java\jdk1.6.0_02\,若想安装到其他路  径,可单击右边的“更改(A”按钮,选择其他安装路径。建议将JDK安装在C盘根目录下,即JDK的安装目录是C:\ jdk1.6.0_02\
设置好安装内容及路径后,单击“下一步(N)”按钮,即在选择的安装路径下开始安装所选的内容。
JREJava Runtime Environment的缩写,是Java运行环境,即Java平台。和第二步界面相似,中间列表是要安装的可选功能,系统默认的都是第一个选项。下面是系统安装路径,默认是C:\Program Files\Java\jre1.6.0_02\,若想安装到其他路径,可单击右边的按钮,选择其他安装路径,JRE按照默认路径安装即可。
设置好安装内容及路径后,单击“下一步(N)”按钮,即可在选择的安装路径下安装所选的内容。安装完毕后弹出如图1-9所示界面,提示JDK安装完成。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
  1-9  安装完成
安装完成后可以发现系统存在两套JRE,一套位于<JDK安装目录>\jre目录下(即C:\jdk1.6.0_02\jre),另一套位于C:\Program Files\Java\jre1.6.0_02目录下,后面这套比前面那套少了Server端的JVM,把前面那套Server端的JVM复制过来后两者效果一样。其实,在上述步骤中的第二步,已经安装了JDKJRE(第一套),第三步安装的是第二套JRE
安装两套JRE的原因是:JDK是基于DOS界面的Java程序集成开发环境,而JREJava程序运行的必备平台,即所谓的JVM。安装两套JRE,就是在机器上安装了两个JVM,它们都可以运行Java程序。Java应用程序可以分为两种,一种是JDK目录中的应用程序,另一种是根据各种应用需要开发的一般Java程序。它们执行时分别使用不同的JRE,可以减少搜索时间,利用JRE并行运行的特点来提高程序执行速度,所以C:\jdk1.6.0_02\jre下的JRE运行JDK目录中的应用程序,而C:\Program Files\Java\jre1.6.0_02下的JRE运行一般Java应用程序。
安装完成后需要重新启动计算机,然后设置环境变量,步骤如下:
1)右击“我的电脑”,在弹出的快捷菜单中选择“属性”命令,打开“系统属性”对话框,选择“高级”选项卡,单击“环境变量”按钮,打开“环境变量”对话框,如图1-10所示。
2)单击“系统变量”选项区域中的“新建”按钮,打开“新建系统变量”对话框,变量名设置为JAVA_HOME,变量值设置为C:\jdk1.6.0_02,如图1-11所示,此变量值为JDK安装目录所在位置。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
      
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
 
1-10  “环境变量”对话框                    1-11  “新建系统变量”对话框
3)再新建一个系统变量,变量名设置为classpath,变量值设置为;C:\jdk1.6.0_02\lib; C:\jdk1.6.0_02\lib\tools.jar,此变量值表示搜索Java类的路径,该路径中包含一些Jar归档文件或者相应的目录,Java程序执行时往往会从classpath中选择并添加自己需要的类路径。设置时需要注意,变量值最前面的“.”表示当前路径,不可以省略,不同值之间用“;”隔开。
4)选中“系统变量”面板中的Path变量,然后单击“编辑”按钮,在弹出的“编辑系统变量”对话框中,在变量值的最后添加;C:\jdk1.6.0_02\bin,此变量设置一些常用目录,该目录中的文件在任何地方都可以直接访问,从而免去了在不同目录间反复切换的麻烦。
【专家提示】为了检验环境变量设置是否成功,可以采用下面的方法:选择“开始”→“运行”命令,输入cmd,进入DOS界面,然后在其中运行javajavac这两个命令,如果输出对应的帮助信息,则表明环境变量已经设置成功。

3  Tomcat安装及设置

Tomcat压缩文件apache-tomcat-6.0.14.zip中的内容解压缩到C:\apache-tomcat-6.0.14下,然后按照1.2.2节中增加系统变量的方法增加系统变量。
变量名:TOMCAT_HOME;变量值:C:\apache-tomcat-6.0.14。然后修改系统变量classpath,添加%TOMCAT_HOME%\common\lib\servlet-api.jar;同时修改系统变量path,添加%TOMCAT_ HOME%\bin

4  测试Tomcat

要测试Tomcat服务器是否安装成功,首先要启动Tomcat服务器。在Tomcat安装目录C:\apache-tomcat-6.0.14下面有一个bin目录,里面有两个文件:startup.batshutdown.bat,分别控制Tomcat的启动和关闭。由于在1.2.3节中已经把该目录加入到系统变量Path中,所以在命令行中直接输入对应的文件名即可实现Tomcat的启动和关闭,而不需要切换目录。在命令行中输入startup.bat,即可启动Tomcat,如图1-12所示。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
  1-12  启动Tomcat
然后在浏览器地址栏中输入http://localhost:8080,按Enter键访问。如果出现如图1-13所示界面,则说明Tomcat安装成功。
Tomcat的安装与配置 - 天地人心 - van_zhang的博客
 
1-13  Tomcat默认主页

5  Tomcat常用配置文件

Tomcat目录中,比较重要的配置文件有\conf下的tomcat-users.xmlserver.xml以及\webapps中应用程序目录下的web.xmlTomcat采用基于角色的访问控制模型管理用户对系统的使用,安全性比较高,其角色和对应用户都保存在tomcat-users.xml中。Tomcat服务器是由一些可配置的组件构成,在server.xml文件中可以对这些组件进行配置,每个Tomcat组件和server.xml文件是一一对应的。web.xml是按照Servlet规范定义的Web应用发布描述符文件,是完全独立于Tomcat容器的Web应用配置文件。
下面是一个tomcat-users.xml文件的内容:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
其中,文件开头声明了XML的版本和编码方式,<tomcat-users></tomcat-users>之间描述了系统中的角色和用户。其中<role rolename="tomcat"/>表示建立了一个名字叫tomcat的角色;<user username="tomcat" password="tomcat" roles="tomcat"/>表示建立了一个用户,名字为tomcat,密码为tomcat,拥有角色tomcat所拥有的权限。一个用户可以拥有多个角色的权限,<user username="both" password="tomcat" roles="tomcatrole1"/>表明用户both拥有角色tomcatrole1两者的权限。该文件具有扩充性,用户可以增加角色和用户。

struts2学习进阶(基础篇)——Hello World

struts2学习进阶(基础篇)——Hello World

 当 你提交一个HTML表单到这个框架中的时候,输入并不是被发送到服务页,而是被发送到你提供的Java类,这些类被称为Action。在这些Action 执行完后,选择某一个资源来呈现返回结果,这个资源一般是页面,但也可以是PDF文件,或者是Excel文件,亦或是Java applet窗口。
 假设你想要创建一个“Hello World”的例子来呈现欢迎信息,在你准备好开发环境后,为了创建一个“Hello World”的例子,你需要做如下三件事情:
1.       创建一个jsp页面来呈现欢迎信息;
2.       创建一个Action类来创建信息;
3.       在配置文件中配置action和页面的映射关系。
注意:为了创建这个组件,我们将工作流分成几乎无人不晓的三部分:视图、模型和控制器。分离这三部分的原因是当系统变得越来月复杂的时候,我们能够更好的管理。
一.             准备工作
 建立web工程,其中工程名为tutorial,在WebRoot下引入struts2的lib下的如下4个包:
 commons-logging-1.1.jar
 freemarker-<?XML:NAMESPACE PREFIX = ST1 />.jar
 ognl-.jar
 struts2-core-.jar
 xwork-.jar
在web.xml文件中增加struts2的FilterDispatcher,修改后的web.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>tutorial</display-name>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

二.             代码
 首先,我们需要一个jsp页面来呈现信息,HelloWorld.jsp页面代码如下所示:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>接着,我们需要一个Action类来创建信息,代码如下:
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;
    }
}
第三步,我们需要在配置文件中进行相应配置来将两者联系起来。让我们编辑src下的struts.xml文件,该文件内容如下:
<!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>
代 码已经完成,让我们来尝试运行它。部署该应用程序并打开http://localhost:8080/tutorial /HelloWorld.action,我们可以看到标题栏为:Hello World,并且显示“Struts is up and running!”的页面呈现在我们面前。
三.             代码是如何工作的?
 你的浏览器向Web服务器发送了的http://localhost:8080/tutorial/HelloWorld.action(注:tutorial为部署在Tomcat中的的项目名称)的URL请求后,服务器做了如下工作:
1.       容器接收到了Web服务器对资源HelloWorld.action的请求,根据web.xml中的配置,服务器将包含有.action后缀的请求转到 org.apache.struts2.dispatcher.FilterDispatcher类进行处理。这个FilterDispatcher是框 架的一个进入点;
2.       框架在struts.xml配置文件中找到名为HelloWorld的action对应的类。框架初始化该Action并且执行该Action类的execute方法;
3.       execute方法将信息放入message变量中,并返回成功。框架检查配置以查看当返回成功时对应的页面。框架告诉容器来获得请求返回的结果页面HelloWorld.jsp;
4.       在HelloWorld.jsp执行完后,<s:property value="message" />标签调用HelloWorld的Action类中的getMessage方法来获得message的值,并将合并了值的页面呈现给用户;
5.       一个纯粹的HTML页面显示在用户的浏览器上。
四.             测试Action
 测试Action很简单,以下是上述HelloWorld的Action类的测试类的代码:

package tutorial;
import junit.framework.TestCase;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldTest extends TestCase {
 public void testHelloWorld() throws Exception {
    HelloWorld hello_world = new HelloWorld();
    String result = hello_world.execute();
    assertTrue("Expected a success result!",
      ActionSupport.SUCCESS.equals(result));
    assertTrue("Expected the default message!",
      HelloWorld.MESSAGE.equals(hello_world.getMessage()));
    }
}
五.             需要记住的东西
 本框架利用Action来处理HTML的表单以及其余请求。Action返回一个结果的名字字符串,例如SUCCESS、ERROR以及INPUT等,从struts.xml中获取映射信息。一个给定的结果字符串将选择一个页面或其他资源(图片或PDF)来返回给用户。
 当一个jsp被载入的时候,通常有一些动态变化的元素需要Action来载入。为了更加容易的显示动态数据,本框架提供了一些可以跟HTML配合使用的标签。