10道Struts2面试题

1.描述Struts2的工作原理

答:客户端发送请求--》请求经过一系列过滤器--》FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action --》FilterDispatcher把请求的处理交给ActionProxy--》通过ConfigurationManager询问Struts配置文件(Struts.xml),找到需要调用的Action类--》ActionProxy创建一个ActionInvocation的实例 --》调用Action--》执行完毕,返回结果

2.Struts2中的拦截器有什么用?列举框架提供的拦截器名称?(至少3种,可用中文名)

答:拦截器是struts2核心组成部分,它提供了一种机制,使得开发者可以定义一个特定的功能模块,这个模块会在Action执行之前或者之后执行,也可以在Action执行之前阻止Action执行。

常用的拦截器有:chain:在不同请求之间将请求参数在不同名字件转换,请求内容不变fileUpload:提供文件上传。

i18n:记录用户选择的区域环境   logger:输出Action的名字  params:将请求中的参数设置到Action中去。

3.​什么是OGNL,有什么用途?如何访问存放在session中叫user的对象的username属性

​答:OGNL是Object-Graph Navigation Language的缩写,也叫对象导航语言。它是Struts的一种功能强大的表达式语言

列如:访问session中的user对象的username属性:

注意的是:使用前需要在页面头部导入taglib prefix="s" uri="/struts-tags"

​4. 什么是国际化,struts2实现国际化的原理。

答:国际化是根据不同的国家和地区的语言文化的不同,所设计的适用于不同地区的编码格式。

实现方法:

首先在src目录下新建message_en.properties(英文);

页面获取国际化信息:

或者使用

原理:程序得到当前运行环境的国际/区域,语言环境并存放于Locale,ResourceBundle根据Locale中信息自动搜索对应的国际化资源文件并加载。

5.JSON的全称是什么?用JavaScript代码描述一个json数组,并进行解析。

答:JSON的全称是”JavaScript Object Notation”,它是一种独立于语言的轻量级数据交换格式。

比如:

[{

  "id":"1",

  "text":"所有班级",

  "Children":[

  {"id":"11",

  "text:"Y2T01"

}

]

}]

6. AJAX是什么? 描述ajax的原理

答:Ajax又叫异步刷新,(JavaScript和xml)

原理:

使用HttpRequest向服务器发送异步请求,服务器返回处理结果

7. 什么是反射?请用反射动态创建一个类的对象(写关键代码,其它可省略)

答:反射,程序运行时动态获取类型信息,完成对象创建,方法调用等。

例如:

Class myclass=Class.forNama("包名.类名");

Student stu=Factory.createInstance("stu1");

8. 在struts2中如何实现转发和重定向?

答:在struts.xml中配置type="redirect"(重定向)

type="redirectAction"(转发)

9. Struts2中的type类型有哪些?至少写4种

答:chain,redirect,redirectAction,json,dispatcher

10. Struts2有哪些优点?

答:实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。有丰富的tag可以用,大大提高了开发效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值