第12讲Struts2框架1.ppt

上传人:inwarn120 文档编号:374560 上传时间:2018-10-06 格式:PPT 页数:40 大小:1.82MB
下载 相关 举报
第12讲Struts2框架1.ppt_第1页
第1页 / 共40页
第12讲Struts2框架1.ppt_第2页
第2页 / 共40页
第12讲Struts2框架1.ppt_第3页
第3页 / 共40页
第12讲Struts2框架1.ppt_第4页
第4页 / 共40页
第12讲Struts2框架1.ppt_第5页
第5页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第12讲 Struts2框架1,Struts2 框架的意义,更便捷的开发 1.自动封装表单提交数据:属性驱动 (表单中提交的数据不需要通过request.getParamter()方法,自动放在属性当中直接使用)模型驱动(提交的表单数据自动封装在对应的实体类对象当中) 2.便捷的实现上传文件:FileUpload 3.国际化i18n 4.通过配置完成表单验证:校验器 5.强大的标签库:Struts2 标签库 OGNL 标签库 更科学的管理 1.使用xml文件管理程序文件对应关系(多个文件相互引用的方式) 更安全的操作 1.安全的线程几只:每个action 都是独立的 (servlet 是单例模

2、式) 2.防止数据重复提交:token令盘机制 3.异常处理机制:通过配置完成,便于管理 先进的编程思路 1.面向切面编程AOP:拦截器,Struts2项目运行流程,Struts2项目的基本组成,控制组件:核心控制器和业务控制器(Action类) 模型组件:JavaBean、EJB等,Hibernate,Spring. 视图组件:JSP、HTML、VS、OGNL、tag等,freeMarker、Velocity. 配置文件:web.xml、struts.xml等,使用Eclipse开发Struts2项目,步骤 创建DWP项目:Struts2Demo 为项目添加Struts2类包支持 设置核心控

3、制器(配置web.xml) 创建业务逻辑控制器(Action) 创建视图页面 创建struts.xml配置Action 部署和运行struts2项目,案例 在登录页面login.jsp中输入用户名(admin)和密码(pwd)后,单击登录按钮后跳转到hello.jsp页面 如果用户没有输入用户名或密码或者输入的是空字符串时单击登录按钮,页面跳转到input.jsp页面等待用户输入,Struts2开发环境搭建,安装JDK1.8 安装Web服务器(如Tomcat9等) Eclipse中配置Web服务器 下载struts-2.5.14.1-all压缩文件,解压后将lib目录下的jar包(91)加入到

4、工程的构建路径中或者struts-2.5.14.1-allstruts-2.5.14.1appsstruts2-showcaseWEB-INFlib的jar包(65)拷贝到项目的WEB-INFlib, 在web.xml中配置核心控制器, 创建动作类(LoginAction类), 创建login.jsp和hello.jsp, 创建struts.xml,struts2的控制组件,struts2的控制组件类型 核心控制器FilterDispatcher 业务控制器Action,由web.xml的filter和filter-mapping标识来设置,创建动作类语法,扩展ActionSupport类 动

5、作类被访问后默认执行execute()方法public String execute()throws Exception 在动作类设置成员变量及对应传入参数的属性的setter和getter方法 动作类通过属性的setter方法获取客户端传来的数据,并保存在动作类变量中,客户端则通过属性的getter方法获取动作类的变量值,Action可以不用扩展ActionSupport类,但使用它可以使我们创建的Action更简单、更规范,创建动作类语法(续),动作类处理客户端请求后会返回一个字符串,每个字符串对应一个逻辑视图 当动作类继承ActionSupport,使用常量作为动作执行后的返回值 INP

