`

精通struts第1-3章

阅读更多
精通Struts技术第一章
第一章: Jakarta Struts 项目的介绍和它的支持组件
 
我们所有的章节的Web服务器都是基于Jakarta Tomcat容器。在本章结束的时候,通过运行你建立的Struts应用程序,你可以对Struts的框架机制有个大致的了解
 
The Jakarta Struts 项目
The Jakarta Struts 项目是由 Apache Software Foundation 发起的开源项目,它在 java 服务器端实现了 MVC Model-View-Controller )设计模式。
The Jakarta Struts 项目最初是由 Craig McClanahan 2000 年五月创建的,但后来被开源组织所接收。
The Jakarta Struts 作为一个开源框架的主要意图是为了在创建 WEB 应用时能比较容易的分离表示层和业务数据层。自从它诞生以来收到大量开发人员的支持,并很快的成为开源社区中一个重要的成员。
 
理解 MVC 设计模式
为了更深刻的理解 Struts 框架,你必须先理解 MVC 设计模式, Struts 技术的就是基于 MVC 设计模式的。 MVC 设计模式起源于 Smalltalk 语言,它由以下三个部分组成:模型( model , 视图( view ),控制器( Controller . 1.1 定义了这些组件。
 
组件
描述
模型( model
封装数据对象。模型用来封装和显示数据对象。
视图( view
作为模型的显示,它表示数据对象的当前状态
控制器( Controller
定义对用户的输入执行相应操作的接口,它用来操作模型( model )和数据对象
 
使用 MVC 的好处包括如下:
可靠性: 表示层和业务层别分离,这样就允许你更改你的表示层代码而不用重新编译你的模型( model )和控制器( Controller )代码
高重用和可适应性 : MVC 模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何 WEB HTTP )浏览器或则无线浏览器 (WAP)
较低的生命周期成本: MVC 使降低开发和维护用户接口的技术含量成为可能。
快速的部署 :开发时间会得到相当大的缩减,它使程序员( java 开发人员)集中精力于业务逻辑,界面程序员( HTML JSP 开发人员)集中精力于表现形式上。
可维护性 : 分离表示层和业务逻辑层也使得基于 Struts Web 应用更易于维护和修改。
 
The Struts 架构图
在这章节,我们简要的画出一幅和 MVC 模式对应的 STRUTS 框架图 1.1
 
 
 
 

 

图1.1是Struts框架下应用程序请求流通过的路径。这个处理过程由5个基本的步骤组成。
下面是 处理步骤的描述。
1. 由显示视图产生一个请求。
2.  请求被 ActionServlet (控制器)接收,它在 struts-config.xml 文件中寻找请求的 URI ,找到对应的 Action 类后, Action 类执行相应的业务逻辑。
3.  Action类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的。
4.  一旦Action类处理完业务逻辑,它把控制权返回给 ActionServlet 。, Action 类提供一个键值作为返回的一部分,它指明了处理的结果。 ActionServlet 使用这个键值来决定在什么视图中显示 Action 的类处理结果。
5.   ActionServlet Action 类的处理结果传送到指定的视图中,请求的过程也就完成了。
 
 
模型( The Model
Struts 框架没有提供特定的模型组件,因此我们不会整章介绍模型组件,但我们会把它使用到我们的例子中去。
 
视图( The View
Struts 框架中 视图组件对应于一个简单的 JSP 文件,这个 JSP 文件包含了 Struts 定义的标签,下面的代码片段是一个简单的 Struts 视图:
<%@page language="java">
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" >
<html:form action="loginAction.do"
name="loginForm"
type="com.wiley.loginForm" >
User Id: <html:text property="username"><br/>
Password: <html:password property="password"><br/>
<html:submit />
</html:form>
如你看到的那样,几个 JSP 的标签是 JSP 文件中的重点。这些标签在 Struts 框架中定义,它使 struts 应用项目和控制器之间实现松耦合。在第三章我们会建立一个真正可运行的 struts 视图,第五章中会对视图进行更详细的介绍。
 
控制器( The Controller
控制器是 Struts 框架中的中枢,它由 org.apache.struts.action.ActionServlet 这个 servlet 来贯彻和执行的。这个 org.apache.struts.action.ActionServlet 接收所有客户端的请求,并把请求委派到指定的 Action ( 用户扩展自 org.apache.struts.action) ActionServlet 委派请求是基于客户端传入的 URI 。一旦 Action 类完成处理, ActionServlet 根据 Action 返回的键值来决定在什么视图中显示 Action 的类处理结果。 ActionServlet 类似于一个创建 Action 对象的工厂,由 Action 对象去执行应用中实际的业务逻辑。控制器是 Struts 框架中最重要的部分。我们会在第三章和第四章对控制器进行更详细的探讨。
 
Web 应用 WebApplications
 
所有的Web应用被包含在一个目录结构中,首先你要在Web服务器下建立如下目录:
目录
内容
wileyapp
这是 Web应用的根目录,所有的JSP和HTML文件都在这个目录下。
/wileyapp/WEB-INF
这个目录包含了所有除根目录外需要的资源,
包括 WEB 应用部署信息。注意: WEB-INF 目录下的不是公共文件,无法直接服务于客户端。
/ wileyapp/WEB-INF/classes
存放了所有的 servlet 类或实用类。
/ wileyapp/WEB-INF/lib
包含所有 WEB 应用中要用到的后缀为 JAR 的包文件
图1.2
 
如果你实用的是 Tomcat 服务器,你的缺省根目录为 <CATALINA_HOME >/webapps/ ,在 <CATALINA_HOME >/webapps/ 下建立 图1.2所示目录
注意:WEB服务器允许你编译你的类并存放到 /WEB-INF/classes /WEB-INF/lib 下,但 /WEB-INF/classes 的类将被优先载入,即若你编译的类在两个目录下都存在,起作用的只有 /WEB-INF/classes 目录下的类。
 
Web 应用的部署描述
Web应用的核心是部署描述。部署描述存放在 /<SERVER_ROOT >/applicationname /WEB-INF/ 下的 web.xml 文件中,它描述了所有 Web应用要使用的组件。如果你使用图1.2的目录结构,那么你的部署描述位于 /<SERVER_ROOT >/wileyapp /WEB-INF/web.xml 文件中。
部署描述中包括如下元素:
· ServletContext init parameters
· Localized content
· Session configuration
· Servlet/JSP definitions
· Servlet/JSP mappings
· Tag library references
· MIME type mappings
· Welcome file list
· Error pages
· Security information
 
下面的代码片段是部署描述的一个例子,它定义了一个简单的 servlet
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>com.wiley.SimpleServlet</servlet-class>
</servlet>
</web-app>
 
打包 Web 应用
标准的 Web应用都被打包成后缀为war的文件,你可以使用 Java 打包命令来创建 WAR 文件: jar cvf wileyapp.war
现在你就可以用 wileyapp.war 文件 发布你WEB应用了。
 
Tomcat 容器
Tomcat 是是基于 JAVA 的开源 WEB 应用服务器,我们的例子都以 Tomcat WEB 应用服务器。在开始我们的学习前你需要下载
Tomcat4 地址: http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.6/src/jakarta-tomcat-4.0.6-src.zip
JDK1.4 地址: http://java.sun.com/webapps/download/Redirect/68949517/5847479377282807053505607246086069333228071972022813600060132859339008063305596058473206-3865/j2sdk-1_4_1_02-s1studio_ce-4u1-bin-windows.exe
操作系统为 Win2000
 
2 .在系统变量中设置 JAVA_HOME = root
3 在系统变量中 设置 CATALINA_HOME > = root
4 .在 系统变量中 设置 CLASSPATH= root/lib/dt.jar jar;root/lib/tools.jar root/jre/rt.jar;
6.   系统变量中 PATH 下添加 root\bin
注意: root 为你的安装目录
启动<CATALINA_HOME >\bin\startup.bat,在浏览器中输入 http://localhost:8080
你若是能看到缺省的 Tomcat 主页面,表明你的配置成功了。如果未成功请查看你的 JDK 是否已经安装,或者 JDK 路径是否设置正确。
下一章将大致讲述 JSP servlets ,若你对于这方面的技术已经了解,你可以跳过下一章节。


更多资料请访问http://www.universetech.net
精通struts技术第二章


<jsp:include>
用于在JSP中包含静态或动态的WEB组件。语法如下:
<jsp:include page="urlSpec" flush="true">
<jsp:param ... />
</jsp:include>
 
2.9描述了<jsp:include>的属性:

属性
说明
page
要包含的资源的地址,基于URL
flush
指明是否缓冲。

 
通过一个例子来对include进行说明:
 
列表 2.13 include.jsp.
----------------------------------------------------------------
<html>
<head>
<title>Include Example</title>
</head>
<body>
<table width="100%" cellspacing="0">
<tr>
<td align="left">
<jsp:include page="header.jsp" flush="true">
<jsp:param name="user"
value=’<%= request.getParameter("user") %>’ />
</jsp:include>
</td>
</tr>
</table>
</body>
</html>
------------------------------------------------------------
include.jsp文件包含了一个简单的JSP文件header.jsp,文件显示如下:
 
列表 2.14. header.jsp.
------------------------------------------
<%
out.println("<b>Welcome: </b>" +
request.getParameter("user"));
%>
------------------------------------
header.jsp寻找名称为user的参数并输出“welcome……”字符串。复制JSP文件到:
<CATALINA_HOME >/webapps/wileyapp/ 目录,在浏览器中输入地址.:
http://localhost:8080/wileyapp/include.jsp?user=Bob
 
<jsp:forward>
在当前的WEB应用中告诉JSP引擎重定向当前请求到另外可用的资源上,包括静态资源,servlets,JSP等。<jsp:forward>能有效的终止当前执行的JSP。
注意:<jsp:forward>能包含<jsp:param>子属性,这个子属性作为从定向的目标资源。
语法如下:
<jsp:forward page="relativeURL">
<jsp:param .../>
</jsp:forward>
 
2.10对<jsp:forward>的属性进行描述:

属性
说明
page
重定向的目标

 
列表:2.15使用<jsp:forward>的例子:检验请求参数并且重定向请求到包含对应参数的JSP页面。
列表2.15 forward.jsp.
-----------------------------------------------------------------
<html>
<head>
<title>JSP Forward Example</title>
</head>
<body>
<%
if ( (request.getParameter("role")).equals("manager") ) {
%>
<jsp:forward page="management.jsp" />
<%
}
else {
%>
<jsp:forward page="welcome.jsp">
<jsp:param name="user"
value=’<%=request.getParameter("user") %>’ />
</jsp:forward>
<%
}
%>
</body>
</html>
-------------------------------------------
forward.jsp简单的检验请求参数的角色类型,然后重定向请求到相应的页面。
目标资源文件之一:welcome.jsp.
------------------------------------------------
<html>
<!-- Set the scripting language to java -->
<%@ page language="java" %>
<HTML>
<HEAD>
<TITLE>Welcome Home</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td>
Welcome User: <%= request.getParameter("user") %>
</td>
</tr>
</table>
</body>
</HTML>
----------------------------------------------------------
目标资源文件之二:management.jsp
------------------------------------------------------
<html>
<!-- Set the scripting language to java -->
<%@ page language="java" %>
<HTML>
<HEAD>
<TITLE>Management Console</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td>
Welcome Manager: <%= request.getParameter("user") %>
</td>
</tr>
</table>
</BODY>
</HTML>
复制三个JSP文件到 <CATALINA_HOME >/webapps/ wileyapp/目录下,在浏览器中输入:
你可以通过修改输入的角色来重定向到不同的页面。
 
<jsp:plugin>
导致下载指定的applet和JavaBeans组件,并同步执行业务。
.<jsp:plugin>语法如下:
<jsp:plugin type="pluginType"
code="classFile"
codebase="relativeURLpath">
<jsp:params>
</jsp:params>
</jsp:plugin>
2.11说明了 <jsp:plugin>的属性:

属性
说明
type
说明plug-in包含的类型(比如applet)
code
plug-in执行的类名称
Codebase
 
寻找代码的绝对或相对路径
 

 
小结:
在这一章我们讲述了Struts技术的两个基础:servlet和JSP。我们试验了它们的结构和组件。了解了JSP和servlet 技术是如何在WEB应用中被装配使用的。下一章,我们将真正开始讲述Strutst技术。
 
第三章:开始学习Struts
 
在这一章,我们将开始学习Struts。在开始之前,我们必须先安装和配置Struts应用。我们将创建一个简单的应用来显示Struts是如何工作的。
这一章我们将提供一个Struts应用来让你快速入门。
 
获取和安装 Jakarta Struts项目
在开始你的Struts开发前,我们需要获取最新版本的Struts包。目前struts包为1.1
.地址如下:http://cvs.apache.org/builds/jakarta-struts/nightly/jakarta-struts-20031010.zip
一旦你获取了版本后,你在部署Struts应用前需要完成下面的预备工作。
1. 创建一个应用目录<CATALINA_HOME >/webapps/wileystruts
2. 复制struts的JAR文件到<CATALINA_HOME >/webapps/wileystruts/WEB-INF/lib目录下,jar文件列表如下:
struts.jar ¨
commons-beanutils.jar ¨
commons-collections.jar ¨
commons-dbcp.jar ¨
commons-digester.jar ¨
commons-logging.jar ¨
commons-pool.jar ¨
commons-services.jar ¨
commons-validator.jar ¨
3.在<CATALINA_HOME >/webapps/wileystruts/WEB-INF/下创建web.xml,在文件中添加如下代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
</web-app>
4.创建一个strut-config.xml文件,复制到
<CATALINA_HOME >/webapps/wileystruts/WEB-INF/ 目录下。
struts-config.xml是Struts应用的部署描述文件。它用来把MVC组件组合在一起。
它通常被放置在
<CATALINA_HOME >/webapps/ webappname /WEB-INF/目录下,我们将会频繁的使用到它。空的struts-config.xml如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config
PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-
分享到:
评论

相关推荐

    孙卫琴:精通struts helloapp源码 第一到四章

    孙卫琴老师的“精通Struts”教程深入浅出地讲解了如何使用Struts来构建高效、可维护的Web应用。在这个教程的前四章中,我们将重点探讨以下几个核心知识点: 1. **Struts框架基础**: Struts框架是基于Servlet和JSP...

    struts-2.3.24-all.zip

    1. **lib**:这个目录包含所有Struts2运行所需的JAR文件,例如核心库、插件、依赖的第三方库等。这些JAR文件是实现Struts2功能的基础,例如`struts2-core.jar`是框架的核心,`xwork-core.jar`处理Action和结果映射,...

    精通struts2

    ### 精通Struts2:关键技术点解析 #### Struts2概述与MVC架构 - **背景**:随着计算机技术的进步,特别是互联网技术的飞速发展,软件系统的复杂度日益增加,传统的软件开发方式已经难以满足现代软件工程的需求。在...

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)

    【精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)】这一资源涵盖了Java企业级开发中的关键技术和实践,是学习和深入理解Java EE应用开发的宝贵资料。本资源以Eclipse作为集成开发环境,...

    精通Struts(sun)孙卫琴

    精通Struts(sun)孙卫琴电子书,经典JAVA WEB 开发入门教材。第1部分 说明:文件比较大,共三部分,全部下载完后解压才可正常使用。谢谢大家的支持。详情: http://jje2008.5d6d.com/viewthread.php?tid=62

    Struts2完全学习手册-第19-21章 源码

    总的来说,这三章的源码学习是每个想要精通Struts2的开发者不容错过的。它们涵盖了从基础到进阶的关键知识,能够帮助你从理论到实践全面掌握Struts2框架。在阅读源码的过程中,结合手册内容,不断实践和调试,你将能...

    精通Struts(孙卫琴)

    读者将学习如何设置Struts环境,创建第一个Struts应用。 2. **MVC模式**:Struts基于Model-View-Controller设计模式,书中会深入讲解MVC模式在Struts中的实现方式,以及如何通过模型、视图和控制器分离业务逻辑和...

    孙卫琴_精通Struts:基于MVC的Java Web设计与开发(第一部分)

    孙卫琴_精通Struts:基于MVC的Java Web设计与开发(第一部分)共分三部分 part01.rar----part07.rar 本人所发布的所有资源,请访问以下地址 ... 如有问题可随时联系我! 博客...

    精通Struts基于MVC的Java Web设计与开发 孙卫琴 光盘

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    addressbook源码(孙卫琴精通struts第三章例子)

    《精通Struts:基于MVC的Java Web设计与开发》是孙卫琴撰写的一本经典教程,这本书深入浅出地讲解了如何使用Struts框架进行Web应用开发。在这个"addressbook"源码示例中,我们可以看到作者通过三个不同的版本展示了...

    精通 Struts:基于 MVC 的 JavaWeb 设计与开发(PDF)

    本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把握设计、开发和部署Struts应用的整体流程,充分体会Struts框架在开放大型、可扩展的Web应用方面发挥的优势。第4章到第7章深入探讨了Struts框架的核心...

    struts2权威指南光盘源码-第9-13章源码

    Struts2是一个强大的Java web应用框架,用于构建和...对于希望深入理解和精通Struts2框架的开发者来说,这是一个宝贵的资源。通过研究这些源码,不仅可以提升理论知识,还能增强实战技能,更好地应对实际项目的需求。

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例(pdf完整版).part2-1

    精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...

    struts从入门到精通.doc

    #### 第1章 Struts概述 - **1.1 JSP Framework - Struts介绍** - **Struts**是Apache组织开发的一个开源MVC(Model-View-Controller)架构框架,主要用于简化Java Web应用的开发。它通过将业务逻辑、展示逻辑和...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例 随书源码

    &lt;精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例&gt;源码和数据库。这是第1卷,请下载完7卷后解压。

    精通struts2 基于MVC的 java web应用开发实践第02章 第一个Struts2应用实例

    本章将带你逐步深入理解并实践如何创建第一个Struts2应用。 在Struts2中,模型(Model)负责业务逻辑的处理,视图(View)负责数据的展示,控制器(Controller)则作为两者之间的桥梁,接收用户请求,处理业务逻辑...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)

    【标题】"精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)" 提供了一个深入理解Java企业级应用开发的实例。这个案例基于经典的"SSH"框架,即Eclipse作为集成开发环境,Spring作为核心框架,...

Global site tag (gtag.js) - Google Analytics