Struts相关问题

1.请简述Struts2和Struts1的区别和联系

2.Struts2如何实现MVC,与Spring MVC有什么不同

3.Struts2中页面如何向Action传参

4.OGNL表达式有那些用法,你熟悉其中哪几种

5.请简述Struts2中ValueStack组件运行原理

6.请简述Struts2中个组件的作用及调用顺序

7.获取Session的方式
ActionContext
ActionContext.getContext().getSession()
返回类型为Map<String,Object>
ServletActionContext
ServletActionContext.getRequest().getSession()
返回类型为HttpSession
SessionAware
让Action实现SessionAware接口
实现void setSession(Map<String,Object> session)方法,Struts会在实例化Action后调用
该方法,通过方法参数将Session对象注入进来
定义成员变量,接受注入 进来的Session对象

8.各种方法对比
返回类型对比
第1,3中方式,获取Session是Map<String,Object>类型,Struts2采用该类型的目的是简化Session对象
,而Session的存储结构和Map是一致的
第二种方式,获取Session是HttpSession,为了保持兼容性,Struts2提供了获取该类型的方式
获取方式对比
第1,2种方式,是我们主动的获取Session
第三种方式,是采用注入的方式自动注入Session,这种方式是被动的
推荐使用第3种方式
采用注入思想,更为灵活
面向接口编程,符合主流规范

9.什么是Result组件
Result是用于做输出的组件,用于向页面输出一些内容,转发,重定向可以理解为特殊方式的输出
每个Result实际上就是一个类,这些类实现了共同的接口Result
Struts预置了10种类型的Result,他们被定义在struts-default.xml中

10.dispatcher
用于转发的Result,可以请求转发给JSP
此中类型Result对应的类为ServletDispatcherResult
此类Result是Struts2默认的Result类型,该默认行为是定义Result时,通过default="true"指定的
在此之前,我们使用的Result都是这种默认的Result

11.stream
用于向页面输出二进制数据,此类型的Result,可以将二进制数据输出到请求发起端。
此种类型Result对应的类为StreamResult

12.redirectAction
用于将请求重定向给另外一个Action
此种类型Result对应的类为ServletActionRedirectResult

13.json
用于向页面输出json格式的数据,此中类型的Result,可以讲json字符串输出到请求发起端
此种类Result不是Struts2默认的Result,但是却是十分常用的类型

14.stream Result的作用
用于向页面输出二进制数据,此种类型的Result,可以将二进制数据输出到请求发起端
创建输出流,接到Action中定义的输出流将其输出
语法:
<result name="success" type="stream">
<param name="inputName">codeStream</param>
</result>

15.redirectAction Result的作用
用于将请求重定向给另外一个Action
语法:
<result name="login" type="redirectAction">
<param name="namespace">
/命名空间
</param>
<param name="actionName">
action名
</param>
</result>
如果重定向的Action与当前Action在同一个namespace下,则可以省略
<param name="namespace">/login</param>

16.如果只需要给Result的actionName注入值,配置可以进一步的简化,即
<result name="login" type="redirectAction">
action名
</result>

17.请简述Struts2中Result组件的作用,你了解哪些Result组件

18.stream类型的Result有什么用

19.json类型的Result如何使用

20.如何在Struts2项目中实现异步请求的校验

21.Struts2中有哪些UI标签,请简述其作用

22.为甚要做登录检查

23.如何做登录检查

24.登录检查的开发步骤
创建拦截器
创建登录检查拦截器组件,在intercept方法中验证用户是否登录,若没有则不调用action,而是重定向
到登录action
注册拦截器
注册登录检查拦截器
注册拦截器栈,将登录检查拦截器与defaultStack打包
引用拦截器
将新注册的拦截器栈设置为默认拦截器

25.FileUpload拦截器介绍
FileUpload拦截器是Struts2预置的拦截器
FileUpload拦截器被默认拦截器栈defaultStack引用,即我们不需要做任何的配置,即可使用该拦截器
FileUpload拦截器可以用于做文件上传

26.FileUpload拦截器原理
FileUpload拦截器上传文件步骤
首先,FileUpload拦截器将表单中提交的文件,以临时文件的形式保存到服务器临时路径下
之后,FileUpload拦截器将该文件对象注入给Action。Action自主处理该临时文件
FileUpload拦截器删除临时文件。

27.FileUpload拦截器使用步骤
导包
Action
定义File类型属性(如some),接收拦截器注入的临时文件对象。
如果想获取原始文件名,要定义String类型属性,属性名为"File类型属性+FileName"(如someFileName)
,拦截器会自动给该属性注入原始文件名。
表单设置
必须满足method="post"
必须满足enctype="multipart/form-data"

