《Java Web轻量级框架项目化教程》课后参考答案(全部).doc_第1页
《Java Web轻量级框架项目化教程》课后参考答案(全部).doc_第2页
《Java Web轻量级框架项目化教程》课后参考答案(全部).doc_第3页
《Java Web轻量级框架项目化教程》课后参考答案(全部).doc_第4页
《Java Web轻量级框架项目化教程》课后参考答案(全部).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章一问答题1怎样配置JDK和Tomcat的环境变量?答:JDK安装后,如果要在在Windows系统下的DOS控制台窗口下,编译执行Java程序,需要对JDK进行环境变量配置,配置过程见书1.1节的第3点“配置JDK 8”。Tomcat的免安装版本,解压缩后需设置TOMCAT_HOME环境变量,配置的方法与配置Java环境变量类似,配置过程见书1.2节的第2点“Tomcat 8.0的安装配置”。2Tomcat目录结构包括哪些,如何修改Tomcat的服务端口?答:Tomcat的目录结构说明:目 录说 明/bin存放Tomcat命令,.sh结尾的linux命令,.bat结尾windows命令/conf存放Tomcat服务器的各种配置文件,例如server.xml/lib存放Tomcat服务器运行过程中需要加载的各种JAR文件包/logs存放Tomcat服务器运行过程中产生的日志文件/temp存放Tomcat服务器运行过程中产生的临时文件/work存放Tomcat在运行时的编译后文件,例如JSP编译后的文件/webapps发布Web应用,默认情况下将Web应用的文件存放于此目录中3如何创建一个自己的Web项目,怎样设计Web目录?答:(1) 创建Web项目(2) 设计项目目录结构 (3) 编写页面代码(4) 部署和运行项目MyEclipse设计Web项目目录结构:项目包含下面几个包,一个src(存放java文件等),一个Webroot,还有JRE.等。主要看WebRoot,Jsp页面我们是放在这个目录下的,一般设计目录符合规范。WebRoot-common(系统框架公用jsp 如footer.jsp,header.jsp)-images (图片资源)-scripts(javascript库等)-styles -(css模版)- css 风格1- css 风格2-文件夹-WEB-INF -lib-web.xml-jsp/html页面文件第2章一简答题1C/S模式和B/S模式各有什么特点?电子商城项目为什么选择使用B/S模式?答:C/S模式是一种两层结构的系统,第一层在客户机上安装了客户机应用程序,第二层在服务器上安装服务器管理程序。在C/S模式的工作过程中,客户机程序发出请求,服务器程序接收并且处理客户机程序提出的请求,然后返回结果。C/S模式有以下特点:(1). 应用与服务分离,系统具有稳定性和灵活性;(2). 点对点的结构模式,适用于局域网,有可靠的安全性;(3). 没有中间环节,因此响应速度快;(4). 客户机的计算机都要安装客户机程序,软件升级和维护较为复杂。B/S模式,即浏览器/服务器模式,是一种从传统的两层C/S模式发展起来的新的网络结构模式,其本质是三层结构的C/S模式。在用户的计算机上安装浏览器软件,在服务器上存放数据并且安装服务应用程序。用户通过浏览器访问服务器,进行信息浏览等服务。B/S模式有以下特点:(1). 系统开发、维护、升级方便;(2). B/S模式具有很强的开放性;(3). B/S模式的结构易于扩展;(4). 用户使用方便。2电子商城项目的前台、后台需求分别是什么?答:电子商城系统前台购买商品功能分析:(1). 前台用户注册为会员。(2). 登录电子商城系统浏览商品。(3). 用户对自己的个人信息进行更改。(4). 对暂存入购物车中的商品进行更改,如选择的数量或者取消选择。(5). 当用户确定所选至购物车的商品后,将其提交到服务器,生成订单。管理员后台管理功能分析:(1). 管理员可以对商品管理,显示产品列表、查询产品、修改产品、删除产品,显示产品类型列表、修改和删除产品类型等功能。(2). 管理员可以对订单管理,订单管理模块包含创建订单、查询订单、修改订单/查看明细、删除订单等功能(3). 管理员对用户和权限管理,包括用户管理和管理员权限管理两个部分,用户管理包括查看用户列表、启用或禁用用户,管理员权限管理包括新增管理员、更改设置管理员权限。第3章 一选择题1.B2.A3.D4.A5.A6.B7.C8.B9.A10.B11.B12.D13.D14.CD15.BD二简答题1使用Struts 2框架实现用户注册功能,对数据信息进行校验,要求用户名不能为空,电话号码不能低于8位。答:参照书上3.2示例过程:(1). 创建Web项目Register01,添加Struts 2的类库。(2). 配置Web.xml文件加载核心控制器。(3). 新建注册页面register.jsp和结果页面result.jsp。(4). 开发业务控制器RegisterAction,继承ActionSupport,添加username、password、number属性,实现execute()方法(不实现连接数据库),添加validate()方法进行相关验证。(5). 配置struts.xml文件, (6). 部署Register01项目,运行项目2Struts 2的核心配置文件是struts.xml,请简述struts.xml文件中各个配置元素的作用。答:一个典型的struts.xml文件代码如下所示: /视图资源1 /视图资源2 (1). constant元素:该元素用于常量的配置,(2). include元素:可将struts.xml配置文件分解成多个,然后包含其他的配置文件。(3). package元素:Struts 2框架会把action、result等组织在一个名为package(包)的逻辑单元中,从而简化维护工作,提高重用性,每一个包都包含了Aaction、Result等定义。(4). action元素:将一个请求的URL(Action的名字)对应到一个Action类。(5). result元素:用来指定这个逻辑视图结果所对应的物理视图资源的位置。3使用Struts 2编写档案管理程序,实现用户注册及登录功能,要求调用动态方法并解决中文乱码问题。答:参照书上3.3示例过程:(1). 创建Web项目Register03,添加Struts 2的类库。(2). 配置Web.xml文件加载核心控制器。(3). 在MySQL中创建数据库和数据表,根据根据表字段,在项目中创建用户的实体类(4). 开发数据访问的DAO层,新建BaseDAO,用来连接数据库和关闭对象(5). 新建UserDAO的接口,定义相应增加用户和查询用户的方法,并新建UserDAOImpl类继承BaseDAO并实现UserDAO接口。(6). 开发控制层的UserAction,并添加相应的注册方法和登录方法,并添加相应验证(7). 配置struts.xml文件,相应的Action请求可以为registerAction、和loginAction/1_success.jsp(8). 新建注册页面register.jsp、登录页面login.jsp、注册成功页面register_success.jsp和登录成功页面login_success.jsp。(9) 部署Register03项目,运行项目4如何开发自定义的拦截器。答:在Struts 2程序的开发中,如果想要开发自己的拦截器类,所有的Struts 2拦截器都直接或间接实现接口erceptor.Interceptor。该接口提供三个方法,方法如下所示:l void init(): 该拦截器被初始化之后,在该拦截器执行拦截之前,系统回调该方法。对于每个拦截器而言,此方法只执行一次。l void destroy(): 该方法跟init()方法对应,在拦截器示例被销毁之前,系统将回调该方法。l String intercept(ActionInvocation invocation) throws Exception: 该方法是用户需要实现的拦截动作,该方法会返回一个字符串作为逻辑视图。除此之外,继承erceptor.AbstractInterceptor类是更简单的一种实现拦截器的方式,AbstractInterceptor类提供了init()和destroy()方法的空实现,这样我们只需要实现intercept()方法,就可以创建我们自己的拦截器了。开发自定义拦截器过程:(1). 编写自定义拦截器,继承自AbstractInterceptor。(2). 在struts.xml配置文件中定义拦截器。(3). 引用自定义的拦截器。5什么事国际化和本地化?Java中如何实现国际化?答:国际化(Internationalization:I18N):是程序在不做任何修改的情况下,就可以在不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符。本地化(Localization:L10N):一个国际化的程序,当它运行在本地机器上时,能够根据本地机器的语言和地区设置显示相应的字符,这个过程叫做本地化。Java程序的国际化思路是将程序中的提示信息、错误信息等放在资源文件中,为不同的国家/语言编写对应的资源文件。资源文件有很多key-value对组成,key保持不变,value随国家/语言的不同而不同。Struts 2的国际化建立在Java国际化的基础之上,只是Struts 2框架对Java程序国际化进行了进一步的封装,从而简化了应用程序的国际化。6开发一个用户注册程序,要求对如下各个字段进行验证。 姓名:不能为空,长度在6和10之间。 密码:不能为空,密码长度=6,密码和确认密码必须一致。 年龄:不能为空,只能是数字,20到80之间。 邮箱:不能为空,符合邮箱命名规则。 手机号码:不能为空,符合手机号码格式。 生日:不能为空,符合手机号码格式。答:参照书上3.7示例过程:(1). 创建Web项目Register06,添加Struts 2的类库。(2). 配置Web.xml文件加载核心控制器。(3). 新建注册页面register.jsp和结果页面result.jsp。(4). 添加User实体对象。开发业务控制器UserAction,继承ActionSupport,添加user实体对象、repassword等属性,添加register方法(不实现连接数据库)。 (5). 在UserAction的路径下,创建UserAction-validation.xml的验证文件,编写验证规则。(6). 配置struts.xml文件, (7). 部署Register06项目,运行项目7简述Struts 2的Ajax标签及其作用。答:Struts 2中的Ajax标签主要有如下几个:(1). :创建一个div区域,可以通过Ajax向其中加载内容,以实现局部刷新。(2). :通过Ajax更新某个元素的内容或提交表单。(3). :通过Ajax来更新某个元素的内容或提交表单。(4). :创建一个标签面板,由提供内容。(5). :根据用户输入的提供输入建议,或者帮助用户自动完成输入。(6). :创建一个支持Ajax的树形组件。8请简述使用Struts 2框架开发Web应用程序时,数据是如何流入的。答:使用OGNL表达式能够将表单字段名绑定到对象(Action对象)中的具体属性,Action对象被放在叫做值栈(ValueStack)的对象上,通常出现在表单输入的name属性或者Struts 2标签的各种属性中。OGNL提供一个简单的语法将表单或Struts 2标签与特定的Java数据绑定起来,用来将数据移入、移出框架,如我们学习过的页面中的输入对应Action类中User对象的userName属性。登录页面输入框的name用到的名字就是OGNL的表达式,在欢迎页面使用“”。两个user.useNname表达式都是相同的,但前一个保存对象属性的值,后一个是取得对象属性的值。除了表达式语言,我们一直使用OGNL作为类型转换器,每次数据进入和流出框架,页面中数据的字符串版本和Java数据类型之间都发生转换,到目前为止我们一直都是用Struts 2框架为我们提供的内置的类型转换器。OGNL融入Struts 2框架,如下图所示。Struts 2FrameWork ValueStackMyActionUser Integer age;String userName;OGNL表达式语言和类型转换“user.userName”=”Mike”“user.age”=”28”Servlet请求ResultPage.jspAtyoure our oldest user. At 28,youre our oldest userInputForm.htmlResultPage.html第4章一选择题1B 2D 3C 4B 5B 6D 7D 8C 9A 10A11D 12D 13D 14B二、简答题1简述Hibernate的对象3种状态转变关系?答:Hibernate的对象3种状态转变关系如图1所示:瞬时态持久态托管态save()saveOrUpdate()delete()close()clear()evict()update()saveOrUpdate ()lock()new垃圾回收get()load()find()iterate()垃圾回收图1 Hibernate的对象3种状态转变图从图1中可以看出,通过Sesssion实例调用一系列方法后会引起Hibernate的对象状态转变。其中,能够使Hibernate的对象由瞬时态或托管态转变为持久态的方法有: save()方法将对象由瞬时态转变为持久态。 load()或get()方法获得的对象的状态处于持久态。 find()方法获得的List集合中的对象状态处于持久态。 update()、saveOrUpdate()和lock()方法可将托管态对象转变为持久态。能够使Hibernate的对象由持久态转变为托管态的方法有: close()方法调用后,Session的缓存会被清空,缓存中所有持久态对象状态都转变为托管态。处于托管状态的对象称为游离对象,当游离对象不再被引用时,将被Java虚拟机垃圾回收机制清除。 evict()方法可将Session缓存中一个指定的持久态对象删除,使其转变为托管态对象。当缓存中保存了大量处于持久态的对象时,为了节省内存空间,可以调用evict()方法删除一些持久态对象。2在Hibernate中,有哪些查询方式?Hibernate的几种主要检索方式有HQL检索方式、QBC检索和SQL检索方式。HQL是Hibernate Query Language的缩写,是官方推荐的查询语言。QBC是Query By Criteria的缩写,是Hibernate提供的一个查询接口。Hibernate是一个轻量级的框架,它允许使用原始SQL语句查询数据库。3简述MyBatis和Hibernate的区别?Hiberante较深度的封装了JDBC,对开发者编写SQL的能力要求不高,只要通过HQL语句操作对象即可完成对数据持久化的操作了。另外Hibernate可移植性好,如一个项目开始使用的是MYSQL数据库,现在决定使用Oracle数据库,由于不同的数据库SQL标准还是有差距的,手动修改会存在很大的困难,使用Hibernate只需改变一下数据库方言即可。使用Hibernate框架,数据库的移植变的非常方便。但是Hibernate也存在着诸多的不足,比如在实际开发过程中会生成很多不必要的SQL语句耗费程序资源,优化起来也不是很方便,且对存储过程支持的也不够太强大。Mybatis 也是对JDBC的封装,但是封装的没有Hibernate那么深,通过在配置文件中编写SQL语句,可以根据需求定制SQL语句,数据优化起来较Hibernate容易得多。Mybatis要求程序员编写SQL的能力要比Hibernate高的多,且可移植性也不是很好。涉及到大数据的系统使用Mybatis比较好,因为优化方便。涉及的数据量不大且对优化要求不高的系统,可以使用Hibernate。4MyBatis中用于实现动态SQL的元素主要包括哪些?MyBatis的动态SQL是基于OGNL表达式的,MyBatis中用于实现动态SQL的元素主要包括if、choose(when,otherwise)、trim、where、set、foreach。第5章一选择题1D 2D 3A 4BC 5D 6B 7D 8BC 9AC 10B二、简答题1简述Spring 框架的7 个模块功能。(1)核心容器(Spring Core)(2)Spring 上下文(Spring Context)(3)Spring 的面向方面的编程(Spring AOP)(4)Spring JDBC DAO 抽象层(Spring DAO)(5)Spring ORM 的对象关系工具(Spring ORM)(6)Spring Web 模块(Spring Web)(7)Spring MVC 框架(Spring Web MVC)2简述Spring容器提供了哪些功能?Spring容器提供了对对象的管理,如Spring容器负责生成、组装、销毁组件,另外Spring容器还提供了对持久化的支持,对事务的支持。另外Spring容器提供了国际化等功能。3什么是aop,aop的作用是什么?AOP意思是面向切面(方面)编程。AOP技术是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态添加辅助功能的技术。它一般只适用于具有横切业务逻辑的应用场合,比如事务管理、日志管理、访问权限管理和性能监测管理等。4简述IoC的类型?IOC可以分为三种注入类型,分别是构造函数注入、属性注入和接口注入。Spring主要支持构造函数注入和属性注入。5简述Spring的通知类型。Spring AOP通知包括前置通知、返回通知、正常返回通知、异常通知和环绕通知。6简述Spring MVC工作原理。(1)Spring MVC将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作;(2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller;(3)DispatcherServlet将请求提交到目标Controller;(4)Controller进行业务逻辑处理后,会返回一个ModelAndView;(5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象;(6)视图对象负责渲染返回给客户端。第6章一编程题1答:某公司计划使用SSH2(struts2+spring+hibernate)框架开发一个商品订单管理系统,具体实现步骤:(1). 正确添加struts 2、spring和hibernate框架。(2). 生成实体类和映射文件。(3). 创建DAO、Service,在DAO类中使用HQL实现查询操作。(4). 在Action中正确编写相关方法处理用户请求。(5). 正确配置struts.xml和applicationContext.xml文件。(6). 显示订单信息页面如下图所示。(7). 测试程序。注意事项:(1). 界面美观,控件摆放整齐。(2). 代码的书写,命名符合规范,在代码中添加必要的注释。(3). 操作数据库时要做必要的异常处理。第7章 一简答题1简述基于Annotation注解实现Spring 整合Hibernate与Struts 2的过程?(1)采用注解方式实现类的属性与数据表的字段之间的映射关系,(2)在DAO接口的实现类中使用Repository和Autowired注解,(3)在Service业务接口的实现类中使用Service、Autowired和Transactional注解,(4)在Action类中使用Controller与Scope、Action与Result和Autowired注解,(5)在Spring配置文件applicationContext.xml中,依次配置数据源、配置Hibernate的sessionFactory实例(配置数据源属性、配置 Hibernate的基本属性、配置 Hibernate基于注解的实体类的位置及名称),声明Hibernate事务管理器,开启注解处理器,开启Spring的Bean自动扫描机制来检查与管理Bean实例,配置基于Transactional注解方式的事务管理。(6)在Struts 2配置文件struts.xml中,只需配置编码。2在页面中使用Easy UI框架需要导入哪些文件?需要导入easyui.css、icon.css、demo.css、jquery.min.js、jquery.easyui.min.js和easyui-lang-zh_CN.js等文件。3简述项目中如何使用Easy UI的Tree控件显示系统功能菜单?首先定义ul,用于创建Easy UI的Tree,并通过Tree控件的url属性为其指定数据源。数据源可来源于JSON格式文件,也可来自Action类的方法返回的JSON格式数据。4简述项目中如何使用Easy UI的DataGrid控件分页显示产品列表?首先创建table标签,然后使用javascript来初始化DataGrid控件,将DataGrid控件的singleSelect属性设置为“false”以允许多选,pagination属性设置为“true”以允许分页,pageSize属性设置初始每页记录数(即页大小),pageList设置可供选择的页大小,rownumbers属性设置为“true”以显示行号,fit属性设置为“true”以自适应显示数据,toolbar属性设置为“#tb”为datagrid添加工具栏,header属性设置为“#searchtb”为datagrid标头添加搜索栏,设置columns属性以指定datagrid显示的列,DataGrid控件数据源通过url属性来指定。数据源来自Action类的方法,在Action类的方法中,首先获取从datagrid控件中传递来的页码和所选的每页显示记录,然后调用业务接口中的方法获取商品总记录数,再调用业务接口中的方法根据页码和页大小获取当前页商品列表,并将商品列表转为json格式,最后将JSON格式字符串发送到前端页面,作为datagrid控件的数据源。第8章一简答题1简述基于Annotation注解实现Spring 整合Hibernate与Spring MVC的过程?(1)添加相关jar包(2)采用注解方式创建实体类(3)Spring整合HibernateSpring整合Hibernate是在Spring配置文件applicationContext.xml中通过配置完成的,在src目录下创建文件applicationContext.xml,依次配置数据源;配置Hibernate的sessionFactory实例;声明Hibernate事务管理器;开启注解处理器;开启Spring的Bean自动扫描机制来检查与管理Bean实例;配置基于Transactional注解方式的事务管理。如果Spring的IOC容器和SpringMVC的IOC容器扫描的包有重合的部分,就会导致有的bean会被创建两次。解决的方法是使Spring的IOC容器扫描的包和SpringMVC的IOC容器扫描的包没有重合的部分,可使用exclude-filter和include-filter子节点来规定只能扫描的注解。(4)DAO层开发(5)Service层开发(6)控制器开发(7)Spring整合Spring MVC1)配置web.xml在web.xml配置文件中,依次配置ContextLoaderListener,加载Spring配置文件;配置编码过滤器;配置防止Spring内存溢出监听器;配置org.springframework.web.filter.HiddenHttpMethodFilter,可将POST请求转为DELETE或PUT请求;配置Spring MVC的DispatcherServlet。2) 在项目src目录下创建Spring MVC的配置文件springmvc.xml,依次配置自动扫描的包;配置视图解析器;启用MVC注解驱动。2datagrid控件的getChanges方法的作用? 获取datagrid控件自上次提交以来发生变化行。3简述JsonIgnoreProperties注解的作用?表示在进行JSON转化时,忽略对象包含的属性,以避免无限递归转化。4简述Transient注解的作用?使用Transient注解修饰属性,表示这些属性并非一个到数据库表的字段的映射,ORM框架将忽略这些属性。第9章一简答题1简述实现Spring 整合MyBatis与Spring MVC的过程?(1)添加相关jar包(2)创建实体类(3)Spring整合MyBatisSpring整合MyBatis是在Spring配置文件applicationContext.xml中通过配置完成的,在src目录下创建applicationCo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论