电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java EE 课程ppt课件 第2章 Struts 2基础

59页
  • 卖家[上传人]:杨****
  • 文档编号:54211814
  • 上传时间:2018-09-09
  • 文档格式:PPT
  • 文档大小:1.37MB
  • / 59 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第2章 Struts 2基础,2.1 Struts 2框架开发入门,2.2 Struts 2原理及工作流程,2.3 解密Struts 2程序文件,2.1 Struts 2框架开发入门,2.1.1 MVC基本思想 MVC把应用程序分成3大基本模块:模型(Model,即M)、视图(View,即V)和控制器(Controller,即C),它们(三者联合即MVC)分别担当不同的任务。图2.1显示了这几个模块各自的职能及相互关系。,2.1.2 MVC实现方式,传统的Java EE开发采用JSPServletJavaBean的方式来实现MVC(如【实例1.1】),但它有一个缺陷:程序员在编写程序时必须继承HttpServlet类、覆盖doGet()和doPost()方法,严格遵守Servlet代码规范编写程序,形如: package x.xx.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class XxxServlet extends HttpServlet publi

      2、c void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request,response); ,2.1.2 MVC实现方式,用Struts 2实现的MVC系统与传统的用Servlet编写的MVC系统相比,两者在结构上的区别如图2.2所示。,2.1.3 简单Struts 2开发,1加载Struts 2包 登录http:/struts.apache.org/,下载Struts 2完整版,本书使用的是Struts 2.3.16.3。将下载的文件struts-2.3.16.3-all.zip解压缩,得到文件夹包含的目录结构如图2.3所示,这是一个典型的Web结构。,2.1.3 简单Struts 2开发

      3、,大部分的时候,使用Struts 2的Java EE应用并不需要用到Struts 2的全部特性,开发Struts 2程序只需用到lib下的9个jar包,包括: (1)传统Struts 2的5个基本类库。 struts2-core-2.3.16.3.jar xwork-core-2.3.16.3.jar ognl-3.0.6.jar commons-logging-1.1.3.jar freemarker-2.3.19.jar (2)附加的4个库。 commons-io-2.2.jar commons-lang3-3.1.jar javassist-3.11.0.GA.jar commons-fileupload-1.3.1.jar,2.1.3 简单Struts 2开发,将它们一起复制到项目的WebRootWEB-INFlib路径下,右击项目名,从弹出菜单中选择“Refresh”按钮刷新即可,加载成功的项目工程目录树如图2.4所示。,2.1.3 简单Struts 2开发,2配置web.xml Struts 2框架需要在项目web.xml文件中配置,代码所示。 3实现控制器Action 基

      4、于Struts 2框架的Java EE应用程序使用自定义的Action(控制器)来处理深层业务逻辑,完成用户想要完成的功能。本例定义名为“login”的控制器,判断登录用户名和密码的正确性。在项目src下建立包org.action,在包里创建LoginAction类。 LoginAction.java代码所示。,2.1.3 简单Struts 2开发,4配置struts.xml 在编写好Action(控制器)的代码之后,还需要进行配置才能让Struts 2识别Action。在src下创建文件struts.xml(注意文件位置和大小写),输入如下的配置代码: /main.jsp /error.jsp ,2.1.3 简单Struts 2开发,5编写JSP 本例login.jsp(登录页)、main.jsp(欢迎主页)这两个JSP文件均使用Struts 2的标签进行了重新改写。 登录页login.jsp,代码为。 欢迎主页main.jsp,代码如下: 欢迎使用 ,您好!欢迎使用图书管理系统。 ,2.2 Struts 2原理及工作流程,2.2.1 Struts 2工作原理 Struts 2框架内

      5、部是基于一种称为“过滤器”的机制运作的,其工作原理图如图2.5所示,该图出自Struts 2官方发布的技术文档,清楚地概括了Struts 2的整个工作过程。,2.2.1 Struts 2工作原理,(1)客户端提交一个(HttpServletRequest)请求。 (2)请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器、FilterDispatcher)。 (3)FilterDispatcher接收到请求后,询问ActionMapper是否需要调用某个Action来处理这个(HttpServletRequest)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。 (4)ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类(该Action类一般是程序员自定义的处理请求的类)。 (5)ActionProxy创建一个ActionInvocation实例,同

      6、时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。 (6)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果Result。,2.2.2 Struts 2项目运行流程,了解了Struts 2的工作原理,再结合【实例2.1】就可以总结出一个基于Struts 2开发的项目的运行流程了,如图2.6所示。,2.3 解密Struts 2程序文件,2.3.1 Action类应用详解 1使用ActionSupport 继承ActionSupport类能够帮助程序员更好地完成一些工作,它实现了5个接口并包含了一组默认的实现。如果编程中想要用到该类提供的某些功能,只要重写它提供的方法就可以了,例如,要实现验证功能,只需在自定义Action类中重写validate()方法即可。 public class ActionSupport implements Action, Validateable, ValidationA

      7、ware, TextProvider, LocaleProvider,Serializable ,2.3.1 Action类应用详,(1)Action接口:该接口提供了5个常量及一个execute()方法。代码如下: public interface Action public static final String SUCCESS = “success“; public static final String NONE = “none“; public static final String ERROR = “error“; public static final String INPUT = “input“; public static final String LOGIN = “login“; public String execute() throws Exception; 如果Action类继承了ActionSupport类,就可以直接应用这几个常量,比如在【实例2.1】中的Action代码: if(l!=null) Map session = ActionContext.g

      8、etContext().getSession(); session.put(“login“, l); return SUCCESS; /验证成功返回SUCCESS,实际返回的是字符串“success“ else return ERROR; /验证失败返回ERROR,实际返回的是字符串“error“ ,2.3.1 Action类应用详,(2)Validateable接口:该接口提供了一个validate()方法用于校验表单数据,在实际应用中只要在Action类中重写该方法即可。【实例2.1】的程序并没有对填入的数据进行任何判断,即使用户未输入任何内容,提交后也会查询数据库,在一般情况下是不会允许的。这时就可以在Action类中重写validate()方法,然后在该方法中对取得的数据进行判断,如果为空或其他不允许的情况就可以保存错误信息。该方法是在执行execute()方法之前执行的。 (3)ValidationAware接口:该接口定义了一些方法用来对Action执行过程中产生的信息进行处理。例如,该接口中提供了addFieldError(String fieldname,String

      9、errorMessage)方法用来在验证出错时保存错误信息。,2.3.1 Action类应用详,(4)TextProvider接口:该接口中提供了一系列getText()方法,用于获得对应的国际化信息资源。在Struts 2中的国际化信息资源都是以key-value对出现的,通过使用该接口中的getText()方法可以用key来获得相应的value值(国际化内容会在第6章讲解)。 (5)LocaleProvider接口:该接口提供了一个getLocale()方法,用于国际化时获得语言/地区信息。,2.3.1 Action类应用详,2Action传值 Action可以通过其属性获取页面上表单文本框中用户输入的值,代码为。 使用该传值方式首先要把字段封装成一个类,并生成其get和set方法,就是通常说的JavaBean了。因【实例2.1】的项目中已编写好了JavaBean类Login.java,故只须在Action中改变写法: package org.action; public class LoginAction extends ActionSupport private Login l

      10、ogin; /处理用户请求的 execute 方法 public String execute() throws Exception /属性 login 的 get/set 方法 public Login getLogin() return login; public void setLogin(Login login) this.login = login; ,2.3.1 Action类应用详,(1)通过ActionContext访问。 ActionContext类提供了一个静态的getContext()方法来获得ActionContext对象,然后根据其对象来获得一些Servlet API的对象。例如: ActionContext ac=ActionContext.getContext(); /获得ActionContext对象 Map session=ac.getSession(); /获得session对象 Map application=ac.getApplication(); /获得application对象 Map request=ac.get(); /获得request对象 由于“request”和“response”比较特殊,也是在开发中经常会用到的,所以Struts 2提供了专门的类来获取,即“ServletActionContext”。 HttpServletRequest request=ServletActionContext.getRequest(); /获得HttpServletRequest对象 HttpServletResponse response =ServletActionContext.getResponse(); /获得HttpServletResponse对象 HttpSession session=request.getSession(); /获得HttpSession对象,

      《Java EE 课程ppt课件 第2章 Struts 2基础》由会员杨****分享,可在线阅读,更多相关《Java EE 课程ppt课件 第2章 Struts 2基础》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.