填空:1.Struts 2以_过滤器_为核心,采用_矜截器_的机制来处理用户的请求。
2.构逮Struts 2应用的最基础的几个类库是_struts2-core_、_commons-logging_、_xwork-core_^ _freamarker _____ 以及_ognl_。
3.Struts 2屮的控制器类是一个普通的_POjO_。
4.如果要在jSP页面屮使川Struts 2提供的标签库,酋先必须在页面屮使川taglib编译指令导入标签库•,其中taglib 编译指令力_<%@ taglib prefix=”s” uri=”strut-tags”%> _________ 。
5 .在Struts 2表华标签序•中,表単标签为__ <s:form/> _____ 。
6.ActionSupport 类实现了_action __________ 接U和_ validateable ________ 等接UI。
7.通过控制器类屮的 __ validate() ______ 方法来输出校验错误信息。
8.在Hibernate XML影射文件中描述主键生成机制,.其属性描述了主键的生成策略,至少写出三种策略名increment 、native 、uuid 。
9.在Hibernate中级联操作的属性值至少写出三个____________________ none ______ 、_____ s ave-update ______ 、__ all ______ o10 Hibernate 的会ffi接口是____ Session 接口_____ ,它山接口 _SessionFactory 接口_创建;Hibernate处理事务的接口是______ Transaction接口 _______ :封妓HQL的接口足_____ C riteria 接口_____ 011. Struts2框架山 _____ Struts ______ 和_____ WebWork _____ 框架发展而来。
12.Struts2屮的控制器类是一个普通的____ C lass _______ 。
13.注入资源的注释是 _ @ Resource ____1、简述什么是MVC?答:MVC即模型-视图-控制器.MVC是一种设计模成,它强制把应W程序的输入处理和输出分开.视图是川户看到并与之交互的界面。
视图向川户显示相关的数据,并能接受用户的输入,但是它外不进行任何实际的业务处理。
模型是应用程序的主体部分。
模型表示业务数裾和业务逻辑。
控制器接受用广的输入并凋用模型和视I冬I 去完成用户的需求2、用自己的诂简要阐述的框架山哪儿部分组成,struts2的执行流程是怎样的?答:Struts 2框架木身大致可以分为3个部分:核心控制器FilterDispatcher、业务在控制器Action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是Struts 2框架的蕪础,含了框架内部的投制流程和处理机制。
业务控制器Action 和业务逻辑组件是需要用户來自己实现的。
川户在开发Action和、Ik务逻辑组件的同吋,还耑要编写相关的配S文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程与WebWork框恕基木相同,所以说Struts 2 M WebWork的升级版本。
基本简要流程如下:1、客户端浏览器发出HTTP请求。
2、根据web. xml配置,该请求被FilterDispatcher接收。
3、根据struts, xml配置,找到需要调用的Action类和方'法,并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts, xral中的配置找到对应的返回结果result,并跳转到相应页刖。
6、返回HTTP响应到客户端浏览器。
3、struts2的web思.需要配置什么?〈filter〉<!-配置Struts2核心Filter的名字--><filter-name>struts2</filter-name><!--配置Struts2核心Filter的实现类-><filter-class>org. apache. struts2 . dispatcher, ng. filter. Strut sPrepare AndExecuteFilter</f liter-class〉</filter><!-配置Filter拦截的URL--〉<filter-mapping><!-配置Struts2的核心FilterDispatcher拦截所有用户请求--><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>4、输出值的strtus标签、循环的struts标签、判断的strtuts标签分别是什么?<s:property〉、<s:iterator>、<s:ifx/s:if> <s:elsex/s:else><s:elseifx/s:elseif>5、要调用struts标签需要异入什么?<%@taglib ud二"/struts-tags" prefixes" %〉6.列举struts2 web /.、V用屮常用的4个.jar文件。
commons-logging-1. 0. 4. jarfreemarker-2. 3. 8. jarstruts2-core-2. 0. 14. jarognl-2. 6. 11. jarxwork-2. 0. 7. jar7.简述servlet的生命周期。
Servlet被服务器实例化后,容器运行其initO方法,请求到达时运行其service 0 方法,serviceO方法ft动派遣运行与请求对应的doGet、doPost方法等,当服务器决定将实例销毁的吋候调川其destroy方法一、编程题1、给出以下Action的Struts. XML配置文件描述(注:请求为Test/Hel 1 o. acti on,返回页面为WebRoot根目录下的success, jsp) package com. yourcompany. action; public class HelloWorldAction {private String message; public String getMcssage(){return message;>public void setMessage(String message){this, message = message;}public String onPlay() throws Exception {System, out. println(this. getMessage());return ''success'public String execute() throws ExceptionSystem, out. println(this. get.MessageO); return/z success z,;参考答案〈struts〉〈package name= n default n namespace:〃/〃extends:"struts-default"〉<action name= u Hello"class= n com.yourcompany.action.HelloWorldAction u>〈result name= 11 success u>/success . j sp</result></action>〈/package〉〈/struts〉〈package name=,,test,1 extends=,,struts-default,1 namespace=n/Test n>〈action name=,,Hello_onPlay.go H class="com.yourcompany.action.HelloWorldAction nmethod="onPlay"〉cresult name=H suceess,,x/result></actionx/package>2、在Action类UserAction屮存在对象诚件User user,其中User类屮存在String userName 属性,UserAction的部分代码如下所示,请给出使用OGNL语言从valueStack, Session, Request三种作用域中获得userName属性对应value的代码答:public class UserAction{ private User user;//getter, setter 方法略public String execute() {ActionContext. getContext(). getSessionO. put( “userName”,user. getUserNa me());}}参考答案:从valueStack 取值:<s :property value= n user. userName"/〉从Session取值:<s :property value= "^session. userName11 />从Request取值: <s : property value= 91 ^request. user. userName91 />3、请编写一个栏截器,该栏截器可以获得川户输入的川户名这个数据,业务逻辑为逐个判断用户名中是否包含“你”,“我”,“他”三个数据,如果包含则直接返回输入页側,如果不乜含则运行至PersonAction。
(除代码外,要给出拦截器和Action的配置文件)提示:判断一个字符申是否包含指定的字符串,可以使用字符串对象的contains方法。
参考答案:struts, xml配置文件主要内容:<package name= U defaul t n namespace:〃/〃extends= u struts-default n> <interceptors>〈interceptor name= n personlcpt u class= 11com. test. icpt. Personlnterceptor n></intercept or ></interceptors><default-interceptor-refname= npersonlcpt n x/def ault- intercept or-ref >〈action name= u person u class="com.test.action.PersonAction u> 〈result name="index n>/index.j sp</result>〈result name= n success">/success.jsp</result></action></package>拦截器类:package com.test.icpt;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.Actionlnvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class Personlnterceptor extends AbstractInterceptor{◎Overridepublic String intercept(Actionlnvocation invocation) throws Exception { ActionContext ac=invocation.getlnvocationContext();Map parameters=ac.getParameters();String[] params=(String[]) parameters.get(n username n);String username=params[0];if(username•contains(”你”)| | username•contains(n我")||username.contains("他M)〉{return "index";}elsePersonAction action=(PersonAction) invocation.getAction();action.setUsername(username); return invocation.invoke();5.请给岀Struts2验证框架叉于Email格式,年龄在1-100之间,提交非空的配置文件。