版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、J2EE框架和程序设计、第2届Struts2、Struts 1的概要和问题、Struts 1是世界上第一个MVC框架: Struts 1.0于2001年6月发表,(1)模型部分、Struts 1的模型部分实际成熟这可以是一个或多个EJB组件或web服务。 也就是说,Model部分封装了整个应用程序的所有业务逻辑,但并非整个部分都由Struts 1提供,Struts 1也提供了实现Model组件的支持(2) v Struts 1提供了丰富的标记库,以最大限度地减少脚本的使用。 这些自定义标记库可以输出控制器的处理结果。 Struts 1提供与Ties框架的集成,而Struts 1既不支持Free
2、Marker、Velocity等模板技术,也不支持JasperReports等报告技术。 (3)控制器部分、Struts 1的控制器由两部分组成。 系统核心控制器:由Struts 1框架提供,是系统中的ActionServlet。 业务逻辑控制器:由Struts 1框架提供,是用户自己实现的Action实例。 (1)所支持的表现层技术与单个(2) servlet API有很大组合,并且Struts1框架是基于Model 2发展的,因此完全是基于servlet API,Struts1业务逻辑控制器publicclassloginactionextendsactionpublicactionfor
3、wardexecute (操作映射、操作形式、httpservlecute ) httpservlecute throwsauctionexception/封装用户请求残奥元的ActionForm对象/用于登录其强制类型的actionformloginformloginform=。 /如果用户名是scott,密码是tiger,则成功if (Scott.equals (loginform.getusername () )、Struts1的缺陷;(3)代码很大程度上依赖于Struts1的Struts1的Action类是: 必须继承Struts 1的Action基类,并且在实现方法时包括许多Stru
4、ts 1 API,如Action映射、ActionForm和ActionForward类。 这个入侵型设定订正的最大弱点是,如果需要重建系统,这些Action类就完全没有利用价值,成为废品堆积如山。 WebWork的概要,WebWork来自另一个优秀的开源组织opensymphony,这个优秀的开源组织也开发了很多Qutarz、OSWorkFlow等优秀的开源项目。 实际上,WebWork的创始人是另一个Java领域的名人Rickard Oberg (他是JBoss和XDoclet的作者,是WebWork的概要,从处理过程的角度来看,WebWork与Struts 1非常相似,揭示了它们的核心S
5、truts 1的Action和Servlet API紧密结合在一起,而WebWork的Action则完全与Servlet API分离,因此更容易测试。 WebWork上的Action可以与servlet API分离开来,它使用监管器链来将用户请求的数据转发到Action中,然后将Action的处理结果转换为对用户的响应。、WebWork工作流、WebWork优势;1 )操作不需要与Servlet API结合,(2)操作不需要与WebWork结合,代码重用率高,公共类查找/此操作包隐私字符串用户名; /password与请求残奥仪表相对应的getter方法公共字符串获得密码()返回密码; /pa
6、ssword与请求残奥仪表对应的setter方法publicvoidsetpassword (字符串密码) this.password=password;/与/username请求残奥仪表相对应的getter方法公共字符串getusername ()返回用户名称; /username与请求残奥仪表相对应的setter方法publicvoidsetusername (字符串用户名称) this.username=用户名称; /处理用户请求的execute方法public string execute () throwsexceptionif (yee ku.equals ignore case
7、(getusername () ) ) ),以及strrame控制器代理在处理用户请求时回调业务控制器的execute方法,Struts 2框架的处理流程如下所示,浏览器可以提供/mypage.action、/reports/myreport.pdf等请求核心控制器FilterDispatcher决定在需要时调用相应的操作。 WebWork中介链自动将一般功能(如工作流、验证和文件上传)应用于请求。 回调Action的execute方法。 此execute方法获取用户请求残奥元,然后执行数据库操作:将数据保存到数据库,或从数据库检索信息。 事实上,因为Action只是一个控制器,所以它调用业务
8、逻辑组件来处理用户的请求。 Action的execute方法处理结果信息输出到浏览器,如HTML页面、图像、PDF文档和其他文档。 此时支持的视图技术非常多,同时支持JSP和Velocity、FreeMarker等模板技术。 Struts 2的控制器组件和Struts 2的控制器由过滤器分配器和业务控制器操作两部分组成。 实际上,在Struts 2应用中运行的业务控制器是系统生成的Action代理,而不是用户定义的Action,它的目标是用户定义的Action。 封装公共类loginaction/用户请求残奥元的用户名属性私有字符串用户名称; /封装用户请求残奥仪表的password属性私有字
9、符串密码; /username属性的getter方法公共字符串getusername ()返回用户名; /username属性的setter方法publicvoidsetusername (字符串用户名) this.username=username; /password属性的getter方法公共字符串获得密码()返回密码; /password属性的setter方法publicvoidsetpassword (字符串密码) this.password=密码; /处理用户请求的execute方法如果public string execute () throws exception/用户名为sco
10、tt,密码为tiger,则登录为成功if(getusername () . et用户名web.XML :配置Struts2的基本控制器struts.xml:配置用户定义的控制器struts-default.xml:struts2的基本配置,struts.xml元素的含义,Bean: 注意:命名空间名称以“/”开头,如果包中包含操作,则将包名称附加到其访问路径。、Struts2注释、名称空间(值=/chapter7)父包(值Struts2默认值)结果(结果)值=/error.JSP )、操作Action接口:封装标准Action返回,规范execute返回packageinterfaceacti
11、onpublicstaticfinal publicstaticfinalstringnone=“无”; publicstaticfinalstringerror=“错误”; publicstaticfinalstringinput=“输入”; publicstaticfianlstringlogin=“登录”; 公共字符串执行() throws执行;ActionSupport类、ActionSupport :可以实现很多接口,实现错误检查等功能,可以直接使用,简化开发。 在P204,Struts2中调用servlet API,Struts2的Action类虽然离开了对servlet API的
12、依存,但是在进行业务处理时,大多数情况下使用servlet API,Struts2提供了访问servlet API的方法。 actioncontextcontext=action context.get context (); /context返回与HttpServletRequest对象相对应的context.getSession()/返回映射,与session相对应的context.getApplication() /。 线程安全,一般而言,ActionContext是actioncontextcontext=(action context ) action context.get ();
13、 可以得到。 现在我们来看一下actionContext对象的创建: staticthreadlocalactioncontext=newactioncontextthreadlocal (); ActionContextThreadLocal是实现ThreadLocal的内部类。 您可以将ThreadLocal命名为“线程局部变量”。 它为使用该变量的每个线程提供变量值的副本,并允许每个线程修改自己的副本,而不会与其他线程的副本冲突。 这将确保ActionContext属性仅显示在相应的当前请求线程中,并且线程是安全的。 publicclassthreadlocalprivatemapval
14、ues=collections.synchronized地图(new hashmap () ); publicobjectget () thread curthread=thread.current thread (); objecto=values.get (目前); if (o=空| |! values.contains密钥(curthread ) o=初始值(); values.put (货币,o ); returno; 公共语音集(对象新值)值. put (读取.目前读取()、新值)。 publicobjectinitialvalue ()返回空值; 获取请求和响应、finalstringservlet _ context=org.Ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车车身铝薄板项目关键设备采购合同风险:识别、评估与应对策略
- 汽车排气系统热端用铁素体不锈钢:合金化策略与性能优化探究
- 人教部编版二年级道德与法治期中综合素养测试卷
- 商品房买卖合同变更协议
- 代可可脂巧克力研发工程师考试试卷及答案
- 超精密车削加工技师考试试卷及答案
- 食材采购质量保证管理控制措施
- 高空作业施工方案
- 2026年精神药品管理办法考试真题及答案
- 2025年民法典物权编考试真题及答案
- 铅锌价格历年分析报告
- 《中药量效关系》课件
- 直流电阻试验
- 肺康复护理课件
- 传染病的传播途径和预防控制
- Java程序设计项目式教程 课件 7-1 使用List集合存储学生信息
- 《电路与电子技术》课件 5 基本放大电路
- LNG船用燃料罐的CCS工厂认可与产品检验教学教材
- VDA6.5产品审核报告
- 刘园子副井井筒施工组织设计4.24(定稿)(2)剖析
- 中医医疗技术相关性感染预防与控制培训
评论
0/150
提交评论