1. Struts2的理解
Struts 2是一款优秀的MVC框架,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,从而与Servlet API完全脱离
2. Action接收参数的方式有属性方式、JavaBean方式和ModelDriven方式
3. Struts2中实现Action类的方式有使用普通Java类,实现Action接口和继承ActionSupport类,一般使用继承ActionSupport类方式,因为该类实现了国际化、数据验证等功能。
4. Struts2项目的开发步骤
1) 配置Sturts2开发环境
a) 下载并添加Struts2必须的jar包
b) 修改web.xml配置文件,添加Struts2核心过滤器
c) 添加struts.xml配置文件
2) 添加并实现Action类
3) 在struts.xml中配置及
5. 简述Struts2中的控制器
1) 核心控制器:StrutsPrepareAndExecuteFilter,负责过滤所有的用户请求
2) 业务控制器:就是Action,作用为:
a) 接收数据并对数据进行封装
b) 调用业务逻辑层组件
c) 返回逻辑视图名(处理结果字符串)
6. 简述Struts2的工作流程
1) 客户发送一个HTTP请求,请求发送给Struts2核心控制器StrutsPrepareAndExecuteFilter
2) 该过滤器询问ActionMapper:判断该请求是否是一个sturts2请求
3) 若是一个 Struts2 请求,则把请求处理交给 ActionProxy
4) ActionProxy 通过 Configuration Manager 询问框架的配置文件 struts.xml,确定需要调用的 Action 类及 action 方法
5) ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化;
6) ActionInvocation 实例在调用 Action 的过程前后,涉及到相关拦截器(Interceptor)的调用;
7) Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果(Result)。调用结果的 execute() 方法,渲染结果;
8) 执行各个拦截器 invacation.invoke() 之后的代码;
9) 把结果发送回客户端。
7. Action类如何访问Servlet API
1) 获取request/session/application对象attribute映射的Map对象
a) 使用ActionContext对象获取
b) Action类实现对应的RequestAware接口,重写setRequst()方法
2) 获取原生的ServletAPI
a) 使用ServletActionContext的静态方法获取
b) Action类实现对应的ServletRequestAware接口,重写对应方法
8. 逻辑视图名是Action的方法返回结果字符串
9. 为什么需要配置全局结果?全局结果的影响范围?如何配置?
1) 当所有Action需要共享某个结果时,可以定义为全局结果
2) 全局结果的影响范围为整个包的所有Action
3) 使用标签
10. 如何进行异常映射的配置?为什么要进行全局异常映射配置?
1) 单个Action的异常处理,只需要在对应的action标签中,配置指定对应异常类型跳转的逻辑视图名
2) 如果所有action的各种异常发生时都要跳转到统一的异常结果页面,则需要通过设置全局异常映射
11. 如何整合额外的sturts2配置文件:使用
12. 描述result标签下列type属性值的含义
1) dispatcher 转发,默认值
2) chain Action链式处理,将请求转发到指定Action
3) redirect 重定向到指定URL或Action
4) redirectAction 重定向到指定Action
动态方法调用的弊端:有安全隐患,暴露业务方法给用户,官方也不推荐