Struts 学习之01(启航)
2006-12-22 01:15
411 查看
前段时间个人开始学习struts,从今天起把一些个人的学习经历记录下来
Struts 是一种基于SUN的J2EE技术的一种框架,主要技术还是servlet和JSP技术来
实现的。通过模型+视图+控制(MVC)设计模式来设计出一种框架结构来统一目前个
人自行使用的框架结构,使程序员,特别是新手可以很好的运用MVC来开发系统。
struts更多的应用于视图,而把控制层交给Spring,而模型层用Hibernate做持久层。
与后台的数据库相分离。
框架有点像我们现实生活中的钢架构,比如说现在的厂房构建的时候都是用钢架构
去构建,先用钢铁架设出一个厂房的整体结构,然后我们再加上如玻璃钢这些东西
很快就能构建出一个厂房,而如果说按照原有的设计方式,就是建筑上来说,我们
要用一砖一瓦,水泥呀石灰呀 一点点做上去的话,很慢的,所以说架构的出现以及
框架的出现,无非就是方便我们开发,给我们主体部分相对来说已经固定死的早期
程序员给我们提供的一种优秀的程序来组成,然后剩余的部分由我们自己来设计,而
struts就是其中的一种
其官方站点:http://struts.apache.org/ 目前最新版本:struts2.0
首先看看MVC,下图
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
上面说明servlet的访问路径为 ***.do,只要是.do的程序它就导向action对象,而通过servlet对象可知这个action对象,它产生一个org.apache.struts.action.ActionServlet这样一个类对象,而这个对象产生后它所读取的配置文件是通过参数config指定也即为/WEB-INF/struts-config.xml,那么它就根据该文件中的描述来运行,现在我们再看看struts-config.xml文件!
<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings />
<message-resources parameter="fengyan.struts.ApplicationResources" />
</struts-config>
<data-sources/>配置数据源,<form-beans/>表明表单bean的产生,<global-exception/>用于全局异常的处理
<g;obal-forwards/>主要是全局跳转,<action-mapping/>是action映射的,它和formbean是最重要的,最后一个一般是国际化处理·它读取的就是一个属性文件~
好了,在明白这上面这些后,开始创建strurts了,为了方便,我使用可视化的开发,
step4: 打开struts-config.xml 切换到view; 右键-->New-->Form,Action and JSP.这样做的目的是同时生成
Form,action 以及JSP~在Use case 中输入User 在From properties Add 添加二个属性 userPwd
和 userName;切换到JSP 勾选create jsp form 在地址栏中 去掉/form就可以让它生成在我们的根
目录下了!确定后,看下struts-config.xml中给我们产生了哪些东东
<struts-config>
<data-sources />
<form-beans >
<form-bean name="userForm" type="fengyan.struts.form.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="userForm"
input="/user.jsp"
name="userForm"
path="/user"
scope="request"
type="fengyan.struts.action.UserAction" />
</action-mappings>
<message-resources parameter="fengyan.struts.ApplicationResources" />
</struts-config>
说明:产生了一个userForm对象,它的类类型为fengyan.struts.form.UserForm,这个对象在action-mappings中会被调用,一般有请求路径为 /user的时候,将/user.jsp表单中的数据读取出来,读出来后写入到userForm属性中,而这个userForm就是刚刚定义的一个form-bean 那么userForm在接收到这些数据的时候就可以填充自己的属性了,这时我们来看看UserForm.java
package fengyan.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
<action-mappings >
<action
attribute="userForm"
input="/user.jsp"
name="userForm"
path="/user"
type="fengyan.struts.action.UserAction">
<forward
name="show"
path="/show.jsp"
redirect="true" />
</action>
</action-mappings>
step7: 现在回头写UserAction.java中的execute方法如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'show.jsp' starting page</title>
</head>
<body>
<jsp:useBean id="userForm" class="fengyan.struts.form.UserForm" scope="session"/>
your userName is:<B><jsp:getProperty name="userForm" property="userName"/></B><BR>
here is tour password:<B><jsp:getProperty name="userForm" property="userPwd"/></B>
</body>
</html>
总算写完了,最后看下运行效果。
总结:整个模型运行流程为; 客户端的HTTP请求--> .do(控制器ActionServlet)-->struts-config.xml
然后将input中的数据填充给actionform,然后提交给action处理,根据需要action会和后台的
actionBean交互,(本例中是UserAction.java)最后action提交给jsp视图进行输出!
示例下载
Struts 是一种基于SUN的J2EE技术的一种框架,主要技术还是servlet和JSP技术来
实现的。通过模型+视图+控制(MVC)设计模式来设计出一种框架结构来统一目前个
人自行使用的框架结构,使程序员,特别是新手可以很好的运用MVC来开发系统。
struts更多的应用于视图,而把控制层交给Spring,而模型层用Hibernate做持久层。
与后台的数据库相分离。
框架有点像我们现实生活中的钢架构,比如说现在的厂房构建的时候都是用钢架构
去构建,先用钢铁架设出一个厂房的整体结构,然后我们再加上如玻璃钢这些东西
很快就能构建出一个厂房,而如果说按照原有的设计方式,就是建筑上来说,我们
要用一砖一瓦,水泥呀石灰呀 一点点做上去的话,很慢的,所以说架构的出现以及
框架的出现,无非就是方便我们开发,给我们主体部分相对来说已经固定死的早期
程序员给我们提供的一种优秀的程序来组成,然后剩余的部分由我们自己来设计,而
struts就是其中的一种
其官方站点:http://struts.apache.org/ 目前最新版本:struts2.0
首先看看MVC,下图
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
上面说明servlet的访问路径为 ***.do,只要是.do的程序它就导向action对象,而通过servlet对象可知这个action对象,它产生一个org.apache.struts.action.ActionServlet这样一个类对象,而这个对象产生后它所读取的配置文件是通过参数config指定也即为/WEB-INF/struts-config.xml,那么它就根据该文件中的描述来运行,现在我们再看看struts-config.xml文件!
<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings />
<message-resources parameter="fengyan.struts.ApplicationResources" />
</struts-config>
<data-sources/>配置数据源,<form-beans/>表明表单bean的产生,<global-exception/>用于全局异常的处理
<g;obal-forwards/>主要是全局跳转,<action-mapping/>是action映射的,它和formbean是最重要的,最后一个一般是国际化处理·它读取的就是一个属性文件~
好了,在明白这上面这些后,开始创建strurts了,为了方便,我使用可视化的开发,
step4: 打开struts-config.xml 切换到view; 右键-->New-->Form,Action and JSP.这样做的目的是同时生成
Form,action 以及JSP~在Use case 中输入User 在From properties Add 添加二个属性 userPwd
和 userName;切换到JSP 勾选create jsp form 在地址栏中 去掉/form就可以让它生成在我们的根
目录下了!确定后,看下struts-config.xml中给我们产生了哪些东东
<struts-config>
<data-sources />
<form-beans >
<form-bean name="userForm" type="fengyan.struts.form.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="userForm"
input="/user.jsp"
name="userForm"
path="/user"
scope="request"
type="fengyan.struts.action.UserAction" />
</action-mappings>
<message-resources parameter="fengyan.struts.ApplicationResources" />
</struts-config>
说明:产生了一个userForm对象,它的类类型为fengyan.struts.form.UserForm,这个对象在action-mappings中会被调用,一般有请求路径为 /user的时候,将/user.jsp表单中的数据读取出来,读出来后写入到userForm属性中,而这个userForm就是刚刚定义的一个form-bean 那么userForm在接收到这些数据的时候就可以填充自己的属性了,这时我们来看看UserForm.java
package fengyan.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
<action-mappings >
<action
attribute="userForm"
input="/user.jsp"
name="userForm"
path="/user"
type="fengyan.struts.action.UserAction">
<forward
name="show"
path="/show.jsp"
redirect="true" />
</action>
</action-mappings>
step7: 现在回头写UserAction.java中的execute方法如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'show.jsp' starting page</title>
</head>
<body>
<jsp:useBean id="userForm" class="fengyan.struts.form.UserForm" scope="session"/>
your userName is:<B><jsp:getProperty name="userForm" property="userName"/></B><BR>
here is tour password:<B><jsp:getProperty name="userForm" property="userPwd"/></B>
</body>
</html>
总算写完了,最后看下运行效果。
总结:整个模型运行流程为; 客户端的HTTP请求--> .do(控制器ActionServlet)-->struts-config.xml
然后将input中的数据填充给actionform,然后提交给action处理,根据需要action会和后台的
actionBean交互,(本例中是UserAction.java)最后action提交给jsp视图进行输出!
示例下载
相关文章推荐
- 01.struts简介及学习方法
- Struts 2 学习笔记01
- Struts快速学习指南01(内部培训教材)-大部分素材来自于《Programming Jakarta Struts》一书
- struts in action 学习之01表单提交处理流程
- 软件测试(第2版)_Paul学习03_01——Ch2举例_03
- Struts-config.xml学习笔记
- 【锋利的jQuery】学习笔记01
- 老友记台词学习笔记 SE01EP01(五)
- 学习java01
- Seasar的S2Struts例子学习
- 软件测试(第2版)_Paul学习04_01——Ch3测试人员的离散数学
- 学习struts的一个初等的小例子
- 在学习struts时出现的空指针异常
- 一起学习CMake – 01
- Spring学习01--IOC容器(简介,注入)
- Java设计模式学习01——单例模式
- struts学习笔记之Struts标签的配置使用
- C语言笔记学习01
- struts系列学习(tiles标签库三)
- struts系列学习(tiles标签库一)