撩课-Java每天5道面试题第19天
126.Struts2中的拦截器有什么用?列举框架提供的拦截器名称?
)拦截器是struts2核心组成部分,
它提供了一种机制,使得开发者
可以定义一个特定的功能模块,
这个模块会在Action执行之前或者之后执行
也可以在Action执行之前阻止Action执行。 )常用的拦截器有: chain:在不同请求之间将请求参数在不同名字件转换,
请求内容不变 fileUpload:提供文件上传。 i18n:记录用户选择的区域环境 logger:输出Action的名字 params:将请求中的参数设置到Action中去。
127.Struts2有哪些优点?
)在软件设计上Struts2的应用
可以不依赖于Servlet API和struts API。
Struts2的这种设计属于无侵入式设计; )拦截器,
实现如参数拦截注入等功能; )类型转换器,
可以把特殊的请求参数转换成需要的类型; )多种表现层技术,
如:JSP、freeMarker、Velocity等; )Struts2的输入校验
可以对指定某个方法进行校验; )提供了全局范围、
包范围和Action范围的
国际化资源文件管理实现 ) 实现MVC模式,结构清晰,
使开发者只关注业务逻辑的实现。
有丰富的tag可以用,
大提高了开发效率。(简要)
128.ActionContext和ValueStack什么时候创建?是否是线程安全的?
明确:
动作类是多例的,
每次动作访问,
动作类都会实例化。
所以是线程安全的。
与Struts1的区别是,
struts1的动作类是单例的。 在每次动作执行前,
核心控制器StrutsPrepareAndExecuteFilter
都会创建一个ActionContext和ValueStack对象。
且每次动作访问都会创建。 这两个对象存储了整个动作
访问期间用到的数据。
并且把数据绑定到了线程局部变量
ThreadLocal上了。
所以是线程安全的。
129.一个请求在Struts2框架中的处理大概分为几个步骤?
) 客户端初始化一个
指向Servlet容器(例如Tomcat)的请求 )这个请求经过一系列的过滤器Filter
这些过滤器中有一个叫做
ActionContextCleanUp的可选过滤器,
这个过滤器对于Struts2和
其他框架的集成很有帮助,
例如:SiteMesh Plugin) )接着FilterDispatcher被调用,
FilterDispatcher询问ActionMapper
来决定这个请是否需要调用某个Action )如果ActionMapper决定需要调用某个Action,
FilterDispatcher把请求的处理交给ActionProxy )ActionProxy通过Configuration Manager
询问框架的配置文件,
找到需要调用的Action类 )ActionProxy创建一个ActionInvocation的实例。 )ActionInvocation实例使用命名模式来调用,
在调用Action的过程前后,
涉及到相关拦截器(Intercepter)的调用。 )一旦Action执行完毕,
ActionInvocation负责根据struts.xml中的配置
找到对应的返回结果。
返回结果通常是一个需要
被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2 框架中
继承的标签。
在这个过程中需要涉及到ActionMapper
130.介绍一下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实例。
撩课-Java每天5道面试题第19天的更多相关文章
- 撩课-Java每天5道面试题第13天
撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...
- 撩课-Java每天5道面试题第15天
撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...
- 撩课-Java每天5道面试题第10天
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...
- 撩课-Java每天5道面试题第9天
撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...
- 撩课-Java每天5道面试题第8天
撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...
- 撩课-Java每天10道面试题第7天
撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...
- 撩课-Java每天10道面试题第4天
撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...
- 撩课-Java每天5道面试题第17天
116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的 ...
- 撩课-Java每天5道面试题第24天
151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器( ...
随机推荐
- C# Winform右下角弹窗方式
[方法一] 第一步:winform项目创建完成后,添加一个窗口,命名为:Messages .(加上最开始的Form1,一共为两个窗口),双击主窗口进入后台代码 . 第二步:在Messages 窗口中添 ...
- 在windows10上创建ASP.NET mvc5+Memcached服务
感谢两位两位大佬: https://blog.csdn.net/l1028386804/article/details/61417166 https://www.cnblogs.com/running ...
- 小猴打架(luogu4430)(数论+生成树计数)
一开始森林里面有\(N\)只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友.每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友.经过\(N-1\)次打架之后,整个森林的小猴 ...
- abstract抽象
abstract:抽象 是用来修饰抽象类和抽象方法的 那么什么抽象,抽象有究竟有什么用呢?? 我们知道,“类”是某一类具有相同特征或行为的物事,是将这些物事特征向上抽取得来的:“父类”也是子类不断向上 ...
- Spring Boot中使用@Async实现异步调用
在Spring Boot中,我们只需要通过使用@Async注解就能简单的将原来的同步函数变为异步函数,为了让@Async注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsyn ...
- [Vuejs] webpack+vue-cli打包如何引用相对路径
默认情况下通过webpack+vuec-li打包的css.js等资源,路径都是绝对的,即static在根目录下,假如部署到带有文件夹目录的项目中,资源路径就会出错,如何解决. 1.修改资源引用相对路径 ...
- MySQL赋权
MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利.grant select ...
- Mysql压缩包版的安装方法详解
Mysql安装的时候可以有msi安装和zip解压缩两种安装方式.zip压缩包解压到目录,要使用它还需对它进行一定的配置.下面对Mysql压缩包版的安装方法进行详细的描述,要是此文有不正确的认识,希望大 ...
- PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)
不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解) 如用scott.scott_password进行登录,orcl是全局数据库 ...
- Word在转PDF的过程中如何创建标签快速方便阅读(图文详解)
不多说,直接上干货! 选择如下 成功! 欢迎大家,加入我的微信公众号:大数据躺过的坑 人工智能躺过的坑 同时,大家可以关注我的个人博客: http://www.cnbl ...