struts2面试问答题有哪些

发布时间:2022-09-29 15:18:27 作者:iii
来源:亿速云 阅读:105

本篇内容主要讲解“struts2面试问答题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“struts2面试问答题有哪些”吧!

1、描述Struts2的工作原理是怎样的?

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

2、Struts2有哪些优点?

答:(1)在软件设计上Struts2的应用可以不依赖于Servlet API和struts API,Struts2的这种设计属于无侵入式设计;(2)拦截器,实现如参数拦截注入等功能;(3)类型转换器,可以把特殊的请求参数转换成需要的类型;(4)多种表现层技术,如:JSP、freeMarker、Velocity等;(5)Struts2的输入校验可以对指定某个方法进行校验;(6)提供了全局范围、包范围和Action范围的国际化资源文件管理实现;(7)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现,有丰富的tag可以用,大大提高了开发效率。

3、在struts2中如何实现转发和重定向?

答:在struts.xml中配置type="redirect"(重定向);type="redirectAction"(重定向);type="dispatcher";type="chain";(请求转发)

4、Struts2中的type类型有哪些?

答:chain、redirec、,redirectAction、json、dispatcher。

5、struts2默认能解决get和post提交方式的乱码问题吗?

答:不能。struts.i18n.encoding=UTF-8属性值只能解析POST提交下的乱码问题。

6、拦截器和过滤器的区别有哪些?

答:(1)拦截器是基于java反射机制的,而过滤器是基于函数回调的;(2)过滤器依赖于servlet容器,而拦截器不依赖于servlet容器;(3)拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用;(4)拦截器可以访问Action上下文、值栈里的对象,而过滤器不能;(5)在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

7、ActionContext、ServletContext、pageContext的区别?

答:(1)ActionContext是当前的Action的上下文环境,通过ActionContext可以获取到request、session、ServletContext等与Action有关的对象的引用;(2)ServletContext是域对象,一个web应用中只有一个ServletContext,生命周期伴随整个web应用;(3)pageContext是JSP中的最重要的一个内置对象,可以通过pageContext获取其他域对象的应用,同时它是一个域对象,作用范围只针对当前页面,当前页面结束时,pageContext销毁,生命周期是JSP四个域对象中最小的。

8、Struts2中Action配置的注意事项有哪些?

答:需要注意的是(1)name包名称,在struts2的配置文件中,包名不能重复,name并不是真正包名,只是为了管理Action;(2)namespace和 的name属性,决定Action的访问路径 (以/开始 ) ;(3)extends继承哪个包,通常开发中继承struts-default包(struts-default包在 struts-default.xml 中定义 )。

9、Struts2的封装方式有哪些?

答:一是属性封装:(1)在action中设置成员变量,变量名与表单中的name属性值相同;(2)生成变量的set方法。

二是模型驱动(常用):(1)action实现ModeDriven接口;(2)在action 里创建实体类对象;(3)实现接口的getModel方法并返回所创建的对象。

三是表达式封装:(1)在action中声明实体类;(2)生成实体类的set和get方法;(3)在表单输入项的name属性值里面写表达式。

10、Action和拦截器线程安全吗?

答:Struts2的Action类是线程安全的,因为每个请求一个实例。Struts2的拦截器是单例,所以它不是线程安全的,我们需要仔细地实现它们,以避免与共享数据的任何问题。

11、Struts2的名称空间namespace 有什么用?

答:我们能使用名称空间基于功能分离我们的Action类,如admin user和客户等模块。

12、什么拦截器负责将请求参数映射到action类的java bean属性?

com.opensymphony.xwork2.interceptor.ParametersInterceptor 配置在struts-default包中,名称是"params"。这是basicStack和 defaultStack一部分。

13、简述Struts2工作流程

答:(1)客户端浏览器发出HTTP请求;(2)根据web.xml配置,该请求被FilterDispatcher接收;(3)根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton;(4)Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证;(5)Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面;(6)返回HTTP响应到客户端浏览器

14、拦截器的生命周期与工作过程?

答:(1)每个拦截器都是实现了Interceptor接口的java类;(2)init(): 该方法将在拦截器被创建后立即被调用, 它在拦截器的生命周期内只被调用一次. 可以在该方法中对相关资源进行必要的初始化;(3)intercept(ActionInvocation invocation): 每拦截一个动作请求, 该方法就会被调用一次;(4)destroy: 该方法将在拦截器被销毁之前被调用, 它在拦截器的生命周期内也只被调用一次;(5)struts2中有内置了18个拦截器。

15、Struts2中拦截器有哪些好处?

答:拦截器的一些好处是:拦截器在实现高度分离关注方面起着至关重要的作用。Struts2拦截器是可配置的,我们可以为我们想要的任何动作配置它。我们可以创建自己的自定义拦截器来执行一些常见任务,例如请求参数记录,身份验证等。这有助于我们在一个位置处理常见任务,从而降低维护成本。我们可以创建拦截器堆栈以用于不同的操作。

到此,相信大家对“struts2面试问答题有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 关于Python的面试问答题有哪些
  2. Salesforce面试问答题有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

struts2

上一篇:win10系统电脑热键如何修改

下一篇:win10任务栏频繁卡死怎么永久解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》