28.注意事项
Struts2上传文件最大值默认限制为2097152B,即2M。
该设置被定义在struts2-core-2.1.8.jar中,包org.apache.struts2下的default.properties中。
struts.multipart.maxSize=2097152
可以在struts.xml中重置该默认值
<constant name="struts.multipart.maxSize" value="5000000" />

29.Struts2中的拦截器有什么用,与Spring中的AOP有什么区别和联系

30.Action默认引用哪个拦截器,如果没有默认引用,会导致什么问题

31.Struts2中如何实现文件上传

时间: 2024-10-16 21:16:08

Struts相关问题的相关文章

(原)Struts 相关资源下载

官网:http://struts.apache.org 点击[Download],进入页面如下,可以看到下载的资源: 点击[struts-2.3.20-all.zip],就能获取Struts2项目所有的相关资源. Struts2项目的目录结构中主要包含了4个目录:apps.docs.lib 和 src: apps:存放了所有 Struts2 的实例项目 位于 apps 目录下的所有war都是部署到 Web 服务器中直接运行的 Web 应用. 这些 Struts2 的示例项目对学习 Struts2

struts快速入门第一篇 —— struts相关XML配置映射及讲解

我们回忆一下在学习JavaWeb过程中(Jsp + servlet编程)所感受到的Servlet的不足: 1 Servllet很多时,web.xml中的代码会很多.这样一来,维护起来就不方便,不利于团队合作: 2 一个Servlet的入口只有doGet或doPost方法,如果需要定义其它方法,就必须得在前两者中调用它们.这样会导致代码结构很乱: 3 let类与servlet容器高度耦合,每个方法中都有两个参数request,response.如果服务器不启动,这两个参数没有办法初始化.这会给 单

Struts相关

使用Struts2流程: 1.导入Struts2类包 2.在Web源代码文件夹中,创建名为struts.xml的配置文件.在其中定义Action对象,其关键代码如下: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//

基于mvc模式的应用框架之struts

Struts就是基于mvc模式的框架! (struts其实也是servlet封装,提高开发效率!) Struts开发步骤: 1. web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器 3. 开发action 4. 配置action src/struts.xml 1. 引入8个jar文件 2. web.xml <!-- 引入struts核心过滤器 --> <filter> <filter-name>struts2<

【SSH进阶之路】Struts基本原理 + 实现简单登录(二)

上面博文,主要简单的介绍了一下SSH的基本概念,比較宏观.作为刚開始学习的人可以有一个总体上的认识,个人觉得对学习有非常好的辅助功能,它不不过一个"瞭望塔".更是检验是否真正掌握全部内容的一个前提. Struts是基于MVC的框架,它进一步的对MVC进行了封装,它是怎么封装的,我们从先回想一下MVC再到Struts.再用Struts给大家实现一个简单登录的实例.我们開始吧. MVC 概念 MVC全名是Model View Controller,是模型(model)-视图(view)-控

(28)初识struts框架

案例剖析中介绍了一个自己写的mystruts框架,这里开始简单的认识struts框架. 1.先看一个简单的struts开发的例子来熟悉一下流程 Struts就是基于mvc模式的框架! (struts其实也是servlet封装,提高开发效率!) Struts开发步骤: 1.web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器,通过配置一个过滤器来引入structs中的一些服务--org.apache.struts2.dispatcher.ng.

[转]Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/13/251101.html 本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Struts 2.x的相同点和不同点.    在这篇文章中将以一个简单的例子(mystruts)来演示如何使用MyEclipse来开发.运行Struts程序,并给出了解决ActionForm出现乱码问题的方法.读者可以从本文中了解

第一个struts案例及分析

软件中的框架,是一种半成品: 我们项目开发需要在框架的基础上进行!因为框架已经实现了一些功能,这样就可以提高开发效率! Struts2 = struts1  +  xwork (struts是基于MVC模式的框架) struts2预先实现的功能: 1.请求数据自动封装 2.文件的上传 3.国际化功能的简化 4.数据效验 .......... Struts开发步骤: 1. web项目,引入struts - jar包 版本: 2.3 commons-fileupload-1.2.2.jar   [文

struts应用

1.搭建struts运行环境 1)建立Web项目,将struts相关包引入到项目中 2)将struts-config.xml配置文件复制到项目中 3)在web.xml配置文件中配置Servlet如下: <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init