主流开源框架第一部分Struts.ppt

上传人:牧羊曲112 文档编号:6238730 上传时间:2023-10-08 格式:PPT 页数:57 大小:332.50KB
返回 下载 相关 举报
主流开源框架第一部分Struts.ppt_第1页
第1页 / 共57页
主流开源框架第一部分Struts.ppt_第2页
第2页 / 共57页
主流开源框架第一部分Struts.ppt_第3页
第3页 / 共57页
主流开源框架第一部分Struts.ppt_第4页
第4页 / 共57页
主流开源框架第一部分Struts.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《主流开源框架第一部分Struts.ppt》由会员分享,可在线阅读,更多相关《主流开源框架第一部分Struts.ppt(57页珍藏版)》请在三一办公上搜索。

1、主流开源框架,第一部分:Struts2框架(二),Struts2快速入门Struts2控制器自定义拦截器Action相关知识,章节目录,章节目录,Struts2工作原理Struts2的优点第一个Struts2应用,Struts2与Struts1的区别,Struts2与Struts1本质上没有太大联系Struts1最初是Apache Jakarta项目的一部分,后来作为一个开源的MVC框架存在Struts2是从WebWork框架上发展起来的,与Struts1没有直接关系,Struts2工作原理,开发Struts2应用的主要工作,Model层没有特殊要求在web.xml中配置FilterDispa

2、tcher开发并配置Action类自定义或配置拦截器开发视图,开发Struts2简单Demo的步骤,下载并导入Struts2框架jar包开发Model层业务逻辑开发视图文件开发Action类在struts.xml中配置Action类在JSP中调用Action在web.xml中配置FilterDispatcher,开发Action类,Action类不需要继承或实现任何父类或接口,只要遵守某些命名规范即可如果该Action类是通过表单提交调用,且Action类中需要使用表单提交的请求参数,则必须在Action类中声明与表单域的名字对应的变量,并提供getters/setters方法Action类中

3、必须有一个public String execute()方法,该方法将被自动调用,实现控制逻辑,配置Action类,Action类必须在struts.xml中进行配置才能使用,在JSP中调用Action,JSP中调用Action,通过Action的name属性值即可,在web.xml中配置FilterDispatcher,FilterDispatcher 是Struts2框架API中提供的类,必须在web.xml中将其配置给任意URL,方能生效,Struts2简单Demo的运行过程,用户提交请求请求将被FilterDispatcher过滤FilterDispatcher调用ActionMapp

4、erFilterDispatcher将请求处理交给ActionProxyActionProxy通过Configuration Manager查找struts.xmlActionProxy实例化ActionInvocationActionInvocation实例调用与Action有关的拦截器以及Action类的execute方法根据struts.xml中配置的action的result,将面导航到指定的URL,Struts2的优点,Action中的execute方法没有参数,可以脱离容器环境进行单元测试通过拦截器更为便捷地获得请求参数页面导航不需要硬编码到源代码中支持多种视图技术强大的JSP标记

5、库,教程案例准备,业务逻辑与JavaEE核心编程中的案例相同用不同的技术实现相同逻辑,能够更好地理解不同技术的区别,章节目录,过滤器拦截器Action,过滤器,过滤器是Struts2控制器的最前端控制器,请求对象首先被过滤器过滤Struts2的过滤器有三个层次,拦截器,拦截器(Interceptor)是Struts2中第二个层次的控制器拦截器在Action执行的前后运行一些Action类需要的通用功能拦截器使用AOP(面向方面编程)思想设计API中提供了大量拦截器类,定义拦截器,使用拦截器前,必须先在struts.xml中定义拦截器拦截器在下使用定义,定义拦截器栈,如果某些拦截器总是一起使用,

6、可以定义为拦截器栈拦截器栈是某些拦截器的集合,Action中使用拦截器或拦截器栈,定义了拦截器或拦截器栈后,可以在Action中使用通过指定要使用的拦截器或拦截器栈,定义默认拦截器或拦截器栈,对于一个package,可以定义该package中所有Action默认使用的拦截器以及拦截器栈,struts-default.xml中定义的拦截器,API中的拦截器都已经在struts-default.xml的struts-default包中定义,struts.xml中Action的拦截器,struts.xml中的Action都继承了struts-default.xml中的struts-default包,

