📄 in5_simple.htm
字号:
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<style>
<!--
p
{margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:宋体;
}
p.MsoNormal
{mso-style-parent:"";
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";
margin-left:0cm; margin-right:0cm; margin-top:0cm}
span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
-->
</style>
<!--[if !mso]>
<style>
v\:* { behavior: url(#default#VML) }
o\:* { behavior: url(#default#VML) }
.shape { behavior: url(#default#VML) }
</style>
<![endif]-->
<link rel="File-List" href="in5_Simple_files/filelist.xml">
<!--[if gte mso 9]>
<xml><o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]-->
</head>
<body>
<p class="MsoNormal" style="text-indent: 99.75pt"><span style="font-family: 宋体">
</span></p>
<p class="MsoNormal" style="text-indent: 171.65pt"><b>
<span style="font-size: 18.0pt; font-family: 黑体">最简单的</span><span lang="EN-US" style="font-size:18.0pt;
font-family:黑体">Struts</span><span style="font-size: 18.0pt; font-family: 黑体">程序</span><span style="font-size:18.0pt;font-family:黑体">
</span></b></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">[</span><span style="font-family: 宋体">目标</span><span lang="EN-US">]</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">实现一个最简单的</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">程序。程序包括一个输入页和输出页,输入页。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">对于学习程序设计,我们已习惯于从</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">程序开始,实践证明,这是一个最有效的入门方法。下面就着手设计我们的第一个</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">程序</span><span lang="EN-US">----Hello</span><span style="font-family: 宋体">程序。</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">程序的目标是实现从一个输入</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">页面中的输入框输入一个“</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">”单词,在另一个输出</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">页面中显示“</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">”一词。根据</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">框架的要求,这个</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">程序将包含输入</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">文件、输出</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">文件、</span><span lang="EN-US">Action</span><span style="font-family: 宋体">文件、</span><span lang="EN-US">FormAction</span><span style="font-family: 宋体">文件及配置文件。也就是说,这个</span><span lang="EN-US">Hello</span><span style="font-family: 宋体">程序是一个完整的</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">程序,它可直接在</span><span lang="EN-US">Tomact</span><span style="font-family: 宋体">、</span><span lang="EN-US">Resin</span><span style="font-family: 宋体">等服务器上运行。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">[</span><span style="font-family: 宋体">效果</span><span lang="EN-US">]</span></p>
<p class="MsoNormal"><span style="font-family: 宋体">输入页面:</span></p>
<p class="MsoNormal"><span lang="EN-US"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_s1025" type="#_x0000_t75" style='width:350.25pt;
height:160.5pt'>
<v:imagedata src="in5_Simple_files/image001.png" o:title=""/>
</v:shape><![endif]--><![if !vml]><img border=0 width=467 height=214
src="in5_Simple_files/image002.jpg" v:shapes="_x0000_s1025"><![endif]></span></p>
<p class="MsoNormal"><span style="font-family: 宋体">输出页面:</span></p>
<p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shape
id="_x0000_s1026" type="#_x0000_t75" style='width:349.5pt;height:158.25pt'>
<v:imagedata src="in5_Simple_files/image003.png" o:title=""/>
</v:shape><![endif]--><![if !vml]><img border=0 width=466 height=211
src="in5_Simple_files/image004.jpg" v:shapes="_x0000_s1026"><![endif]></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">[</span><span style="font-family: 宋体">背景知识</span><span lang="EN-US">]</span></p>
<p class="MsoNormal" style="text-indent: 21.0pt"><span style="font-family: 宋体">
以前使用</span><span lang="EN-US">servlet</span><span style="font-family: 宋体">开发应用系统的人深深感受到在</span><span lang="EN-US">java</span><span style="font-family: 宋体">代码中嵌入大量</span><span lang="EN-US">html</span><span style="font-family: 宋体">代码是一件非常痛苦的事,于是</span><span lang="EN-US">sun</span><span style="font-family: 宋体">推出了</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">,解决了</span><span lang="EN-US">java</span><span style="font-family: 宋体">代码中嵌入</span><span lang="EN-US">html</span><span style="font-family: 宋体">代码的问题。但是很快程序员们就知道,用</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">“在</span><span lang="EN-US">html</span><span style="font-family: 宋体">代码中嵌入大量</span><span lang="EN-US">java</span><span style="font-family: 宋体">代码”跟“在</span><span lang="EN-US">java</span><span style="font-family: 宋体">代码中嵌入大量</span><span lang="EN-US">html</span><span style="font-family: 宋体">代码”是一样的非常痛。</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">是这样,</span><span lang="EN-US">ASP</span><span style="font-family: 宋体">也是这样。于是,</span><span lang="EN-US">Craig
R. McClanahan</span><span style="font-family: 宋体">借用</span><span lang="EN-US">MVC</span><span style="font-family: 宋体">的思想,把</span><span lang="EN-US">Java
web</span><span style="font-family: 宋体">应用程序的</span><span lang="EN-US">java</span><span style="font-family: 宋体">和</span><span lang="EN-US">html</span><span style="font-family: 宋体">分离开放在不同的文件中,分成了三部分,也就是</span><span lang="EN-US">struts</span><span style="font-family: 宋体">;后来,微软也学会了这种分离方法,但微软懒一些,只分成了两部分,也就是</span><span lang="EN-US">ASP.NET</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US"> Struts (org.apache.struts)</span><span style="font-family: 宋体">是一个开放源代码的</span><span lang="EN-US">Web</span><span style="font-family: 宋体">应用框架,基于</span><span lang="EN-US">MVC</span><span style="font-family: 宋体">设计模式,使用</span><span lang="EN-US">servlet</span><span style="font-family: 宋体">和</span><span lang="EN-US">JSP
API</span><span style="font-family: 宋体">建立,可以用来构建复杂的</span><span lang="EN-US">Web</span><span style="font-family: 宋体">应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">框架是</span><span lang="EN-US">Jakarta</span><span style="font-family: 宋体">工程的一部分,由</span><span lang="EN-US">Apache</span><span style="font-family: 宋体">软件基金会管理。</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">可以从</span><span lang="EN-US">http://jakarta.apache.org/
struts</span><span style="font-family: 宋体">站点下载。</span></p>
<p class="MsoNormal"><span lang="EN-US">Struts</span><span style="font-family: 宋体">框架提供以下服务。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">作为</span><span lang="EN-US">MVC</span><span style="font-family: 宋体">结构中的</span><span lang="EN-US">controller</span><span style="font-family: 宋体">的</span><span lang="EN-US">servlet.</span></p>
<p class="MsoNormal"><span lang="EN-US"> JSP</span><span style="font-family: 宋体">里用于</span><span lang="EN-US">bean</span><span style="font-family: 宋体">管理、</span><span lang="EN-US">HTML</span><span style="font-family: 宋体">和</span><span lang="EN-US">JavaScript</span><span style="font-family: 宋体">生成、模板处理和流程控制的</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">标签库。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">用于国际化消息的框架。国际化你的</span><span lang="EN-US">Web</span><span style="font-family: 宋体">应用,意味着你的</span><span lang="EN-US">Web</span><span style="font-family: 宋体">应用在使用时可以让用户以喜爱的语言显示。这意味着你需要创建一个应用资源文件,包含每种语言的信息。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">一个</span><span lang="EN-US">JDBC</span><span style="font-family: 宋体">的实现来定义数据源和数据库连接池。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">一个通用的的错误和异常处理机制,包括从一个应用程序资源文件读取错误信息。</span></p>
<p class="MsoNormal"><span lang="EN-US"> XML</span><span style="font-family: 宋体">语法分析。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">文件上载工具。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">注册机制。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">一个基于</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">的应用程序的表示层</span><span lang="EN-US">(view)</span><span style="font-family: 宋体">使用</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">标签库</span><span lang="EN-US">(taglibs)</span><span style="font-family: 宋体">构建。来自客户的请求被传递给叫</span><span lang="EN-US">ActionServlet</span><span style="font-family: 宋体">的</span><span lang="EN-US">servlet</span><span style="font-family: 宋体">,它作为</span><span lang="EN-US">controller.</span><span style="font-family: 宋体">使用了</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">的应用程序,所有需要通过框架的请求都通过</span><span lang="EN-US">ActionServlet</span><span style="font-family: 宋体">传递。这个</span><span lang="EN-US">ActionServlet</span><span style="font-family: 宋体">把数据从请求传递到</span><span lang="EN-US">ActionForm
JavaBean</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US"> ActionForm</span><span style="font-family: 宋体">是代表从一个表单</span><span lang="EN-US">View</span><span style="font-family: 宋体">组件输入数据的</span><span lang="EN-US">JavaBean</span><span style="font-family: 宋体">。这些表单由</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">用</span><span lang="EN-US">Struts
html</span><span style="font-family: 宋体">标签库产生。这个</span><span lang="EN-US">beam</span><span style="font-family: 宋体">由</span><span lang="EN-US">
ActionServlet</span><span style="font-family: 宋体">生成,带</span><span lang="EN-US">request</span><span style="font-family: 宋体">参数,它还请求</span><span lang="EN-US">ActionForm</span><span style="font-family: 宋体">来验证用户提交数据的合法性。</span></p>
<p class="MsoNormal"><span lang="EN-US"> ActionServlet</span><span style="font-family: 宋体">通过定义一组</span><span lang="EN-US">ActionMapping</span><span style="font-family: 宋体">来配置。一个</span><span lang="EN-US">ActionMapping</span><span style="font-family: 宋体">是一个对象,它将请求中的</span><span lang="EN-US">URL</span><span style="font-family: 宋体">映射到由应用程序开发者提供的处理请求的组件。</span><span lang="EN-US">ActionServlet</span><span style="font-family: 宋体">和</span><span lang="EN-US">ActionMapping</span><span style="font-family: 宋体">的配置在</span><span lang="EN-US">XML</span><span style="font-family: 宋体">配置文件中完成。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span>
<span style="font-family: 宋体">专用的应用程序用于处理请求的组件叫</span><span lang="EN-US">Action</span><span style="font-family: 宋体">类。在</span><span lang="EN-US">MVC</span><span style="font-family: 宋体">结构中,它们代表模型。它们可能用于验证用户输入的合法性,假如在信息处理过程中出现了应用程序错误,</span><span lang="EN-US">Action</span><span style="font-family: 宋体">类可以创建一个</span><span lang="EN-US">error</span><span style="font-family: 宋体">对象的实例,然后保存庆</span><span lang="EN-US">HTTP
request</span><span style="font-family: 宋体">对象中。如果在</span><span lang="EN-US">Action</span><span style="font-family: 宋体">类中的逻辑成功地被招待类给</span><span lang="EN-US">Controller</span><span style="font-family: 宋体">传递一个</span><span lang="EN-US">ActionForward</span><span style="font-family: 宋体">对象,代表所需的描绘响应的</span><span lang="EN-US">JSP</span><span style="font-family: 宋体">。</span><span lang="EN-US">ActionForward</span><span style="font-family: 宋体">有两种:专门转发给特定的</span><span lang="EN-US">Action</span><span style="font-family: 宋体">类或全局转发</span><span lang="EN-US">(</span><span style="font-family: 宋体">任何一个</span><span lang="EN-US">Action</span><span style="font-family: 宋体">类可以把这些</span><span lang="EN-US">ActionForwards</span><span style="font-family: 宋体">转给</span><span lang="EN-US">Controller)</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">[</span><span style="font-family: 宋体">步骤</span><span lang="EN-US">]</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">1</span><span style="font-family: 宋体">、打开</span><span lang="EN-US">Visual
Struts</span><span style="font-family: 宋体">开发环境:</span></p>
<p>(<span lang="EN-US">1)把文件拷贝到本地硬盘的一个目录下,例如</span></p>
<p> <span lang="EN-US"><a style="color: blue; text-decoration: underline; text-underline: single" href="../../../../../../JSPStudio/"><span style="color: windowtext; text-decoration: none">F:\JavaWebStudio</span></a>\<span class="MsoHyperlink"></span></span></p>
<p class="MsoNormal"><span lang="EN-US">(2) </span>
<span style="font-family: 宋体">运行</span><span lang="EN-US">BIN</span><span style="font-family: 宋体">目录下的</span><span lang="EN-US">JavaWebStudio.exe</span><span style="font-family: 宋体">文件</span><span lang="EN-US">(</span><span style="font-family: 宋体">同时自动在桌面建立一个快捷方式,第二次启动时,只需点击桌面的快捷方式即可</span><span lang="EN-US">),</span><span style="font-family: 宋体">出现如下启动界面:</span></p>
<p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shape
id="_x0000_s1027" type="#_x0000_t75" style='width:467.25pt;height:378pt'>
<v:imagedata src="in5_Simple_files/image005.png" o:title=""/>
</v:shape><![endif]--><![if !vml]><img border=0 width=623 height=504
src="in5_Simple_files/image006.jpg" v:shapes="_x0000_s1027"><![endif]></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span><span style="font-family: 宋体">
另外,第一次运行</span><span lang="EN-US">JavaWebStudio</span><span style="font-family: 宋体">,会提示是否要自动配置环境变量,建议选择自动配置。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体">、建立一个“空的</span><span lang="EN-US">Struts</span><span style="font-family: 宋体">普通模板”应用程序:</span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -