121.描述Struts2的工作原理

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

122.result的type属性中有哪几种结果类型?

一共10种:    

dispatcher          

struts默认的结果类型,
把控制权转发给应用程序里的
某个资源不能把控制权
转发给一个外部资源,
若需要把控制权重定向到
一个外部资源, 应该使用 redirect结果类型
redirect
把响应重定向到另一个资源(包括一个外部资源) redirectAction
把响应重定向到另一个 Action freemarker、
velocity、
chain、
httpheader、
xslt、
plainText、
stream

123.拦截器的生命周期与工作过程?

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

124.struts2如何完成文件的上传?

、JSP页面:  

)JSP页面的上传文件的组件:
<s: file name=”upload” />,
如果需要一次上传多个文件,
就必须使用多个 file 标签,
但它们的名字必须是相同的,
即: name=“xxx”的值必须一样; )必须把表单的enctype属性设置为:
multipart/form-data; )表单的方法必须为post,
因为post提交的数据在消息体中,
而无大小限制。 、对应的action: )在 Action 中新添加 个
和文件上传相关的属性; )如果是上传单个文件,
uploadImage属性的类型就是
java.io.File, 它代表被上传的文件,
第二个和第三个属性的类型是 String,
它们分别代表上传文 件的文件名和文件类型,
定义方式是分别是: jsp页面file组件的名称+ContentType,
jsp页面file组件的名称+FileName )如果上上传多个文件,
可以使用数组或 List

125.值栈ValueStack的原理与生命周期?

)ValueStack贯穿整个 Action 的生命周期,
保存在request域中,
所以ValueStack和request的生命周期一样。
当Struts2接受一个请求时,
会迅速创建ActionContext, ValueStack,action。
然后把action存放进ValueStack,
所以action的实例变量可以被OGNL访问。
请求来的时候,
action、ValueStack的生命开始,
请求结束,action、 ValueStack的生命结束; )action是多例的,和Servlet不一样,
Servelt是单例的; )每个action的都有一个对应的值栈,
值栈存放的数据类型是该action的实例,
以及该action中的实例变量,
Action对象默认保存在栈顶; )ValueStack本质上就是一个ArrayList; )关于ContextMap,
Struts 会把下面这些映射压入 ContextMap 中: parameters :
该 Map 中包含当前请求的请求参数 request :
该 Map 中包含当前 request 对象中的
所有属性 session
:该 Map 中包含当前 session 对象中的所有属性 application
:该 Map 中包含当前
application 对象中的所有属性 attr:该 Map 按如下顺序来检索某个属性:
request, session, application )使用OGNL访问值栈的内容时,
不需要#号,
而访问request、session、application、attr时,
需要加#号; )注意: Struts2中,
OGNL表达式需要配合Struts标签才可以使用。
如:<s:property value="name"/> )在struts2配置文件中引用ognl表达式 ,
引用值栈的值 ,此时使用的"$",而不是#或者%;

撩课-Java每天5道面试题第18天的更多相关文章

  1. 撩课-Java每天5道面试题第13天

    撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...

  2. 撩课-Java每天5道面试题第15天

    撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...

  3. 撩课-Java每天5道面试题第10天

    撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...

  4. 撩课-Java每天5道面试题第9天

    撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...

  5. 撩课-Java每天5道面试题第8天

    撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...

  6. 撩课-Java每天10道面试题第7天

    撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...

  7. 撩课-Java每天10道面试题第4天

    撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...

  8. 撩课-Java每天5道面试题第17天

    116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的 ...

  9. 撩课-Java每天5道面试题第24天

    151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器( ...

随机推荐

  1. P5282 【模板】快速阶乘算法(多项式运算+拉格朗日插值+倍增)

    题面 传送门 前置芝士 优化后的\(MTT\)(四次\(FFT\)) 题解 这里有多点求值的做法然而被\(shadowice\)巨巨吊起来打了一顿,所以来学一下倍增 成功同时拿到本题最优解和最劣解-- ...

  2. python学习笔记-练手实例

    1.题目:输出 9*9 乘法口诀表.     程序分析:分行与列考虑,共9行9列,i控制行,j控制列     代码: for i in range(1,10): print ('\r') for j ...

  3. Usboot V1.68版本

    V1.68版本,我的收藏之一 官方的介绍: 市面上现在大多数U盘都支持启动机器的功能,但是要制作启动型U盘,需要进入WIN98,现在很多人机器 上都没有98了吧,呵呵.为了做个启动盘,装一个98,多冤 ...

  4. [Objective-C语言教程]扩展(30)

    类扩展与类别有一些相似之处,但它只能添加到编译时具有源代码的类中(类与类扩展同时编译). 类扩展声明的方法是在原始类的实现块中实现的,因此不能在框架类上声明类扩展,例如Cocoa或Cocoa Touc ...

  5. VS 代码自动对齐快捷键

    全部代码代码自动对齐快捷键为 Ctrl + a(按后可松松手) + k(按后可松松手) + f

  6. 洛谷 P4774 / loj 2721 [NOI2018] 屠龙勇士 题解【同余】【exgcd】【CRT】

    推导过程存在漏洞+exCRT板子没打熟于是期望得分÷实际得分=∞? 题目描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 \(1\sim n​\) 顺序杀掉 \(n​\ ...

  7. 关于Java的权限修饰符(public,private,protected,默认friendly)

    以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...

  8. Python爬虫学习:Python内置的爬虫模块urllib库

    urllib库 urllib库是Python中一个最基本的网络请求的库.它可以模拟浏览器的行为发送请求(都是这样),从而获取返回的数据 urllib.request 在Python3的urllib库当 ...

  9. mp3转speex的一些研究(貌似不能播放,暂存着)

    思路是,先从mp3中提取pcm(raw原始数据),再将原始数据转成speex. 貌似不能播放,可能还存在其他问题,需要继续研究. 使用了两个类库NSpeex和NAudio using (var wav ...

  10. 《Algorithm算法》笔记:元素排序(2)——希尔排序

    <Algorithm算法>笔记:元素排序(2)——希尔排序 Algorithm算法笔记元素排序2希尔排序 希尔排序思想 为什么是插入排序 h的确定方法 希尔排序的特点 代码 有关排序的介绍 ...