7、因此都默认使用struts-default包的默认拦截器栈大多数情况下,需要保证任何Action都被struts-default包的默认拦截器引用拦截,Action,Action是Struts2的第三个层次的控制器,需要程序员自行开发Action是Struts2应用中使用数量最多的控制器Action实现的功能与Servlet非常类似,然而,Action不是Servlet,仅仅是一个普通的Java类,章节目录,编写拦截器配置拦截器,编写拦截器类,自定义拦截器类需要实现Interceptor接口主要覆盖接口中的intercept(ActionInvocation arg0)方法intercept方

8、法的参数ActionInvocation非常重要,其中的invoke可以调用下一个拦截器或者Action,配置使用拦截器,使用前必须先定义拦截器,定义拦截器后在Action中引用该拦截器,章节目录,Action接口Action类的方法Action的调用,Action接口,Struts2中的Action不需要实现任何接口Struts2的API中提供了接口,接口中提供了常量以及execute方法Action类可以实现Action接口,Action类中的方法,默认情况下,Action类的方法必须符合如下声明形式,Action类的方法名字可以不是execute,但是必须在struts.xml中进行指定

9、,“合并”多个Action类,可以在一个Action中声明多个方法,如login、register等,必须在struts.xml中进行配置,Action类中定义了execute方法,如果Action中定义了符合规范的execute方法,那么就默认调用execute方法,Action类中的方法名不是execute,如果Action中的方法名不是execute,而是自定义方法,有两种方法可以调用Action类在struts.xml中通过method属性,指定方法名使用提交按钮的method属性,指定Action的方法名,章节目录,ActionContextServletActionContext,

10、ActionContext概述,ActionContext类表示一个Action运行时的上下文Struts2应用中,如果需要通过请求、会话、上下文存取属性,可以使用ActionContext完成,而不必调用Servlet API获得ActionContext对象的方法,使用ActionContext存取请求属性,ActionContext中提供了两个方法,可以向请求范围存取属性public void put(Object key,Object value)public Object get(Objectkey),使用ActionContext存取会话属性,ActionContext中提供了如下

11、方法,获得与会话有关的Mappublic Map getSession(),使用ActionContext存取上下文属性,ActionContext中提供了如下方法,获得与上下文有关的Mappublic Map getApplication(),使用ServletActionContext,使用ServletActionContext可以获得真正的请求、会话、上下文对象public static PageContext getPageContext():获得PageContext对象public static HttpServletRequest getRequest():获得HttpServ

12、letRequest对象public static HttpServletResponse getResponse():获得HttpServletResponse对象public static ServletContext getServletContext():获得ServletContext对象,ActionContext使用实例,通过向“教程案例”增加查看所有用户信息的功能,使用ActionContext调用ActionContext对象的put方法,往请求范围添加属性,章节目录,Field-driven方式Model-driven方式,Field-Driven方式,Action通过属性

13、的方式封装请求参数,被称为Field-Driven方式,即域驱动API中提供了一个拦截器,实现该驱动方式,Model-Driven方式,Action通过模型对象的方式封装请求参数,被称为Model-Driven方式,即模型驱动API中提供了一个拦截器,com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor,实现该驱动方式,章节目录,封装请求参数传递对象封装Action配置参数,Action类是多实例的,Servlet是单实例多线程的对象Action是多实例对象每次访问,都会实例化一个新的Action对象,使用Action类的属性封装请求参数,Action类的属性可以封装请求参数,有两种方式域驱动模型驱动,使用Action类的属性传递对象,Action类的属性可以用来传递对象把对象作为Action类的属性为该对象提供setXXX方法,使用Action类的属性封装配置参数,在struts.xml中可以使用元素为Action配置参数,在Action中,为该参数提供getXXX、setXXX方法,JSP中如何获得Action类的属性,使用Struts2的HTML标签显示Action的属性在JSP页面中特定位置,显示属性值通过脚本、EL或者OGNL从请求范围获取,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号