Struts2+Hibernate架构教程课后参考答案
软件开发框架(J2EE)Hibernate概述习题与答案
一、多选题1.在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素()为它的根元素。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素2.在Hibernate 主配置文件(hibernate.cfg.xml)中,是通过哪个元素()来配置映射文件的。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素3.下面关于Hibernate 的映射文件说法正确的有哪些()。
A.Hibernate 是以xml 格式的文件来指定对象与关系数据之间的映射B.在hibernate.cfg.xml文件中可以配置<mapping>元素的resource属性来指定映射文件C.配置映射文件时,需要遵循它对应的DTD 文件格式D.在映射文件中,<class>元素的<id>子元素只能出现一次E.<id>元素的<generator>子元素用来设定标识符生成器4.在Hibernate 的映射文件中,<id>元素的<generator>子元素用来设定标识符生成器,以下对常用的标识符生成器的用法说法正确的是()。
A.increment:适用于代理主键。
用于为long, short 或者int 类型生成唯一标识B.identity:适用于代理主键。
由底层数据库生成标识符C.sequence:适用于代理主键。
Hibernate 根据底层数据库的序列来生成标识符D.hilo:使用一个高/低位算法高效的生成long、short 或者int 类型的标识符E.seqhilo:使用一个高/低位算法来高效的生成long、short 或者int 类型的标识符,给定一个数据库序列(sequence)的名字5.Hibernate 采用xml 文件来配置对象—关系映射有哪些好处()。
Struts课后选择题答案及详解
Struts课后选择题答案及详解第一章:1、答案:D注意:struts2.0使用的是StrutsPrepareAndExecuteFilter过滤器2、答案:C注意:struts。
Xml不一定放在classes目录下,可以其他目录名字也可以更改,但必须在web.xml中进行明确指定,否则按默认配置Action的时候,包必须配置,否则出错使用<result>来配置转发的视图3、答案:A C注意:struts2中的业务处理Action,每次请求都会创建一个。
Action中的属性一般用于封装请求参数。
但不一定是所有。
4、答案:B注意:必须在strut.xml中进行配置5、答案:B注意:通过ActionContext来获得HttpSession对象第二章:1、答案:D 不多解释2、答案:B 不多解释3、答案:A method属性表示name中的占位符另外一种动态方法的调用4、答案:B注意:abstract不是必须的。
其他正确。
另外注意:namespace一般我们是/ 。
如果加了内容,则提交时也要加内容,如name="mytest" namespace="/user"则提交时需要<form action="/user/mytest" >包必须继承自struts-default,否则报错5、C 不多解释注意:获取对象肯定是通过ServletActionContext.getRequest来得到第三章:1、B 必须实现这个接口,当然也可以继承一个类(上课说过适配器模式)这个类是StrutsTypeConverter,这里问的是接口,所以选B2、AB注意:必须提供资源文件,xwork-conversion.properties配置时的顺序为:目标类型= 转换器3、B D注意:invocation.invoke() 表示放行,继续执行目标Action的方法,当然是可选的了,必须的话那每次都放行了。
Java高级框架应用开发案例教程——Struts 2+Spring+Hibernate课后习题
第三章P74 1-81.什么是MVC模式?模型(Model)视图(View)控制器(controller) 2106162.Struts2的工作原理?1)浏览器发送请求2)核心控制器FilterDispatcher根据请求决定调用合适的Action。
3)WebWork的拦截器链自动对请求应用通用功能,例如验证等功能。
4)回调Action的execute方法。
实际上,因为Action只是一个控制器,它会调用业务逻辑组件(Model)来处理用户的请求。
5)输出结果到页面3.Struts2的核心控制器FilterDispaer如何配置?<filter><!--配置struts2核心Filter的名字--><filter-name>struts</ filter-name><!--配置struts2核心Filter的实现类--><filter-class>org.apache. struts2.dispatcher.Filter Dispatcher </filter-class><init-param><!--配置struts2框架默认加载的Action包结构--><param-name>actionpackages</param-name><param-value> org.apache.struts2.showcase.person</param-value></init-param><!--配置struts2框架的配置提供者类--><init-param>< param- name>configProviders< /param- name><param-value>com.ascent.MyConfigurationProvider</param-value></init-param></filter>4.Struts2的Action类如何开发?对于Struts 2应用而言,Action是应用系统的核心,我们也称Action为业务控制器。
struts2温习题含答案
Struts2温习题1.以下属于struts2的操纵器组件是:2.以下属于struts2的体系结构的是:(多项选择)操纵器组件配置文件3.以下属于struts2配置文件中的配置元素是:(多项选择)A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于struts1和struts2对照的说法正确的选项是:要求Action类继承struts1框架中的Action父类,struts2中那么不必然需要继承,能够是POJO类中的Action不是线程平安的,而struts2中的Action是线程平安的和struts2中都利用ActionForm对象封装用户的请求数据利用OGNL表达式语言来支持页面成效,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的选项是:(多项选择)A.每一个Action对象实例拥有一个ValueStack对象B.每一个Action对象实例拥有多个ValueStack对象中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中会在请求开始时被创建,请求终止时消亡6.关于struts2配置文件说法正确的选项是:A.必需在WEB-INF/classes目录下B.名字必需为C.配置Action时,必需配置包信息D.利用<forward>元素配置转发7.在struts2配置顶用()元素来配置常量:A.<const>B.<constants>C.<constant>D.<constant-mapping>8.关于struts2包的说法正确的选项是:框架利用包来治理常量框架概念包时必需指定name属性框架中配置包时,必需继承自struts-default包,不然会报错框架中利用包来治理Action9.struts2中获取Servlet API的方式正确的选项是:(多项选择)A.利用ActionContext对象以解耦合的方式访问Servlet APIB.利用ServletActionContext对象以解耦合的方式访问Servlet APIC.利用ActionContext对象以耦合的方式访问Servlet APID.利用ServletActionContext对象以耦合的方式访问Servlet API10.struts2动态挪用的格式为:?!11.若是要实现struts2的数据校验功能A.一般Action类能够实现B.继承自Action接口能够实现C.继承自ActionSupport类能够实现D.继承自ActionValidate类能够实现12.若是要实现自概念处置结果,需继承那个类13.实现动态返回结果,在配置<result>元素时利用()指定视图资源A.${属性名}B.@{属性名}C.${'属性名'}D.${"属性名"}14.用于实现国际化的struts2标签是:A.<s:text>B.<s:message>C.<s:textfield>D.<s:resource>15.struts2默许的处置结果类型是:16.自概念转换器继承的抽象类是:17.自概念转换器的注册方式有:A.只有全局注册方式B.只有局部注册方式C.只有全局和局部注册方式D.以上说法都不对18.自概念拦截器类的方式有:(多项选择)A.实现Interceptor接口B.实现AbstractInterceptor接口C.继承Interceptor类D.继承AbstractInterceptor类19.在文件中,利用()元素概念拦截器A.<interceptor-ref>B.<interceptor>C.<intercep>D.<default-interceptor-ref>20.在OGNL中?操作符的作用是:A.掏出符合选择逻辑的第一个元素B.掏出符合选择逻辑的最后一个元素C.掏出符合选择逻辑的所有元素D.以上说法都不对21.以下属于struts2标签的是:(多项选择)标签 B.数据访问标签标签标签22.以下哪个标签是struts2中的用于循环迭代:A.<s:property>B.<s:iterator>C.<s:logic>D.<s:foreach>23.Struts2要紧核心功能是由()实现a)过滤器b)拦截器c)类型转换器d)配置文件24.Struts中的ActionServlet属于MVC模式()a)视图b)模型c)操纵器d)业务层25.Struts2框架由()和()框架进展而来的【选择二项】a)Hibernateb)Strutsc)Springd)WebWork26.Struts2以(B)为核心,采纳()的机制处置用户请求a)Strutsb)WebWorkc)拦截器d)jar包27.struts2中,不属于Action接口中概念的字符串常量的是()a)SUCCESSb)FAILUREc)ERRORd)INPUT28.struts2在操纵器类中一样需要添加相应属性的()和()【选择二项】a)setter方式b)as方式c)getter方式d)is方式29.struts2操纵器需要在()配置文件中进行配置a)b)c)d)30.不属于struts2标签库的是()a)<s:textfield>b)<s:textarea>c)<s:submit>d)<select>31.在JSP页面中能够通过Struts2提供的()标签来输出国际化信息a)<s:input>b)<s:messages>c)<s:submit>d)<s:text>32.资源文件的后缀名为()a)txtb)docc)propertyd)properties33.struts2自概念类型转换器必需实现的接口是()a) Convertb) TypeConverterc) StrutsTypeConverterd) StrutsConvert34.struts2关于注册全局类型转换器的说法正确的选项是()【选择二项】a) 必需提供文件b) 注册文件的格式为:复合类型=对应类型转换器c) 注册文件的格式为:对应类型转换器=复合类型d) 以上说法都不正确35.struts2自概念拦截器中的“return ”代码表示()【选择二项】a) 不执行目标Action的方式,直接返回b) 执行目标Action的方式,直接返回逻辑视图名称c) 在自概念拦截器中,该代码是必需的d) 在自概念拦截器中,该代码是可选的36.struts2中,以下配置文件上传拦截器只许诺上传bmp图片文件的代码,正确的选项是()a) <param name=”allowedTypes”>image/bmp</param>b) <param name=”allowedTypes”>*.bmp</param>c) <param name=”allowedTypes”>bmp</param>d) <param name=”allowedTypes”>image/*.bmp</param>37.以下关于OGNL的说法正确的选项是()【选择二项】a) ActionContext是OGNL的上下文环境b) StackContext是OGNL的上下文环境c) ValueStack是OGNL的根d) ActionContext是OGNL的根38.假设在Session中存在名为uid属性,通过OGNL访问该属性,正确的代码是()a) #uidb) #c) uidd) ${}39.关于“#.{? #>20}”OGNL代码所表示的意义说法正确的选项是()a) 从persons集合中掏出第一个年龄>20的Person对象b) 从persons集合中掏出所有年龄>20的Person对象子集c) 从persons集合中掏出最后一个年龄>20的Person对象d) 该代码不符合OGNL的语法40.假设在某JSP页面中存在”<s:property>”代码,那么以下说法正确的选项是()a) 编译JSP页面时会显现错误b) 编译JSP页面时可不能显现错误,但页面可不能显示任何内容c) 该代码用于输出位于ValueStack(值栈)栈顶的对象d) 以上说法都不正确41.struts2默许的处置结果类型是()a) dispatcherb) redirectc) chaind) 以上说法都不正确42.以下选项中,关于Struts2配置文件说法正确的选项是()a) 必需置于WEB-INF/classes目录下b) 必需为c) 配置Action时必需配置包信息d) 利用<forward>元素配置转发43.以下选项中,关于Struts2的Action说法正确的选项是()【选择二项】a) struts2会为每一个请求创建一个对应的Action实例b) struts2在请求处置进程中,只有一个Action实例c) struts2通过属性来封装用户请求参数d) 在struts2中概念的属性都用于封装用户请求参数44.struts2中动态方式挪用的格式为()a)b) ActionName!c)d) ActionName!问答题:MVC是什么含义?。
软件开发框架(J2EE)Struts 2拦截器习题与答案
1.以下属于struts2的控制器组件是()。
A.ActionB.ActionFormC.ActionServletD.dispatchAction2.以下属于struts2的体系结构的是()。
A.struts2控制器组件B.struts2配置文件C.FilterDispathcerD.Action3.以下属于struts2配置文件中的配置元素是()。
A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于struts1和struts2对比的说法正确的是()。
A.Struts1要求Action类继承Struts1框架中的Action父类,Struts2中则不一定需要继承,可以是POJO类B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的C.struts1和struts2中都使用ActionForm对象封装用户的请求数据D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的是()。
A.每个Action对象实例拥有一个ValueStack对象B.每个Action对象实例拥有多个ValueStack对象C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中D.ValueStack会在请求开始时被创建,请求结束时消亡6.关于struts2配置文件说法正确的是()。
A.必须在WEB-INF/classes目录下B.名字必须为struts.xmlC.配置Action时,必须配置包信息D.使用<forward>元素配置转发7.在struts2配置中用()元素来配置常量。
B.<constants>C.<constant>D.<constant-mapping>8.关于struts2包的说法正确的是()。
(完整word版)J2EE考试复习试题_struts2_spring_hibernate(答案整合完毕)
一、填空:1.Struts 2框架由__webWork______和___xWork_框架发展而来。
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。
其特点是:1、基于一个简单的接口就可以进行灵活且可自定义的配置;2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;3、整个框架通过类型转换和使用OGNL的action属性验证来构建;4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
Xwork和WebWork的关系WebWork2 被构建在XWork之上,以XWork为基础。
通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
xwork和Webwork的交互图2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。
4.Struts 2中的控制器类是一个普通的_POJO_。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___ <taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location></taglib> ________。
SSH开发实战教程(Spring+Struts2+Hibernate)-习题参考答案 (3)
1.一对多关联怎么实现?(1)首先数据库方面,需要在“多方”数据表中增加一个外键,用来指向“一方”的数据表主键(2)实体类方面,假如是一个A类是一方,B类是多方,需要在A类以Set集合的方式引入B 类型的对象,同时在B类中定义A类类型的属性a(3)映射文件方面,”一方”需要使用<set>标签,类似下面的代码:<set name="students"><key column="classno"></key><one-to-many class="com.lifeng.entity.Student"/></set>多方使用<many-to-one>标签,类似如下代码所示:<many-to-one name="classes" class="com.lifeng.entity.Classes"column="classno"></many-to-one>(4)测试类方面,一方与多方互相set对方.实现双向关联2.多对多关联怎么实现?(1)首先数据库方面,新建一个中间表,然后两个“多方”数据表中增加一个外键,用来指向“中间表”(2)实体类方面,假如两个实体类均需要以Set集合的方式引入对方对象(3)映射文件方面,都需要使用<set>标签,类似下面的代码:<!-- 多对对关系映射 --><set name="courses" table="studentcourse"><key column="studentid"></key><many-to-many class="com.lifeng.entity.Course"column="courseid"></many-to-many></set>(4)测试类方面,其中一个Set集合添加另一方的若干个对象3.反转操作的原理?关联关系默认情况下两端都可控制,两端均发出SQL语句,这样就会造成多余或重复的SQL 操作,可能导致重复数据或降低了系统的性能。
Java开源架构技术学习重点(部分答案版)(1)
第一章 Strut2框架技术的入门1、Struts2的是怎么产生的?Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并,全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
因此Struts2和Struts 1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
2、Struts2的设计模式是什么?采用这种设计模式有什么好处?MVC模式MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论选择哪种语言,无论应用多复杂,它都能为理解分析应用模型提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提供规范的依据。
1. 模型(Model)Model 部分包括业务逻辑层和数据库访问层。
在Java Web 应用程序中,业务逻辑层一般由JavaBean或EJB构建。
Model 部分就是业务流程或状态的处理以及业务规则的制定。
业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的组件。
MVC并没有提供模型的设计方法,而只提供给用户应该组织管理这些模型,以便于模型的重构和提高重用性。
2. 视图(View)在Java Web 应用程序中,View 部分一般用JSP 和HTML 构建,也可以是XHTML、XML、Applet和JavaScript。
客户在View 部分提交请求,在业务逻辑层处理后,把处理结果又返回给View部分显示出来。
因此,View部分也是Java Web应程序的用户界面。
一个Web项目可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理以及响应用户的请求,而不包括在视图上的业务流程的处理。
J2EE 框架第2阶段培训结课后的综合考试题(第1部分)试题答案
1.1J2EE 框架第2阶段培训结课后的综合考试题(第1部分)试题答案1、选择题(每题1分,并且每题为单选,共10分)(1)假设在名称为helloapp的Web应用中有一个hello.jsp,它的文件路径如下:%CATALINA_HOME%/webapps/helloapp/hello/hello.jsp,那么在浏览器端访问hello.jsp 的URL是什么?(A) http://localhost:8080/hello.jsp(B) http://localhost:8080/helloapp/hello.jsp(C) http://localhost:8080/helloapp/hello/hello.jsp(D) http://localhost/helloapp/hello/hello.jsp(2)假设在helloapp应用中有一个HelloServlet类,它位于org.javathinker包下,那么这个类的class文件应该放在什么目录下?(A) helloapp/HelloServlet.class(B) helloapp/WEB-INF/HelloServlet.class(C) helloapp/WEB-INF/classes/HelloServlet.class(D) helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class(3)假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下: <servlet><servlet-name> HelloServlet </servlet-name><servlet-class>org.javathinker.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name> HelloServlet </servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>那么在浏览器端访问HelloServlet的URL是什么?(A) http://localhost:8080/HelloServlet(B) http://localhost:8080/helloapp/HelloServlet(C) http://localhost:8080/helloapp/org/javathinker/hello(D) http://localhost:8080/helloapp/hello(4)HttpServletRequest对象是由谁创建的?(A)由Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个HttpServletRequest对象(B)由JavaWeb应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP 请求时,先创建HttpServletRequest对象(C)由JavaWeb应用程序负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletRequest对象(D)由Servlet容器负责创建,只对第一个HTTP请求,Servlet容器才会创建出一个HttpServletRequest对象(5)欲从HTTP请求中获得用户的请求参数值,应该调用下面的哪个方法?(A)调用HttpServletRequest对象的getAttribute()方法(B)调用ServletContext对象的getAttribute()方法(C)调用HttpServletRequest对象的getParameter()方法(D)调用HttpServletRequest对象的getAttribute()方法(6)ServletContext对象是由谁创建的?(A)由Servlet容器负责创建,对于每个HTTP请求,Servlet容器都会创建一个ServletContext对象(B)由JavaWeb应用本身负责为自己创建一个ServletContext对象(C)由Servlet容器负责创建,对于每个JavaWeb应用,在启动时,Servlet容器都会创建一个ServletContext对象(D)由Servlet容器负责创建,只对第一个HTTP请求,Servlet容器才会创建一个ServletContext对象(7)jspForward1.jsp要把请求转发给jspForward2.jsp,应该在jspForward1.jsp中如何实现?(A) <a href="jspForward2.jsp">jspForward2.jsp </a>(B) <jsp:forward page="jspForward2.jsp" >(C) <a href="jspForward1.jsp">jspForward1.jsp </a>(D) <jsp:forward page="jspForward1.jsp" >(8)下面哪个说法是正确的?(A) 对于每个要求访问maillogin.jsp的HTTP请求,Servlet容器都会创建一个HttpSession对象(B)每个HttpSession对象都有唯一的ID。
struts2问答和答案
负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径
不带后缀或者后缀以.action结尾,这时请求将被转入struts2框架处理,否则struts2框架将略过该请求的处理。
ServletContext servletContext = ServletActionContext.getServletContext();
方案二:
类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,
所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
1)在软件设计上Struts2的应用可以不依赖于Servlet API和struts API。 解耦合
2)拦截器,实现如参数拦截注入等功能;
3)多种表现层技术,如:JSP、freeMarker、Velocity等;
4)Struts2的输入校验可以对指定某个方法进行校验;
2)过滤器是拦截用户请求的,范围明显比拦截器大的多。 可以拦截静态资源html,jsp等页面
14请你写出struts2中至少5个的默认拦截器?
fileUpload 提供文件上传功能
i18n 记录用户选择的locale
Struts2+Spring+Hibernate搭建详解(包含代码)-13页word资料
Struts2+Spring+Hibernate搭建全解!Struts2+Spring+Hibernate是J2EE的最新流行框架。
本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。
给一些搭建尚存问题的朋友提供帮助。
我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。
目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。
功能都能很顺利的实现。
现在分享部分源码,来说明一些注意事项。
以下是部分搭建过程及源码:1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。
2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。
3.修改applicationContext.xml文件中<property name="mappingResources">元素的内容。
4.编写DAO接口和实现类。
5.修改applicationContext.xml文件,增加对Dao实现类的配置。
6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。
7.增加struts2相应类库,增加struts2与spring的配置jar包。
8.拷贝struts.xml文件到src根目录下,再修改struts.xml文件,进行常量配置。
9.修改web.xml文件,配置Spring监听器,和上下文变量。
并增加OpenSessionInViewFilter的设置。
10.写入action类。
11.配置struts.xml文件。
Struts2企业开发实践教程课后练习答案-第一章
试验目的:•熟悉S t r u t s 2框架的基本组成。
•掌握S t r u t s 2应用的配置基础。
试验大纲:•掌握S t r u t s 2的引入和配置。
•掌握A c t i o n的编写和配置。
•掌握A c t i o n的访问。
试验任务:•创建办公自动化J a v a W e b项目o a w e b 。
•配置S t r u t s 2框架( 引入J A R, 修改w e b . x m l ) 。
•创建S t r u t s的配置文件s t r u t s . x m l 。
•创建用户增加页面“/ u s e r / a d d . j s p ”,显示的表单和表单元素如表1 - 3所示。
表1 - 3 表单及表单元素表单表单元素账号文本框密码密码框姓名文本框简介文本域提交按钮•创建用户增加处理A c t i o n “ a c t i o n . U s e r A d d A c t i o n ”, 编写 A c t i o n处理方法e x e c u t e ( ) , 并在自己的配置文件中配置p a c k a g e 、 a c t i o n和r e s u l t( 1 )取得输入的用户信息。
( 2 )如果账号、密码、姓名任何一个为空, 则自动跳转到增加页面。
2 1( 3 )如果账号、密码、姓名都不为空, 则直接在A c t i o n 中连接数据库, 将用户信息增加到用户表中, 数据库和用户表自己确定。
( 4 )增加用户成功后自动跳转到用户主页“/ u s e r / m a i n . j s p ”。
( 5 )如果增加失败, 自动跳转到用户增加页面“/ u s e r / a d d . j s p ”。
•编写用户主页“/ u s e r / m a i n . j s p ”。
显示的“增加新用户成功! 继续增加新用户”信息中“增加新用户”为超链接, 单击后可自动跳转到用户增加页面。
S2SH面试题专家总结-(必过)
Struts2部分1.说明Struts2框架的工作原理。
解析掌握一个框架,首先必须了解这个框架的工作原理,企业非常关注应聘者对常用框架的工作原理的理解程度。
参考答案(1)客户端向服务器端提交请求,容器初始化HttpServletRequest请求对象。
(2)请求对象被一系列的Servlet过滤器过滤,Struts2中的过滤器有三种。
(3)FilterDispatcher过滤器调用ActionMapper,决定该请求是否需要调用某个Action。
(4)如果请求需要调用某个Action,ActionMapper将通知FilterDispatcher过滤器把请求的对象交给ActionProxy来处理。
(5)ActionProxy通过Configuration Manager 解析框架的配置文件struts.xml,找到需要调用的Action类。
(6)ActionProxy创建一个ActionInvocation实例。
(7)ActionInvocation实例使用命令模式回调Action中的execute()方法,Action调用业务逻辑类完成业务逻辑处理。
在调用Action的前后,将调用该Action实际的相关拦截器(Interceptor)。
(8)Action执行完毕,ActionInvocation根据struts.xml中的配置招待相应的返回结果(成为Result)。
2.Struts2和Struts1有什么区别?解析Struts2和Struts1在名字上看是版本升级问题,实际上必不是这样。
Struts2是从另外一个优秀的框架WebWork的基础上发展起来的,与Struts1本质上没有太多的联系。
参考答案Struts1最初是Apache Jakarta项目的一部分,后来作为一个开源的MVC框架存在。
Struts1曾经被很多Web应用采用,作为构建MVC的基础构架使用。
Struts1最大的特点是提供了JSP标记库以及页面导航,Struts2是从WebWork框架上发展起来的,与Struts1没有直接关系。
软件开发框架(J2EE)Hibernate映射与检索习题与答案
一、单选题1.下面关于Hibernate的说法,错误的是()。
A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术D、使用Hibernate可以简化持久化层的编码2.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()。
A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false3.下面一对多关联的配置中,存在哪些错误()。
<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A、cascade属性不可设置为trueB、inverse属性不可以设置为falseC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置4.下面创建Criteria对象的语句中正确的是()。
A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);5.下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()。
struts2hibernate架构技术教程课后参考答案
第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);(2)控制器接受到用户请求后根据用户的具体需求,调用相应的JavaBean或者EJB(M部分)来进行处理用户的请求;(3)控制器调用M处理完数据后,根据处理结果进行下一步的调转,如跳转到另外一个页面或者其他Servlet。
2.简述Struts2的工作原理。
答:Struts2中使用拦截器来处理用户请求,从而允许用户的业务控制器Action与Servlet分离。
用户请求提交后经过多个拦截器拦截后交给核心控制器FilterDispatcher处理,核心控制器读取配置文件struts.xml,根据配置文件的信息指定某一个业务控制器Action(POJO类)来处理用户数据,业务控制器调用某个业务组件进行处理,在处理的过程中可以调用其他模型组件共同完成数据的处理。
Action处理完后会返回给核心控制器FilterDispatcher一个处理结果,核心控制器根据返回的处理结果读取配置文件struts.xml,根据配置文件中的配置,决定下一步跳转到哪一个页面。
一个客户请求在Struts2框架中处理的过程大概有以下几个步骤:(1)客户提交请求到服务器;(2)请求被提交到一系列的过滤器过滤后最后到FilterDispatcher;FilterDispatcher是核心控制器,是基于Struts2中MVC模式的控制器部分;(3)FilterDispatcher读取配置文件struts.xml,根据配置信息调用某个Action来处理客户请求;(4)Action执行完毕,返回执行结果,根据struts.xml的配置找到对应的返回结果。
J2EE企业级架构试题+答案
一、选择题1、以下哪些框架属于ORMapping框架技术(C)(常见的ORM框架包括Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等)a)Struts b)Spring c)Hibernate d)MyBATIS2、下面针对Hibernate框架描述错误的是(D)a)Hibernate框架是一个ORMapping框架,可以完成对象与表之间的映射关系b)Hibernate的映射关系只能由XML来完成c)Hibernate框架中用来作为数据库连接操作的核心对象是Sessiond)Hibernate中使用HQL语句可以完成针对数据的添加,修改,删除和查询功能3、以下针对Struts2框架描述错误的是(C)a)Struts2框架中接收参数是在Action类中完成的。
b)编写Struts2的Action类必须继承ActionSupport类c)Struts2的分发操作只能使用!来完成d)Struts2框架存在重大漏洞,在2.3以后的版本中才被修复4、以下框架或技术中与Struts2功能类似的框架是(D)a)Hibernate b)JDBC c)JSP/Servlet d)Spring MVC5、以下针对Spring框架描述正确的是(D)a)Spring框架是一个单独使用的框架,不需要结合其他框架技术来应用b)SpringMVC是前端框架,功能类似Struts框架c)SpringMVC需要编写xml配置文件来对Action类进行配置,自己编写的Action类必须继承ActionSupport类d)Spring框架结合Hibernate开发时,需要保留hibernate.cfg.xml配置文件,并在里面配置数据库连接相关的配置,由Hibernate来管理连接的关闭和事务处理。
6、以下关于IoC理解正确的是(C)a)控制反转b)一定要用接口c)通过<ref>来设置注入d)通过<value>来设置注入7、对Hibernate的支持主要用到了Spring的哪个模块?(C)a)Spring Core b)Spring IoC c)Spring ORMapping d)Spring Web MVC8、以下哪个不属于Hibernate中Session的方法?(D)a)save() b)delete() c)update() d)open()二、简答题1、列出Hibernate中常用的主键生成方式,并说明他们的作用(至少4种)1)assigned:通过程序添加。
Struts2概述习题答案
Bbb w[]\SSH企业级应用开发第二章 Struts2概述习题一、struts2框架的核心类库是()A.xwork-core-2.3.15.jarB.ognl-3.0.6.jarC.freemarker-2.3.19.jarD.struts-core-2.3.15.jar二、在struts2中进行数据校验,通过()标签显示字段错误信息A.<s:text>B.<s:property>C.<s:form>D.<s:fielderror>三、全局视图是通过()标记来定义的A.<result>B.<global-result>C.<action>D.<interceptor>四、下列不属于struts2的动作类的常量返回值的是()A.successB.inputC.neverD.login五、以下不属于struts2动作执行的结果类型的是()A.actionB.redirectC.redirectActionD.dispatcher六、控制器需要在()配置文件中进行配置A.web.xmlB.struts.xmlC.struts2.xmlD.webwork.xml七、在struts.xml文件中,假如有一个package中没有配置namespace,那么在其中配置一个name为login的Action,它的result配置为<result>/login.jsp</result>,已知在此配置文件中还有另一个namespace为user的package其中也有一个name为login的Action,它的result配置为<result>/loginUser.jsp</result>,那么在以下什么情况下能访问到login.jsp()A.根路径/loginB.根路径/user/loginC.根路径/login/userD.根路径/abc/login九、struts2的主要核心功能是由()实现A.过滤器B.拦截器C.类型转换器D.配置文件十、下列不属于struts2标签的是()A.<s:textfield>B.<s:textarea>C.<s:submit>D.<select>十一、struts2中使用()封装用户请求参数,使用户无需手动写代码去作用域中取参数的值A.ServletB.FormC.ActionD.ActionForm十二、struts2中允许通过()标签配置元素将一个配置文件分解成多个配置文件。
SSH开发实战教程(Spring+Struts2+Hibernate)-习题参考答案 (8)
第5章Struts2入门1.struts2如何遍历数据与集合?<s:iterator>标签用来对集合或数组进行迭代遍历迭代数组的示例代码如下(假设数组是String[] seasons):<s:iterator value="seasons" ><s:property /></s:iterator>【注意】<s:property>标签无须value属性。
迭代集合示例如下(假设集合是List<Double> scores):<s:iterator value="scores" ><s:property /></s:iterator>迭代集合示例如下(假设集合是List<Student> students):<s:iterator value="students" >学生编号:<s:property value="id"/><br/>学生姓名:<s:property value="studentName"/><br/>性别:<s:property value="gender"/><br/></s:iterator>其中id,studentName,gender是实体类Student的属性。
2.如何使用checkboxlist标签展示后台数据?<s:checkboxlist>标签用于一次性生成一个或多个复选框,编译运行后会产生一组<input type="checkbox"/>HTML标签,示例如下:<s:checkboxlist name="myroles" list="roles" label="角色" listKey="roleId" listValue="roleName" vaule="myroles"/>list表示要显示的集合元素,可以是键值对的Map格式,labelposition属性表示将label属性的文字内容显示在标签左侧,如果取值为”right”则显示到右侧。
SSH开发实战教程(Spring+Struts2+Hibernate)-习题参考答案 (7)
第5章Struts2入门1.拦截器的工作方式是怎样的?拦截器在某一个 Action执行前后进行拦截,这时Action先不执行,而是优先执行拦截器的interceptor方法,该方法中再通过invocation.invoke()语句放行之后才会执行Action。
Struts2拦截器以链式执行,若该Action配置了多个拦截器,第一个拦截器放行后会进入第二个拦截器,依此类推,这样直到最后一个拦截器放行后才会执行目标Action2.拦截器有哪些种类?拦截器分为内建拦截器(内置拦截器)和自定义拦截器两种。
Struts2内置拦截器数量很多,详情请参阅有关文档,这些拦截器实现了很多核心的struts功能。
不同版本的struts栏截器的数量不一样。
版本越新,提供的内建拦截器越多,功能越强大,当前这个版本一共有35个内建拦截器。
但我们一般情况下无须自行配置引用这些大量的内建拦截器,struts框架已经帮我们设计与组合好了一个由内建拦截器组成了的默认拦截器栈defaultStack,这个默认拦截器栈满足了我们大部分的Web 程序需求,只要将struts.xml配置文件的包package设置为继承struts-default包,就相当于引用了struts-default包中定义的默认拦截器栈defaultStack,它已经包含了大量的内建拦截器,否则需要另行自定义拦截器。
3.拦截器的返回值怎么处理?拦截器的返回值与Action一致,常见的返回值有Action.SUCCESS,Action.LOGIN等,拦截器的返回值同样由struts.xml配置文件进行匹配重定向或转发到目标页面。
拦截器代码中的return invocation.invoke()其实也是调用了目标Action的返回值。
所以拦截器与Action的返回值是统一处理的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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。