科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[冷枫]Struts程序设计之HelloWord实战入门篇

[冷枫]Struts程序设计之HelloWord实战入门篇

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Struts程序之HelloWord实战入门篇

作者:冷枫 来源:CSDN 2007年9月23日

关键字: 冷枫 Struts 程序设计 Hello World 入门

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

[目标]

实现一个最简单的Struts程序。程序包括一个输入页和输出页,输入页。

对于学习程序设计,我们已习惯于从Hello程序开始,实践证明,这是一个最有效的入门方法。下面就着手设计我们的第一个Struts程序----Hello程序。Hello程序的目标是实现从一个输入JSP页面中的输入框输入一个“Hello”单词,在另一个输出JSP页面中显示“Hello”一词。根据Struts框架的要求,这个Hello程序将包含输入JSP文件、输出JSP文件、Action文件、FormAction文件及配置文件。也就是说,这个Hello程序是一个完整的Struts程序,它可直接在Tomact、Resin等服务器上运行。

[背景知识]

以前使用servlet开发应用系统的人深深感受到在java代码中嵌入大量html代码是一件非常痛苦的事,于是sun推出了JSP,解决了java代码中嵌入html代码的问题。但是很快程序员们就知道,用JSP“在html代码中嵌入大量java代码”跟“在java代码中嵌入大量html代码”是一样的非常痛。JSP是这样,ASP也是这样。于是,Craig R. McClanahan借用MVC的思想,把Java web应用程序的java和html分离开放在不同的文件中,分成了三部分,也就是struts;后来,微软也学会了这种分离方法,但微软懒一些,只分成了两部分,也就是ASP.NET。

Struts (org.apache.struts)是一个开放源代码的Web应用框架,基于MVC设计模式,使用servlet和JSP API建立,可以用来构建复杂的Web应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。Struts框架是Jakarta工程的一部分,由Apache软件基金会管理。Struts可以从http://jakarta.apache.org/ struts站点下载。

Struts框架提供以下服务。

作为MVC结构中的controller的servlet.

JSP里用于bean管理、HTML和javascript生成、模板处理和流程控制的JSP标签库。

用于国际化消息的框架。国际化你的Web应用,意味着你的Web应用在使用时可以让用户以喜爱的语言显示。这意味着你需要创建一个应用资源文件,包含每种语言的信息。

一个JDBC的实现来定义数据源和数据库连接池。

一个通用的的错误和异常处理机制,包括从一个应用程序资源文件读取错误信息。

XML语法分析。

文件上载工具。

注册机制。

一个基于Struts的应用程序的表示层(view)使用Struts标签库(taglibs)构建。来自客户的请求被传递给叫ActionServlet的servlet,它作为controller.使用了Struts的应用程序,所有需要通过框架的请求都通过ActionServlet传递。这个ActionServlet把数据从请求传递到ActionForm JavaBean。

ActionForm是代表从一个表单View组件输入数据的JavaBean。这些表单由JSP用Struts html标签库产生。这个beam由 ActionServlet生成,带request参数,它还请求ActionForm来验证用户提交数据的合法性。

ActionServlet通过定义一组ActionMapping来配置。一个ActionMapping是一个对象,它将请求中的URL映射到由应用程序开发者提供的处理请求的组件。ActionServlet和ActionMapping的配置在XML配置文件中完成。

专用的应用程序用于处理请求的组件叫Action类。在MVC结构中,它们代表模型。它们可能用于验证用户输入的合法性,假如在信息处理过程中出现了应用程序错误,Action类可以创建一个error对象的实例,然后保存庆HTTP request对象中。如果在Action类中的逻辑成功地被招待类给Controller传递一个ActionForward对象,代表所需的描绘响应的JSP。ActionForward有两种:专门转发给特定的Action类或全局转发(任何一个Action类可以把这些ActionForwards转给Controller)。

[步骤]

1、打开Visual Struts开发环境:

(1)把文件拷贝到本地硬盘的一个目录下,例如

   F:\JavaWebStudio\

(2) 运行BIN目录下的JavaWebStudio.exe文件(同时自动在桌面建立一个快捷方式,第二次启动时,只需点击桌面的快捷方式即可),出现如下启动界面:


另外,第一次运行JavaWebStudio,会提示是否要自动配置环境变量,建议选择自动配置。

