Struts框架之 执行流程 struts.xml 配置详细
1. 加载项目web.xml
2. 创建Struts核心过滤器对象, 执行filter → init()
struts-default.xml, 核心功能的初始化
struts-plugin.xml, struts相关插件
struts.xml 用户编写的配置文件
访问:
3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象
4. 执行默认拦截器栈中定义的18个拦截器
5. 执行action的业务处理方法
struts-default.xml, 详解
目录:struts2-core-2.3.4.1.jar/ struts-default.xml
内容:
1. bean节点指定struts在运行的时候创建的对象类型
2.指定struts-default包 【用户写的package(struts.xml)一样要继承此包 】
package struts-default 包中定义了:
a. 跳转的结果类型
dispatcher 转发,不指定默认为转发
redirect 重定向
redirectAction 重定向到action资源
stream (文件下载的时候用)
b. 定义了所有的拦截器
定义了32个拦截器!
为了拦截器引用方便,可以通过定义栈的方式引用拦截器,
此时如果引用了栈,栈中的拦截器都会被引用!
defaultStack
默认的栈,其中定义默认要执行的18个拦截器!
c. 默认执行的拦截器栈、默认执行的action
default-interceptor-ref name="defaultStack"/
default-class-ref /
interceptor name="prepare" /
interceptor name="params" /
拦截器(先睹为快):
拦截器功能与过滤器功能类似。
区别:
共同点: 都拦截资源!
区别:
过滤器,拦截器所有资源都可以; (/index.jsp/servlet/img/css/js)
拦截器,只拦截action请求。
拦截器是struts的概念,只能在struts中用。
过滤器是servlet的概念,可以在struts项目、servlet项目用。
面试题: 拦截器什么时候执行? (访问/启动) 先执行action类创建,先执行拦截器?
1. 用户访问时候按顺序执行18个拦截器;
2. 先执行Action类的创建,再执行拦截器; 最后拦截器执行完,再执行业务方法
2.共性问题问题1:Struts.xml配置文件没有提示
解决a:
找到struts-2.0.dtd文件, 拷贝到某个目录:d:/dtd /.. (不要用中文目录)
让MyEclipse关联到上面dtd文件,
→ windows àpreferences → 搜索xml catalog
配置:
Location: 上面配置的dtd目录
Key: -//Apache Software Foundation//DTD Struts Configuration 2.0//EN
解决b:
让机器连接互联网,工具会自动下载dtd文件,缓存到MyEclipse中!
3.配置详解package name="user" extends="struts-default" namespace="/" action name="login" method="login" result name="login" /index.jsp /result /action /package
package 定义一个包。 包作用,管理action。
(通常,一个业务模板用一个包)
name 包的名字; 包名不能重复;
extends 当前包继承自哪个包
在struts中,包一定要继承struts-default
struts-default在struts-default.xml中定的包
abstract
表示当前包为抽象包; 抽象包中不能有action的定义,否则运行时期报错
abstract=true 只有当当前的包被其他包继承时候才用!
如:
package name="basePackage" extends="struts-default" abstract="true" /package
package name="user" extends="basePackage"
namespace 名称空间,默认为"/" 作为路径的一部分
访问路径= http://localhost:8080/项目/名称空间/ActionName
action 配置请求路径与Action类的映射关系
name 请求路径名称
class 请求处理的aciton类的全名
method 请求处理方法
result
name action处理方法返回值
type 跳转的结果类型
标签体中指定跳转的页面
!-- 总配置文件中引入其他所有的配置文件 -- include file="cn/itcast/a_action/hello.xml" /include include file="cn/itcast/b_execute/config.xml" /include
// 把数据保存到域 ActionContext ac = ActionContext.getContext(); // 得到代表request的map Map String, Object request = ac.getContextMap(); // 得到代表session的map Map String, Object session = ac.getSession(); // 得到代表servletContext的map Map String, Object application = ac.getApplication(); // 保存 request.put("request_data", "request_data"); session.put("session_data", "session_data"); application.put("application_data", "application_data");
两个入门案例带你入门SpringMVC 注解版&&XML版 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。 由于 Spring MVC 本身就是 Spring 框架的一部分,所有与 Spring 框架是无缝集成。是当今业界最主流的 Web 开发框架。
Struts2【配置】 (一) 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了…..对Struts的配置文件有了了解…..本博文继续讲解Struts在配置的时候一些值得要学习的细节…
Struts2【配置】 (二) 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了…..对Struts的配置文件有了了解…..本博文继续讲解Struts在配置的时候一些值得要学习的细节…
Struts2【配置】 (三) 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了…..对Struts的配置文件有了了解…..本博文继续讲解Struts在配置的时候一些值得要学习的细节…
相关文章
- MapReduce V1:JobTracker处理Heartbeat流程分析
- asp.net MVC 的处理流程
- 开发流程(升级)
- Kotlin 朱涛-1 基础语法 变量 类型 函数 流程控制
- Linux服务器的初步配置流程
- Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis1 2. 流程模型常见的bpm模式1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等)1 3
- Atiitt 日志技术的重大问题解决法 目录 1.1. 只想看某些日志,使用tag过滤法1 1.2. 能方便清晰的列出某一业务(如支付)的完整的处理流程 业务tag1 1.3. - NDC(N
- atitit.ajax bp dwr 3.的注解方式配置使用流程总结.....
- paip.hql的调试故障排查流程总结
- 详解SSH 框架中对象调用流程
- linux 【阿里云服务器】 配置 redis 的正确流程
- Android 测量流程详解
- Go语言自学系列 | golang流程控制关键字goto
- Android Track的play流程(三十二)
- 【快速入门大数据】第一部分:Java基础知识回顾之语言基础01:开发环境配置、数据类型、运算符、流程控制
- Android Camera 运行流程