JavaWeb轻量级框架项目化教程课后参考答案全部.docx
《JavaWeb轻量级框架项目化教程课后参考答案全部.docx》由会员分享,可在线阅读,更多相关《JavaWeb轻量级框架项目化教程课后参考答案全部.docx(18页珍藏版)》请在冰豆网上搜索。
JavaWeb轻量级框架项目化教程课后参考答案全部
第1章
一.问答题
1.怎样配置JDK和Tomcat的环境变量?
答:
JDK安装后,如果要在在Windows系统下的DOS控制台窗口下,编译执行Java程序,需要对JDK进展环境变量配置,配置过程见书1.1节的第3点“配置JDK8〞。
Tomcat的免安装版本,解压缩后需设置TOMCAT_HOME环境变量,配置的方法与配置Java环境变量类似,配置过程见书1.2节的第2点“Tomcat8.0的安装配置〞。
2.Tomcat目录构造包括哪些,如何修改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-
-mon (系统框架公用jsp如footer.jsp,header.jsp)
-images(图片资源)
-scripts (javascript库等)
-styles- (css模版)
-css风格1 -css风格2
-文件夹
-WEB-INF–
-lib
-web.xml
-jsp/html页面文件
第2章
一.简答题
1.C/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.B
11.B12.D13.D14.CD15.BD
二.简答题
1.使用Struts2框架实现用户注册功能,对数据信息进展校验,要求用户名不能为空,不能低于8位。
答:
参照书上3.2例如过程:
(1).创立Web工程Register01,添加Struts2的类库。
(2).配置Web.xml文件加载核心控制器。
(3).新建注册页面register.jsp和结果页面result.jsp。
(4).开发业务控制器RegisterAction,继承ActionSupport,添加username、password、number属性,实现execute()方法(不实现连接数据库),添加validate()方法进展相关验证。
(5).配置struts.xml文件,
(6).部署Register01工程,运行工程
2.Struts2的核心配置文件是struts.xml,请简述struts.xml文件中各个配置元素的作用。
答:
一个典型的struts.xml文件代码如下所示:
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN""struts.apache.org/dtds/struts-2.3.dtd">
/视图资源1
/视图资源2
(1).constant元素:
该元素用于常量的配置,
(2).include元素:
可将struts.xml配置文件分解成多个,然后包含其他的配置文件。
(3).package元素:
Struts2框架会把action、result等组织在一个名为package(包)的逻辑单元中,从而简化维护工作,提高重用性,每一个包都包含了Aaction、Result等定义。
(4).action元素:
将一个请求的URL(Action的名字)对应到一个Action类。
(5).result元素:
用来指定这个逻辑视图结果所对应的物理视图资源的位置。
3.使用Struts2编写档案管理程序,实现用户注册及登录功能,要求调用动态方法并解决中文乱码问题。
答:
参照书上3.3例如过程:
(1).创立Web工程Register03,添加Struts2的类库。
(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.如何开发自定义的拦截器。
答:
在Struts2程序的开发中,如果想要开发自己的拦截器类,所有的Struts2拦截器都直接或间接实现接口.opensymphony.xwork2.interceptor.Interceptor。
该接口提供三个方法,方法如下所示:
●voidinit():
该拦截器被初始化之后,在该拦截器执行拦截之前,系统回调该方法。
对于每个拦截器而言,此方法只执行一次。
●voiddestroy():
该方法跟init()方法对应,在拦截器例如被销毁之前,系统将回调该方法。
●Stringintercept(ActionInvocationinvocation)throwsException:
该方法是用户需要实现的拦截动作,该方法会返回一个字符串作为逻辑视图。
除此之外,继承.opensymphony.xwork2.interceptor.AbstractInterceptor类是更简单的一种实现拦截器的方式,AbstractInterceptor类提供了init()和destroy()方法的空实现,这样我们只需要实现intercept()方法,就可以创立我们自己的拦截器了。
开发自定义拦截器过程:
(1).编写自定义拦截器,继承自AbstractInterceptor。
(2).在struts.xml配置文件中定义拦截器。
(3).引用自定义的拦截器。
5.什么事国际化和本地化?
Java中如何实现国际化?
答:
国际化(Internationalization:
I18N):
是程序在不做任何修改的情况下,就可以在不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符。
本地化(Localization:
L10N):
一个国际化的程序,当它运行在本地机器上时,能够根据本地机器的语言和地区设置显示相应的字符,这个过程叫做本地化。
Java程序的国际化思路是将程序中的提示信息、错误信息等放在资源文件中,为不同的国家/语言编写对应的资源文件。
资源文件有很多key-value对组成,key保持不变,value随国家/语言的不同而不同。
Struts2的国际化建立在Java国际化的根底之上,只是Struts2框架对Java程序国际化进展了进一步的封装,从而简化了应用程序的国际化。
6.开发一个用户注册程序,要求对如下各个字段进展验证。
✧:
不能为空,长度在6和10之间。
✧密码:
不能为空,密码长度>=6,密码和确认密码必须一致。
✧年龄:
不能为空,只能是数字,20到80之间。
✧:
不能为空,符合命名规那么。
✧手机:
不能为空,符合手机格式。
✧生日:
不能为空,符合手机格式。
答:
参照书上3.7例如过程:
(1).创立Web工程Register06,添加Struts2的类库。
(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.简述Struts2的Ajax标签及其作用。
答:
Struts2中的Ajax标签主要有如下几个:
(1).div>:
创立一个div区域,可以通过Ajax向其中加载容,以实现局部刷新。
(2).a>:
通过Ajax更新某个元素的容或提交表单。
(3).submit>:
通过Ajax来更新某个元素的容或提交表单。
(4).tablePanel>:
创立一个标签面板,由div>提供容。
(5).autopleter>:
根据用户输入的提供输入建议,或者帮助用户自动完成输入。
(6).tree>:
创立一个支持Ajax的树形组件。
8.请简述使用Struts2框架开发Web应用程序时,数据是如何流入的。
答:
使用OGNL表达式能够将表单字段名绑定到对象(Action对象)中的具体属性,Action对象被放在叫做值栈(ValueStack)的对象上,通常出现在表单输入的name属性或者Struts2标签的各种属性中。
OGNL提供一个简单的语法将表单或Struts2标签与特定的Java数据绑定起来,用来将数据移入、移出框架,如我们学习过的页面中的输入对应Action类中User对象的userName属性。
登录页面输入框的name用到的名字就是OGNL的表达式,在欢送页面使用“propertyvalue="user.useNname"/>〞。
两个"user.useNname"表达式都是一样的,但前一个保存对象属性的值,后一个是取得对象属性的值。
除了表达式语言,我们一直使用OGNL作为类型转换器,每次数据进入和流出框架,页面中数据的字符串版本和Java数据类型之间都发生转换,到目前为止我们一直都是用Struts2框架为我们提供的置的类型转换器。
OGNL融入Struts2框架,如下列图所示。
第4章
一.选择题
1.B2.D3.C4.B5.B6.D7.D8.C9.A10.A
11.D12.D13.D14.B
二、简答题
1.简述Hibernate的对象3种状态转变关系?
答:
Hibernate的对象3种状态转变关系如图1所示:
图1Hibernate的对象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是HibernateQueryLanguage的缩写,是官方推荐的查询语言。
QBC是QueryByCriteria的缩写,是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。
4.MyBatis中用于实现动态SQL的元素主要包括哪些?
MyBatis的动态SQL是基于OGNL表达式的,MyBatis中用于实现动态SQL的元素主要包括 if、choose〔when,otherwise〕、trim、where、set 、foreach。
第5章
一.选择题
1.D2.D3.A4.BC5.D6.B7.D8.BC9.AC10.B
二、简答题
1.简述Spring框架的7个模块功能。
〔1〕核心容器〔SpringCore〕
〔2〕Spring上下文〔SpringContext〕
〔3〕Spring的面向方面的编程〔SpringAOP〕
〔4〕SpringJDBCDAO抽象层〔SpringDAO〕
〔5〕SpringORM的对象关系工具〔SpringORM〕
〔6〕SpringWeb模块〔SpringWeb〕
〔7〕SpringMVC框架〔SpringWebMVC〕
2.简述Spring容器提供了哪些功能?
Spring容器提供了对对象的管理,如Spring容器负责生成、组装、销毁组件,,另外Spring容器还提供了对持久化的支持,对事务的支持。
另外Spring容器提供了国际化等功能。
3.什么是aop,aop的作用是什么?
AOP意思是面向切面〔方面〕编程。
AOP技术是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态添加辅助功能的技术。
它一般只适用于具有横切业务逻辑的应用场合,比方事务管理、日志管理、访问权限管理和性能监测管理等。
4.简述IoC的类型?
IOC可以分为三种注入类型,分别是构造函数注入、属性注入和接口注入。
Spring主要支持构造函数注入和属性注入。
5.简述Spring的通知类型。
SpringAOP通知包括前置通知、返回通知、正常返回通知、异常通知和环绕通知。
6.简述SpringMVC工作原理。
〔1〕SpringMVC将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进展真正的处理工作;
〔2〕DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller;
〔3〕DispatcherServlet将请求提交到目标Controller;
〔4〕Controller进展业务逻辑处理后,会返回一个ModelAndView;
〔5〕Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象;
〔6〕视图对象负责渲染返回给客户端。
第6章
一.编程题
1.答:
某公司方案使用SSH2〔struts2+spring+hibernate〕框架开发一个商品订单管理系统,具体实现步骤:
(1).正确添加struts2、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与Struts2的过程?
〔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〕在Struts2配置文件struts.xml中,只需配置编码。
2.在页面中使用EasyUI框架需要导入哪些文件?
需要导入easyui.css、icon.css、demo.css、jquery.min.js、jquery.easyui.min.js和easyui-lang-zh_.js等文件。
3.简述工程中如何使用EasyUI的Tree控件显示系统功能菜单?
首先定义ul,用于创立EasyUI的Tree,并通过Tree控件的url属性为其指定数据源。
数据源可来源于JSON格式文件,也可来自Action类的方法返回的JSON格式数据。
4.简述工程中如何使用EasyUI的DataGrid控件分页显示产品列表?
首先创立table标签,然后使用javascript来初始化DataGrid控件,将DataGrid控件的singleSelect属性设置为“false〞以允许多项选择,pagination属性设置为“true〞以允许分页,pageSize属性设置初始每页记录数〔即页大小〕,pageList设置可供选择的页大小,rownumbers属性设置为“true〞以显示行号,fit属性设置为