📄 introduction.html
字号:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=GB2312">
<meta content="Craig R. McClanahan" name="author">
<meta content="Xiaogang Cao" name="translator">
<title>Struts 用户指南- 简介</title></head>
<body vlink="#023264" alink="#023264" link="#023264" text="#000000" bgcolor="#ffffff"><table cellspacing="5" width="100%" border="0"><tr><td colspan="2"><a href="http://jakarta.apache.org"><img border="0" align="left" src="../images/jakarta-logo.gif"></a><img border="0" align="right" src="../images/struts.gif"></td></tr><tr><td colspan="2"><hr></td></tr><tr><td valign="top" width="120">
<title>Struts 用户指南</title>
<table cellspacing="5" border="0"><tr><th align="left" colspan="2"><font color="#023264"><strong>快速连接</strong></font></th></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="../index.html">Home</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="index.html">目录</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="introduction.html">简介</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="building_model.html">Model 部件</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="building_view.html">View 部件</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="building_controller.html">Controller 部件</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="resources.html">资源</a></font></td></tr>
<tr><td width="15" align="center"></td><td><font size="-1"><a href="volunteers.html">我们是谁</a></font></td></tr>
</table>
</td><td valign="top"><body>
<a name="introduction"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1. 简介</strong></font></td></tr></table><a name="prereqs"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.0 先决条件</strong></font></td></tr><tr><td><blockquote>
<p>
这份用户指南是为那些活跃的Web开发者编写的,假设读者已经了解java Web application是如何工作的。在开始之前,您应该已经掌握下列基本核心技术。
</p>
<ul>
<li><b>HTTP Request/Response 结构.</b><br>正式的文档在这里<a href="http://www.ietf.org/rfc/rfc2616.txt?number=2616">RFC 2616
- Hypertext Transfer Protocol (HTTP/1.1)</a>.</li>
<li><b>Java Servlets</b>.<br> 开始学习的一个好地方是
<a href="http://java.sun.com/products/jsp/product.html">Sun Servlet product page</a>
和 <a href="http://java.sun.com/docs/books/tutorial/">Sun Java Tutorials</a>.</li>
<li><b>JavaServer Pages (JSP)</b>.<br> 类似的,一个开始学习的好地方是
<a href="http://java.sun.com/products/jsp/product.html">Sun JSP product page</a>
和<a href="http://java.sun.com/docs/books/tutorial/">Sun Java Tutorials</a>.</li>
<li><b>JavaBeans</b>.<br>很多Struts的类被编写成为Javabeans.如果您没有接触过Javabeans,参阅
<a href="http://java.sun.com/products/javabeans/">Sun JavaBean product page</a>
和 <a href="http://java.sun.com/docs/books/tutorial/">Sun Java Tutorials</a></li>
</ul>
<p>如果您在其他平台上开发过web applications,您也许可以继续。在需要的时候参考以上的资料。他们几乎是所有Java web开发项目需要用到的核心技术。
</p>
</blockquote></td></tr></table><a name="preface"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.1 前言 :回到从前!(也是Struts的简史)</strong></font></td></tr><tr><td><blockquote>
<p>
当java servlets被发明出来的时候,很多程序员迅速意识到这是一个好东西。它比标准CGI快速强大,可以移植,并且几乎可以无限扩展。
</p>
<p>
但是无穷无尽的编写 println()语句来吧HTML送到浏览器是浪费时间并且容易造成问题。答案就是JavaServer Pages,它把编写servlet的任务倒了个个儿。现在开发者可以很容易的把HTML和Java代码混合起来,并且仍然拥有servlet的所有好处。只有天空才会限制(我们)!
</p>
<p>
Java web程序很快变成了以JSP为中心的。关于(JSP)本身并不是一件坏事,但是它并没有解决流程控制和web application的其他一些问题
</p>
<p>显然,我们需要另一个模型...</p>
<p>
很多聪明的程序员认识到JSP和servlets可以被<b>一起</b>使用来构造web程序。Servlets可以用来辅助流程控制,JSP主要关注于实现那些凌乱的HTML.在这样的过程中,一起使用JSP和servlet开始被称为Model 2.(同时只使用JSP被称为Model 1)。
</p>
<p>
当然,天底下没有新东西...很快很多人指出JSP的Model 2 遵循SmallTalk的经典的Model-View-controller设计模式。现在术语Model 2和MVC可以互相替代。
</p>
<p>
Struts工程于2000年5月由Craig R. McClanahan开始动工,来为Java社区实现一个标准的MVC框架。2001年6月,Struts 1.0发布了。从此,Model 2开发开始变得不同。
</p>
</blockquote></td></tr></table><a name="mvc"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.2 Model-View-Controller ('MVC') 设计模式</strong></font></td></tr><tr><td><blockquote>
<p>
在MVC设计模式中,程序流程由一个的Controller(控制器)居中斡旋。Controller委派请求--在我们的情形中,HTTP请求--到合适的handle(处理程序)去。Handle和Model(模型)相联系,每一个handle的作用就是成为在请求和Model之间的适配器(adaptor有一个意思是电源插头--译者注)。Model 代表或者封装了一个程序的商业逻辑或者状态。通常控制由Controller重新转移到对应的View去。这个转移由一系列的映射决定,一般从数据库或者配置文件中取得。这样就为View和Model提供了一个松散的联系,编写和维护程序变得显而易见的的容易。
</p>
</blockquote></td></tr></table><a name="overview"></a><table width="100%" cellpadding="5" cellspacing="5" border="0"><tr><td bgcolor="#023264"><font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><strong>1.3 Struts 框架纵览</strong></font></td></tr><tr><td><blockquote>
<p>
忠实的和Model-View-Controller设计模式对应,Struts程序有三个主要的部件:一个Servlet Controller,它由Struts本身提供,JSP 页面("view"),还有程序的商业逻辑("model").我们来看看他们是怎么组合到一起的。
</p>
<p>
Struts的Controller servlet把HTTP 请求打包并传送到框架中的其他对象,包括JavaServer Pages和由Struts开发者编写的<code>org.apache.struts.action.Action</code>的子类。当(系统)初始化的时候,Controller 解释一个配置资源文件。这个文件定义了(和其他配置一起)这个程序的<code>org.apache.struts.action.ActionMapping</code>。Controller用这些映射来把HTTP 请求转换为程序的actions(动作)。
</p>
<p>
一个ActionMapping通常会指出:</p>
<ul>
<li><b>一个request请求的路径</b> (简称 "URI"),</li>
<li> 用于处理请求的<b>object type(对象)</b> (Action 的子类), </li>
<li>和其他一些必要的属性。 </li>
</ul>
<p>
Action 对象可以处理请求并响应客户端(通常是一个web browser),或者指出流程应该被指向另一个地方。例如,如果登录成功,一个login Action可能希望把流程转移到主菜单。
</p>
<p>
Action对象可以操作程序的Controller servlet,所以可以操作这个Controller的方法。当转发控制的时候,一个Action对象可以不直接的转发一个或多个共享对象,包括JavaBeans,这个过程是通过把它们放到Java servlet共享的某一个标准collection对象里去。
</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -