STRUTS1.3(2)

2019-05-27 00:13

Form 模型struts

请求页面 Action ActionServlet处理 Servlet业务代码 成功 失败 无论是否成功都要给人家返回一个结果这是为了给客户一个良好的体数据库 返回的页面jsp,html之类的

Action

1.Action什么时候初始化?发出该Action请求时,不是在读取配置初始化时 2.每个Action只会初始化一次

3.Action是线程不安全的,因为所有的请求会共享一个Action实例 4.怎样实现Action的安全性编程

A.注意不要用实例变量或者类变量共享只是针对某个请求的数据 B.注意资源操作的同步性

应用:统计一个Action的访问数据,只要定义一个类变量,再++即可

Action中的Mapping

来自配置文件中的Action元素,代表着控制器的请求信息

String name=mapping.getName();//获取配置文件中元素中的

的一个属性,即name

String path=mapping.getPath();//获取配置文件中元素中的

的一个属性,即path

String type=mapping.getType();//获取配置文件中元素中的

的一个属性,即type,可用于反射

String type=mapping.findForwards();//获取配置文件中元素中的

属性,获取全部forward的name

ActionForward froward=mapping.findForward(“指定名字(即forward标签里配置的name)”);

ActionForward

ActionForward有个Redirect属性,可以设置false或者true

False,no--------RequestDispatcher forward 只能跳转到当前应用的页面,不设置也可以

True,yes--------HttpServletResponse sendRedirect 可以跳转到应用外的页面,必须设置

ActionForm

工作原理

处理ActionForm的一般步骤:

A.检查Action的映射,确定Action中已经配置了对ActionForm的映射 B.根据name属性,查找form bean的配置信息

C.检查Action的form bean的使用范围,确定在此范围下(request,session),是否有此form bean实例

D.假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,请慎用

E.否则,就重新构建一个form bean的实例(调用构造方法),并且保存在一定作用范围 F.Form bean的reset()方法被调用 G.调用对应的setter方法,对状态属性赋值

H.如果validate的属性设置为true那么就调用form bean的validate()方法 I.如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行

J.注意:直接从ActionFrom类继承的reset()和validate()方法,并不能实现什么处理功能,所以有必要自己重新覆盖由页面向 Action发出请求

查找Action,看Action是否有name属性 查找,根据name和scope Scope getAttribute(name)

Scope 是struts-config.xml 是否找到 中的Action标签的一个属性 ,表示作用范围(个人理解是 否就是Action实例化存在

的域),默认值为 没找到就实例化一个 Scope setAttribute(name,form) session,

是否需要校验 validate

和查找Action类似,看一下有没有可用的form bean有就直接调用该form bean的reset方法,没有就创建一个,并保存在一定作用范围 找到Action的实例就跳过实例化一个Action的步骤 取值,从客户端参数,request.getParameter()获取用户提交的数据和赋值


STRUTS1.3(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:FAQ(JAVA基础二)整理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: