struts2总结_zero.docx
文本预览下载声明
struts2struts2概述Struts2是一个mvc模式的实现,模块化程序设计,使项目更加便于管理和分工,简化了客户请求(参数类型的装换和自动封装(通过反射技术),文件的上传,数据的验证,信息的国际化显示)和响应操作,struts2通过dojo封装了(异步访问服务器数据的方法)ajax,通过封装ognl提供ValueStack(值栈)丰富了view层访问数据的方式struts2 执行的流程:struts的配置文件解析:web.xml核心控制器,对框架进行初始化,以及处理所有的请求filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter(Struts 2.0版本的核心控制器为org.apache.struts2.dispatcher.FilterDispatcher)/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping 2.action:实现Action接口,继承ActionSupport类,普通的Java类 strutspackage name=default namespace=/ extends=struts-default action name=login class=com.book.bean.LoginAction result name=success/page/manage.jsp/result /action /package/struts 3.constant元素 配置常量,可以改变Struts 2框架的一些行为 constant name=struts.i18n.encoding value=UTF-8/ constant name=struts.ui.theme value=simple/ 4.pagckage:包的作用:简化维护工作,提高重用性包可以“继承”已定义的包,并可以添加自己包的配置name属性为必需的且唯一,用于指定包的名称extends属性指定要扩展的包namespace属性定义该包中action的命名空间 ,为可选属性 5.全局元素:global-resultsresult name=error/page/error.jsp/resultresult name=login type=redirect/page/login.jsp/result/global-resultsstruts的核心对象和拦截器(早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足、可扩展性降低,Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦): (struts结构剖析图)核心对象:ActionMapper (根据请求的URI查找是否存在对应Action调用)ActionMapping(保存调用Action的映射信息,如namespace、name等)ActionProxy(代理创建对象xwork )ActionInvocation(表示Action的执行状态,保存拦截器、Action实例) Interceptor(可以在请求处理之前或者之后执行的Struts 2组件)系统拦截器Params拦截器 负责将请求参数设置为Action属性servletConfig拦截器 将源于Servlet API的各种对象注入到Action耦合的方式:ServletActionContext.getRequest()解耦的方式:ActionContext.getContext()实现接口:servletRequestAware fileUpload拦截器对文件上传提供支持exception拦截器捕获异常,并且将异常映射到用户自定义的错误页面validation拦截器 调用验证框架进行数据验证 自定义拦截器必须实现Interceptor接口 或继承 AbstractInterceptor实现Interceptor必须重写 init() destroy() 和String intercept(ActionInvocation ai) 方法继承AbstractInterceptor只需要intercept(ActionInvocation ai)方法就可以拦截器栈:多个拦截器组合成一个拦截器栈系统默认的拦截器栈是:defaultStack配
显示全部