2、建立一个“空的Struts普通模板”应用程序:

选择菜单“文件”—“新建”—“新建项目”,弹出新建项目对话框。

在对话框中选择“空的Struts普通用模板”,在项目名称中输入“Simple”,package (包名)和位置(项目的路径)采用默认的值就行,当然也可以根据需要改变。最后点击“确定”按钮完成新项目的建立。


从文件管理器中可看出Simple项目的文件结构如下:


Simple

+------config

+------lib

+------src

+------web

-------build.xml

-------hello.prj

在Simple项目根目录下包含四个子目录和两个文件,这是JSPStudio项目的标准结构,最好不要改变它们默认的名称,否则会出现问题。



3、利用Struts文件向导建立新的应用:

在JSPStudio文件管理器内点击鼠标右键,在弹出的菜单中选择“Struts文件向导”进入Struts文件向导对话框,也可以选择菜单“文件”—“新建”—“ Struts文件向导”进入Struts文件向导对话框。

在Struts文件向导对话框JSP文件标签下的文件名输入栏中输入“HellWord”文件名,其它文件采用默认的设置,点击“确定”按钮完成在Struts文件向导。

刷新JSPStudio文件管理器,这时发现web目录下自动生成了两个文件,分别是HellWord.jsp和HellWord.jsp,前者是输入JSP文件,后者是输出JSP文件;src\emptyprj目录下自动生成了两个文件,分别是HellWord Action.java和HellWord Form.java,前者是Action文件,后者FormAction文件。



4、编译、启动服务器:


点击工具条上的编译按钮或选择菜单“生成”—“编译”开始项目的编译。编译过程和结果在输出栏中显示出来,内容如下:

C:\Documents and Settings\Administrator\桌面>F:

F:\>cd F:\JavaWebStudio\JavaWebStudioWorkDir\Simple

F:\JavaWebStudio\JavaWebStudioWorkDir\Simple>ant -buildfile build.xml

Buildfile: build.xml

prepare:

[mkdir] Created dir: F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple

[copy] Copying 2 files to F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple

[mkdir] Created dir: F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF

[copy] Copying 6 files to F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF

[mkdir] Created dir: F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF\classes

[copy] Copying 5 files to F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF\classes

[mkdir] Created dir: F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF\lib

[copy] Copying 18 files to F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF\lib

[mkdir] Created dir: F:\JavaWebStudio\JavaWebStudioWorkDir\wars

compile:

[javac] Compiling 3 source files to

F:\JavaWebStudio\jakarta-tomcat-5.0.24\webapps\Simple\WEB-INF\classes

dist:

[jar] Building jar: F:\JavaWebStudio\JavaWebStudioWorkDir\wars\Simple.war

BUILD SUCCESSFUL

Total time: 5 seconds

上述输出表明利用ant 编译build.xml所设置的项目已成功。把编译结果拷贝到tomcat服务器webapps目录下,并生成打包文件Simple.war。



5、启动服务器:

点击工具条上的启动服务器按钮或选择菜单“运行”—“ 启动服务器”启动服务器jakarta-tomcat服务器。


6、运行:

展开文件管理器Simple项目下web目录,可见到HelloWord.jap和HelloWordOut.jsp文件,通过双击打开HelloWord.jap文件,如图所示。编辑窗口分上下两部分,上部分是源程序编辑,下部分是可视化编辑,与Dreamweaver MX编辑窗口相似。


点击工具条上的运行按钮或选择菜单“运行”—“ 运行(web浏览)”这时打开显示出HelloWord.jsp的运行结果。在运行结果页面中的输入框中输入“Hello Word”,点击“提交”按钮,这时转发到HelloWordOut.jsp文件,HelloWordOut.jsp页面中输出“Hello Word”一词。


生成的源代码如下:

<html><head><title></title>

<META http-equiv=Content-Type content="text/html; charset=gb2312">

</head>

<body bgColor=white>

<base href="http://localhost:8080/Simple/HelloWord.jsp"> <form name="HelloWordForm" method="post" action="/Simple/HelloWordAction.do;jsessionid=CFFAC422C4A779419348832D588CA5BE">

<input type="text" name="mybeanvariable1" value=""> <input type="submit" value="提交"> <input type="reset" value="重写">

