撩课-Java每天5道面试题第19天
126.Struts2中的阻拦器有什么用?列举框架提供的阻拦器名称?
1)阻拦器是struts2核心组成部分,它提供了一种机制,使得开发者可以定义一个特定的功能板块,这个板块会在Action执行之前或者者之后执行也可以在Action执行之前阻止Action执行。 2)常用的阻拦器有: chain:在不同请求之间将请求参数在不同名字件转换,请求内容不变 fileUpload:提供文件上传。 ?i18n:记录客户选择的区域环境 logger:输出Action的名字 params:将请求中的参数设置到Action中去。127.Struts2有哪些优点?
1)在软件设计上Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计属于无侵入式设计; 2)阻拦器,实现如参数阻拦注入等功能; 3)类型转换器,可以把特殊的请求参数转换成需要的类型; 4)多种体现层技术,如:JSP、freeMarker、Velocity等; 5)Struts2的输入校验可以对指定某个方法进行校验; 6)提供了全局范围、包范围和Action范围的国际化资源文件管理实现 7) 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。有丰富的tag可以用,大提高了开发效率。(简要)128.ActionContext和ValueStack什么时候创立?能否是线程安全的?
明确:动作类是多例的,每次动作访问,动作类都会实例化。所以是线程安全的。与Struts1的区别是,struts1的动作类是单例的。在每次动作执行前,核心控制器StrutsPrepareAndExecuteFilter都会创立一个ActionContext和ValueStack对象。且每次动作访问都会创立。 这两个对象存储了整个动作访问期间用到的数据。并且把数据绑定到了线程局部变量ThreadLocal上了。所以是线程安全的。129.一个请求在Struts2框架中的解决大概分为几个步骤?
1) 用户端初始化一个指向Servlet容器(例如Tomcat)的请求2 )这个请求经过一系列的过滤器Filter这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其余框架的集成很有帮助,例如:SiteMesh Plugin)3 )接着FilterDispatcher被调用,FilterDispatcher讯问ActionMapper来决定这个请能否需要调用某个Action4 )假如ActionMapper决定需要调用某个Action,FilterDispatcher把请求的解决交给ActionProxy5 )ActionProxy通过Configuration Manager讯问框架的配置文件,找到需要调用的Action类6 )ActionProxy创立一个ActionInvocation的实例。7 )ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关阻拦器(Intercepter)的调用。 8 )一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是一个需要被表示的JSP或者者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper130.详情一下Struts的ActionServlet类
ActionServlet继承自javax.servlet.http.HttpServlet类,其在Struts framework中扮演的角色是中心控制器。它提供一个中心位置来解决一律的终端请求。控制器ActionServlet主要负责将HTTP的用户请求信息组装后,根据配置文件的指定形容,转发到适当的解决器。按照Servelt的标准,所有得Servlet必需在web配置文件(web.xml)公告。同样,ActoinServlet必需在Web Application配置文件(web.xml)中形容当客户向服务器端提交请求的时候,实际上信息是首先发送到控制器ActionServlet,一旦控制器取得了请求,其就会将请求信息传交给少量辅助类(help classes)解决。这些辅助类知道如何去解决与请求信息所对应的业务操作。在Struts中,这个辅助类就是org.apache.struts.action.Action。通常开发者需要自己继承Aciton类,从而实现自己的Action实例。说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 撩课-Java每天5道面试题第19天
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 撩课-Java每天5道面试题第19天