第1章 Struts2框架技术入门1.5 习题1.5.1 选择题1.D2.A3.C4.B5.B1.5.2 填空题1.MVC2.Struts1和WebWork3.IBM4.FilterDispatcher5.JSP、Struts2标签1.5.3 简答题1.简述MVC设计模式的工作流程。
答:MVC设计模式工作流程是:(1)用户的请求<V)提交给控制器<C);控制器接受到用户请求后根据用户的具体需求,调用相应的JavaBean或者EJB<M部分)来进行处理用户的请求;(3)控制器调用M处理完数据后,根据处理结果进行下一步的调转,如跳转到另外一个页面或者其他Servlet。
2.简述Struts2的工作原理。
答:Struts2中使用拦截器来处理用户请求,从而允许用户的业务控制器Action与Servlet分离。
用户请求提交后经过多个拦截器拦截后交给核心控制器FilterDispatcher 处理,核心控制器读取配置文件struts.xml,根据配置文件的信息指定某一个业务控制器Action<POJO类)来处理用户数据,业务控制器调用某个业务组件进行处理,在处理的过程中可以调用其他模型组件共同完成数据的处理。
Action处理完后会返回给核心控制器FilterDispatcher一个处理结果,核心控制器根据返回的处理结果读取配置文件struts.xml,根据配置文件中的配置,决定下一步跳转到哪一个页面。
一个客户请求在Struts2框架中处理的过程大概有以下几个步骤:(1)客户提交请求到服务器;请求被提交到一系列的过滤器过滤后最后到FilterDispatcher;FilterDispatcher是核心控制器,是基于Struts2中MVC模式的控制器部分;FilterDispatcher读取配置文件struts.xml,根据配置信息调用某个Action来处理客户请求;(4)Action执行完毕,返回执行结果,根据struts.xml的配置找到对应的返回结果。
1.5.4 实训题略第2章 Struts2核心组件详解2.7 习题2.7.1 选择题1.B2.C3.B4.D5.B6.D2.7.2 填空题1.struts.xml和struts.properties2.struts.xml、struts.properties和web.xml3.Action和拦截器4.非耦合性5.IoC方式和非IoC方式6.不指定method属性和指定method属性7.表达式、根对象和上下文环境8.UI标签、非UI标签9.表单标签和非表单标签10.数据标签和控制标签2.7.3 简答题1.简述struts.xml配置文件的作用。
答:Struts2的核心配置文件是struts.xml,struts.xml具有重要的作用,所有用户请求被Struts2核心控制器FilterDispatcher拦截,然后业务控制器代理通过配置管理类查询配置文件struts.xml中由哪个也Action处理。
2.简述Struts2的核心控制器FilterDispatcher的作用。
答:FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。
如果用户请求以action结尾,该请求将被转入Struts2框架处理。
Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务控制器组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。
Struts2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。
3.简述Struts2的业务控制器Action的作用。
答:Action类中包含了对用户请求的处理逻辑,因此也把Action称为Action业务控制器。
Action是应用的核心,业务控制器是Struts2中实现业务控制的中心,除了保存用户的数据外,它也负责调用其他模型组件在execute(>方法中进行数据处理。
2.7.4 实训题略第3章Struts2的高级组件3.6 习题3.6.1 选择题1.A2.A3.B4.C5.C3.6.2 填空题1.properties2.native2ascii3.AOP4.服务器端校验3.6.3 简答题1.什么是国际化,为什么使用国际化?答:“国际化”是指一个应用程序在运行时能够根据客户端请求所来自的国家/地区、语言的不同而显示不同的用户界面。
例如,请求来自于一台中文操作系统的客户端计算机,则应用程序响应界面中的各种标签、错误提示和帮助信息均使用中文文字;如果客户端计算机采用英文操作系统,则应用程序也应能识别并自动以英文界面做出响应。
引入国际化机制的目的在于提供自适应的、更友好的用户界面,而并未改变程序的其他功能/业务逻辑。
人们常用I18N 这个词作为“国际化”的简称,其来源是英文单词Internationalization 的首末字母I 和N 及它们之间的字符数18。
2.简述Struts2中实现国际化流程的过程。
答:<1)不同地区使用操作系统环境不同,如中文操作系统、英文操作系统、韩文操作系统等,在获得客户端地区的语言环境后,struts.xml文件会找国际化资源文件,当时中文语言环境,就加载中文国际化资源文件。
所示国际化需要编写支持多个语言的国际化资源文件,并且配置struts.xml文件。
<2)根据选择的语言加载相应的国际化资源文件,视图通过Struts2标签读取国际化资源文件把数据输出到页面上,完成页面的显示。
3.什么是拦截器,拦截器的作用是什么?答:拦截器<Interceptor)体系是Struts2的一个重要组成部分,正是大量的内置拦截器才提供了Struts2的大部分操作。
当FilterDispatcher拦截到用户请求后,大量的拦截器将会对用户请求进行处理,然后才调用用户自定义的Action类中的方法来处理请求,比如params拦截器将HTTP请求中的参数解读出来,将这些解读出来参数设置为Action的属性;servlet-config拦截器直接将HTTP请求中的HttpServletRequest实例和HttpServletResponse实例传给Action;国际化拦截器i18n将国际化资源进行操作;文件上传拦截器fileUpload将文件信息传给Action。
另外还有数据校验拦截器对数据校验信息进行拦截。
对于Struts2的拦截器体系而言,当需要使用某个拦截器时,只需在配置文件struts.xml中配置就可以使用;如果不需要使用该拦截器,也是只需在struts.xml 配置文件中取消配置即可。
Struts2的拦截器可以理解为一种可插拔式的设计思想,所以Struts2框架具有非常好的可扩展性。
4.简述在Java Web应用开发Struts2的输入校验的作用。
答:在互联网上,Web站点是对外提供服务的,因为站点的开放性,Web站点保存的数据主要都是从客户端接受过来。
输入数据的用户来自不同的行业,有着不同的教育背景和生活习惯,从而不能保证输入内容的正确性。
例如,用户操作计算机不熟悉、输入出错、网络问题或者恶意输入等,这些都可能导致数据异常。
如果对数据不加校验,有可能导致系统阻塞或者系统崩溃。
3.6.4 实训题略第5章Hibernate框架技术入门5.5习题5.5.1选择题1.A2.B3.A5.5.2填空题1.JDBC和ORM2.hibernate.cfg.xml和hibernate.properties3.xxx.hbm.xml或者.hbm.xml4. 临时状态<transient)、持久化状态<persistent)和脱管状态<detached)5.5.3简答题1.简述Hibernate的特点。
答:<1)Hibernate是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲地使用面向对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在JavaEE框架中取代CMP,完成数据持久化的重任。
<2)Hibernate的目标是成为Java中管理数据持久性问题的一种完整解决方案。
它协调应用与关系数据库的交互,让开发者解放出来专注于手中的业务问题。
<3)Hibernate是一种非强迫性的解决方案。
开发者在写业务逻辑与持久化类时,不会被要求遵循许多Hibernate特定的规则和设计模式。
这样,Hibernate就可以与大多数新的和现有的应用平顺地集成,而不需要对应用的其余部分做破坏性的改动。
2.简述Hibernate的工作原理。
答:首先,Configuration读取Hibernate的配置文件及映射文件中的信息,即加载配置文件和映射文件,并通过Hibernate配置文件生成一个多线程的SessionFactory 对象,然后,多线程SessionFactory对象生成一个线程Session 对象,Session对象生成Query对象或者Transaction对象;可通过Session对象的get(>,load(>,save(>,update(>,delete(>和saveOrUpdate( >等方法对PO进行加载、保存、更新、删除等操作;在查询的情况下,可通过Session 对象生成一个Query对象,然后利用Query对象执行查询操作;如果没有异常,Transaction对象将提交这些操作结果到数据库中。
5.5.4实训题略第6章 Hibernate核心组件详解6.11习题6.11.1选择题1.A2.A3.B6.11.2填空题1.hibernate.cfg.xml和hibernate.properties2.hbm.xml3.get(>和load(>6.11.3简答题1.简述Hibernate配置文件的作用。
答:Hibernate框架的配置文件用来为程序配置连接数据库的参数,例如,数据库的驱动程序名,URL,用户名和密码等。
Hibernate的基本配置文件有两种:hibernate.cfg.xml和hibernate.properties。