聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> Struts2总复习

Struts2总复习

时间:2015-08-28 16:48:00    下载该word文档

0、搭建Struts程序的基本步骤,并写出步骤的关键代码?
1jar

2、加web.xml里的配置,过滤器,将所有的请求指定有Struts2来处理
3struts2.xml 请求配置文件
4action类。。。

1、 如何在不适用MyEclipse工具的情况下搭建Struts程序?

2、 Struts2的执行流程?

3、 Struts2配置文件中package标签有什么用?

4、 package标签中有哪些属性,并说明每个属性?

5、 列举Struts2获取web资源(requestsessionresponse等)的2种方式?

1、与servlerAPI解耦的方式

ActionContext.getContext().get****

获得的结果是一个MAP集合

2、与servletAPI耦合的方式

ServletActionContext.getContext().get***

获得的结果就是web资源对象

6、 Struts2配置文件中action标签的作用,及里面属性的使用?

action标签代表请求

7、 Struts2中的Action接口和ActionSupport类有什么作用?

1Action接口定义了常用的几个action返回值以及默认的action执行方法。

2ActionSupport类是struts2的默认执行类,该类实现了ActionValidateableValidationAwareTextProvider等接口,其实就是集成了struts2的许多功能。

8、 Struts2resutl标签的作用?

处理struts2的返回结果

9、 Struts2中结果类型有哪些?默认的结果类型是什么?

转发到jsp:默认的typedispatcher

转发打action: chain

重定向到jsp:redirect

重定向到action:redirectAction

使用转发和重定向传参的问题?

当使用转发的时候,action里的参数会保存在请求中

当使用重定向的时候,1、存在session里,2、在跳转路径中加参数

跳转路径是写在struts.xml里的result标签里。

那么就要通过ognl表达式来加参数了

index.jsp?id=${id} ${}不是EL表达式,但是语法一样,里面的id代表的是action里的属性

10、 什么是动态结果?如何配置动态结果

11、 什么是全局结果?如何配置Struts2的全局结果?

全局结果是所有action都可以使用的result

<global-results>

<result name="error">error.jspresult>

global-results>

11、Struts2验证是由哪个类的哪个方法完成的?

由ActionSupport类,该类又实现了Validateable、ValidationAware两个接口,validate()方法实现验证

12、Struts2中常用的常量?

<constant name="struts.ui.theme" value="simple"/>

<constant name="struts.custom.i18n.resources" value="message"/>

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<constant name="struts.i18n.encoding" value="utf-8"/>

<constant name="struts.configuration.xml.reload" value="true"/>

13Struts2中通配符的使用及动态方法的使用。举例说明。

1、通配符的使用 将请求的地址设置成带*号的

test*,*号代表任意单词

在配置文件中使用{1}来获取*号的内容

那么在设置class,与method属性的时候就可以使用{1}来进行替换。并在在result中也可以使用

<action name="test*" class="{1}Action" method="{1}">

<result>index{1}.jspresult>

action>

当请求地址为testlogin*的内容是login

那么调用的classloginAction

调用的方法为login

返回的页面是indexlogin.jsp

2、动态方法的使用

请求路径!方法名

例如:test!login

那么请求的地址为test,调用的方法是login

14、什么是拦截器?拦截器与过滤器的区别是什么?

拦截器与过滤器的区别

拦截器只能拦截Action,而过滤器能拦截所有

过滤器依赖Servlet,拦截器不用

Action的生命周期中,拦截器能被多次调用,而过滤器只能在容器初始化的时候被调用一次

拦截器可以访问Action上下文(ActionContext),以及值栈(VallueStack)里的对象。过滤器不能

15、请列举5Struts2自带的拦截器,并说明其意义

params 将请求的数据设置到action

staticparams 将配置文件中通过action元素的子元素param设置的参数设置到对应的action的属性中

servletConfig 将源于servletAPI的各种对象注入到action

fileupload 将文件和源数据从多种请求转换为常规请求

validation 执行数据验证

workflow 提供数据验证错误时执行的终止流程

exception 捕获异常

16、如何使用自定义拦截器?

使用自定义拦截器的话,首先自定义的拦截器类,extends AbstractInterceptor接口,接口需要实现3个方法,类似于过滤器,init()destory(),intercept()

intercept()方法来实现拦截的功能,该方法有个参数ActionInvocation,由这个参数可以获取action上下文及值栈的内容

当拦截功能完成后,由invocation.invoke()来实现进入下一个拦截器或者进入action,类似于过滤器的doFilter()

最后会将action的执行结果返回,return Actionresult

写完了拦截器类后要在struts.xml里配置拦截器

struts.xml添加配置

<interceptors>

<interceptor name="testa" class="com.interceptor.testIntercetor"/>

<interceptor name="testb" class="com.interceptor.myInterceptor"/>

<interceptor-stack name="test">

<interceptor-ref name="testa"/>

<interceptor-ref name="defaultStack">interceptor-ref>

interceptor-stack>

interceptors>

interceptor-ref name="">interceptor-ref>

17、Strtus2ActionContext类有什么用?

我们能通过ActionContext获取web资源、值栈

ActionContext本身其实就是个map集合

18、web-xml中如何配置欢迎首页是action请求?

在webroot文件夹下新建一个与action请求相同名字的文件,不用后缀名

跳转还是跳到jsp页面,但是在页面中直接继续跳转至Action,可以使用javascript或者使用jsp:froword标签

19、什么是值栈?

值栈:简单的说,就是存放action的堆栈

当 Struts 2接收到一个.action的请求后,会先建立Action类的对象实例,但并不会调用Action方法,而是先将Action类的相应属性放到 ValueStack对象的顶层节点(ValueStack对象相当于一个栈)。

20、列举常用的Struts2的表单标签及非表单标签?

Struts2自带了有很多标签分为:UI标签和非UI标签 ,UI标签就是常用的类似于HTML的标签,用来显示或者接收数据的。

非UI标签是用来处理逻辑的标签

在JSP页面中要使用这些标签的话需要导入struts的包

<%@taglib uri="/struts-tags" prefix="s" %>

使用struts自带的表单标签会自动给所有的表单加上表格标签,如果不需要的话,需要在配置文件里修改struts2的默认主题

常用的非UI标签

<s:set>s:set>

<s:if test="">s:if><s:else>s:else>

<s:iterator>s:iterator>

21、什么是OGNL

对象视图导航语言(OGNL),用来操作struts2里的对象。所有的struts2的标签里的value值都是默认使用ognl解析

22、OGNL使用详解。

使用ognl访问值栈顶端内容

访问值栈内容的话只需要使用对象的属性去访问

如果不是值栈顶端,那么需要通过下标去访问

例: 栈

那么访问A对象里的数可直接用A对象里的属性名访问。如果要获取B对象那么通过下标来访问[1].属性名

访问非值栈内容

如果要访问非值栈的内容,那么需要在表达式前加上#,

例: <s:property value="#request.对象名"/>

非值栈的内容包括:web资源对象,以及使用标签创建的对象,如set标签,<s:iterator>标签

都需要使用#号加对象名来访问

例:<s:set var="id" value="1"/>

访问:

免费下载 Word文档免费下载: Struts2总复习

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服