我的Struts笔记

Struts 是一种基于MVC的经典MVC设计模式框架。

execute()方法中形参的作用和含义分别如下:

1.mapping:映射到配置文件struts-config.xml中的相关配置信息。(注:该对象调用findForward()方法查找的是配置文件中<forward>元素所包含的映射信息。)

2.form:对先前Action Servlet自动填充过的Java Bean(Form Bean)一个引用。(注:从表单获取数据之后,一般再传入到一个DTO对象中,或者直接将值传入业务逻辑方法。)

3.request:封装来自客户端的请求信息。

4.response:封装发送响应客户端时所需一些HTTP功能。

C:控制器组件(Controller)

客户端提交------------>Action Servlet ------------->Action Bean---------------->Jsp页面

Struts的一般流程。Action Servlet完全是在幕后工作,它继承了javax.servlet.http.HttpServlet类。

Action Servlet中的process()方法--------->RequestProcess中的process()方法。

自客户提交后,Struts都做了些什么?(见下)

struts-config.xml---(URI)-----><action>----(name对应的)---------><form-bean>--------->reset()--------->setXXX()--validate()---(根据<action>中的type)---->Action Bean ----(FormBean)---> execute()------->Action Forward对象

<action-mapping>元素给出了各种可能的客户端请求和处理方案间的映射关系。每个<action>元素对应的是一对特定请求URI的处理办法。

<action path="/regist" forward="/regist.jsp"/>  直接转入其他页面。

<action>元素的属性含义如下:

path:客户端请求的目标页面URI

type:用于处理请求的处理Action对象的类名,包括所在包(package)的完整路径。

name:表单信息的Action Form Bean 的名字。

scope:   request该Action Form Bean 仅在当前的请求/响应生命周期中有效。

                session 整个HTTP会话期间一直有效。

input:处理请求出错时转向的页面。

Action   用于用户请求和业务逻辑之间沟通的媒介

如果设计好Action Bean?

1.Request Processor对象对于每种Action Bean类型顺创建一个实例,该实例将被用于所有匹配的请求,这就需要定义Action Bean 类考虑如何使之能够在一个多线程环境中正常运行。

2.在Action Bean 为中尽量中使用局部变量

3.尽量在Action Bean类中加入违例(Exception)处理逻辑,在方法内部捕获和处理可能抛出的Exception。(注:在方法内部用throws 将Exception往上层抛,可自定义一个Exception接口)

4.在Controller将请求重定向至其他页面之前,释放Action Bean组件所占用的资料。包括:数据联接,异常或错误。

5.避免出现非常大的Action Bean类。

模型组件(Java Bean) Model

Bean 首先是一个Java对象,被用于封装信息或业务逻辑。

page范围

      单独的Jsp页面可见,生存期限仅在当前请求,相当于Servlet的service()方法中的局部变量。

session范围

     相当于Servlet的Session对象的一个属性。

request 范围

      相当于Servlet 的Request对象的一个属性。

application 范围

     相当于Servlet Context对象的一个属性。

系统状态Bean侧重于信息的记录和维护,包括存取简单操作,而不是具体的处理逻辑。

业务逻辑Bean主要用于封装具体的商业逻辑,即处理信息的规则,一般通过定义相应的方法实现。

视图组件(View)

视图组件主要负责为浏览器客户端提供动态页面的显示。是模型的外在表现形式。

视图组件提交请求的方式

1.HTML表单    ( 例:<form action="XXX.do" >)

2.HTML超链接  (例:<a href="XXX.do?user=xxx&pwd=xxx>)

      Struts其实并难懂,它就像是月老的手。为什么这么说呢?因为当女方有要求的时候,月老就会去找相对合适女方的男方。经过一个有规则的匹配之后,将两条线连接在一起。两个人结合之后,经过一个动作(呵呵·#¥·)就产生了一个结果。

      在Struts当中,女方就相当于客户端的请求提交,月老就相当于由web.xml,struts-config.xml和Action servlet组成的控制器,男方相就当于Action Bean 或对应的业务逻辑,而男女结合之后产生的结果,就相当于Struts当中处理完成之后,返回给客户端的一个Jsp动态页面。

     怎么样!? 简单吧!其实一切源于生活,生活创造一切,没有你做不到的,只有你想不到的!

     开源:开启思想的源泉

阅读更多
个人分类: 技术文章
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