</form>

</body>

</html>


生成的源代码如下:

<html><head><title></title>

<base href="http://localhost:8080/Simple/HelloWordOut.jsp">

</head>

<body bgcolor="white">

Hello Word

</body>

</html>



[项目文件结构]


config目录下包含了所有的配置文件和Struts标签的描述文件,例如web.xml、struts-config.xml、struts-bean.tld、struts-html.tld、struts-logic.tld和struts-template.tld等文件。

lib包含了Struts库文件和带用其它库文件,例如struts.jar、struts-legacy.jar、commons-lang.jar和xerces.jar等文件。

src目录下包含了java原文件和资源文件,例如ApplicationResources.properties和ApplicationResources_ch.properties资源文件,前者是英语资源文件,后者是中文资源文件。新建时这个目录里还有一个子目录“emptyprj”,这个名称与建立项目时输入的package名称是一至的。Emptyprj目录下有“filters”、“jdbc”两个子目录,前者是过滤器目录,是中文解决方案,详细分析请看后面的有关滤器程序设计、中文解决方案章节,后者是数据库连接池文件,详细分析请看后面的Struts数据库应用程序设计章节。

web目录下包含了JSP、Html等web文件和Web文件用到的图片文件。新建时这个目录是空的。

build.xml文件是编译是所需的配置文件,由于JSPStudio采用的是ANT编译器,所以这个文件是JSPStudio项目中必不可少的,它是ANT标准的配置文件,所有的项目目录结构也符合ANT编译器的要求,可见JSPStudio项目与ANT具有非常好的兼容性,这也是JSPStudio的优点之一。

hello.prj文件是项目文件,XML结构,内容如下:

<projectname>Simple</projectname>

<projecttype>struts</projecttype>

<title>这是一个建立空的Struts普通模板</title>

<package>emptyprj</package>

<typepath>\Jave Web 项目\空的Struts普通模板</typepath>

<projectpath>F:\JavaWebStudio\JavaWebStudioWorkDir\Simple</projectpath>

<projectname>标签内是项目名称;<projecttype>标签内是项目的类型,这个标签的内容最好不要改变;<title>标签内是项目的简单说明,可根据需要填写;<package>标签内是默认的package名称;<typepath>标签内是项目模板的相对路径;<projectpath>标签内是项目保存的绝对路径。


[关键技术]


Struts使用MVC结构;图2.1所示的逻辑图描述了框架的高层结构。

我们现在讨论图中的每个元素。

一个基于Struts的应用程序的表示层(view)使用Struts标签库(taglibs)构建。来自客户的请求被传递给叫ActionServlet的servlet,它作为controller.使用了Struts的应用程序,所有需要通过框架的请求都通过ActionServlet传递。这个ActionServlet把数据从请求传递到ActionForm JavaBean。

ActionMapping

ActionForm (模型的数据)

Action (模型的业逻辑)

发送

ActionServlet (controller)

JSP (view)

taglib (view)

使用

实例化

调用

使用

使用


ActionForm是代表从一个表单View组件输入数据的JavaBean。这些表单由JSP用Struts html标签库产生。这个beam由 ActionServlet生成,带request参数,它还请求ActionForm来验证用户提交数据的合法性。

ActionServlet通过定义一组ActionMapping来配置。一个ActionMapping是一个对象,它将请求中的URL映射到由应用程序开发者提供的处理请求的组件。ActionServlet和ActionMapping的配置在XML配置文件中完成。

专用的应用程序用于处理请求的组件叫Action类。在MVC结构中,它们代表模型。它们可能用于验证用户输入的合法性,假如在信息处理过程中出现了应用程序错误,Action类可以创建一个error对象的实例,然后保存庆HTTP request对象中。如果在Action类中的逻辑成功地被招待类给Controller传递一个ActionForward对象,代表所需的描绘响应的JSP。ActionForward有两种:专门转发给特定的Action类或全局转发(任何一个Action类可以把这些ActionForwards转给Controller)。


本例主要文件之间的关系:

输入页面:

HelloWord.jsp

ActionForm (模型的数据)

HelloWordForm.java

ActionServlet (controller)



通过struts-config.xml配置实现



ActionMapping



输入页面:

HelloWordOut.jsp

Action (模型的业逻辑)

HelloWordAction.java

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章