6、UT 、SUCCESS、LOGIN、NONE和ERROR,在struts.xml中定义动作包和动作,在url中跟在虚拟目录后面,与动作类的返回值一致,创建扩展com.opensymphony.xwork2.ActionSupport的动作类,保存目录为action 创建结果显示JSP文件,保存目录为WebContent 创建struts.xml,在其中定义动作包、动作等内容,保存目录为src,在Struts2项目中应用控制组件,示例:动作包的动作对应一个或多个结果,创建扩展ActionSupport的动作类:UserAdminAction,创建4个结果显示JSP页面,创建struts.xml,

7、执行动作中不同的方法,方法一通过在struts.xml中的每个动作中指定执行的业务逻辑方法来处理不同情况下的请求,方法二使用通配符。通过在struts.xml中使用通配符可以在不同请求情况下执行不同动作方法,Struts2拦截器,Struts2拦截器 拦截器的配置 自定义拦截器 拦截指定方法,Struts2拦截器,拦截器(Interceptor)是Struts2框架的基石,框架许多功能的完成都是构建在拦截器的基础上的,比如类型转换、数据校验等(拦截器思想来自webWork)拦截器的作用是动态拦截Action调用的对象。它提供一种机制,使开发者可在action执行之前和(或)之后插入需要的代码,

8、也可在action执行前阻止其执行,同时它也提供一种可提取Action中可重用代码的方式,拦截器其实就是一个实现了Interceptor接口的JAVA类 void init()在拦截器实例创建之后,拦截器使用之前初始化所需资源 void destory()使用拦截器清理所有已分配的资源 String intercept(ActionInvocation invocation)执行具体的拦截操作,它会在action执行之前和(或)之后插入需要的代码,与过滤器很类似,拦截器在使用之前,必须在配置文件中进行配置。 定义拦截器指定拦截器名字和拦截器类,包括拦截器和拦截器栈的定义 使用拦截器在动作中对已

9、定义好的拦截器的引用 Struts2框架提供的所有拦截器都在struts-default.xml中配置;自定义的拦截器需要在struts.xml进行配置,拦截器配置示例,注意interceptors必须放在所有动作标识的前面,在配置文件中定义拦截器,定义拦截器的相关标识interceptors用于包含一个动作包的所有拦截器interceptor定义每一个拦截器,常用属性是name和classinterceptor-stack定义拦截器栈,常用属性是nameinterceptor-ref定义在动作类中应用的拦截器,常用属性是namedefault-interceptor-ref定义动作包内所有动

10、作默认使用的拦截器 param 用于设置或修改拦截器的参数,如果动作包extends struts-default包,则包内的所有动作都有一个系统默认的拦截器栈defaultStack,如果不想使用默认拦截器或默认拦截器功能不满足需要,可以自定义拦截器 如果开发者为包中的某个action引用了某个拦截器,则默认的拦截器将不会起作用,如果需使用默认拦截器,需要显式地引用它,方法一:实现Interceptor接口,并重写init、intercept和destroy方法;应用ActionInvocation接口的invoke方法执行下一下拦截器或动作方法二:扩展抽象类AbstractIntercep

11、tor,并根据需要重写init、intercept和destroy方法;应用ActionInvocation接口的invoke方法执行下一下拦截器或动作,创建动作类 创建拦截器 创建结果显示JSP文件 配置struts.xml文件,定义动作包、动作和拦截器,自定义拦截器示例步骤,创建动作类,使用实现接口方式创建拦截器,创建结果显示JSP文件,http:/localhost:8082/Struts2Demo/user/Hello,编写struts.xml ,定义动作包、动作和拦截器,默认情况下,Action的拦截器会拦截Action中的所有方法,但有时我们只需拦截Action中的某些方法,此时可使用Struts2所提供的拦截器方法过滤特性 使用拦截器方法过滤特性语法 继承MethodFilterInterceptor抽象类,并重写doIntercept(ActionInvocation ai) 在struts.xml中使用拦截器时使用参数”includeMethods”来指定需拦截的方法;使用“excludeMethods”来指定不需拦截的方法。,拦截指定方法,执行结果,本讲小结,LoginAction/HelloAction,

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

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1