JAVA框架Struts2(二)
一:Struts2执行流程:
1)编写页面,点击超链接,请求提交到服务器端。
2)请求先经过Struts2核心过滤器(StrutsprepareAndexectuterfilter)。
3)过滤器的功能是完成一部分代码。(dofilter放行。)
4)一系列的拦截器执行了。进行一些处理工作。
5)拦截器执行完后,会根据struts.xml的配置文件找到请求路径,找到对应的action类的路径,通过反射找到对应的类,找到对应的
方法,并执行方法。通过返回值,在struts.xm文件找到对应的请求,进行相应的跳转。
简化:
jsp(超链接)--->核心过滤器(Struts2prepareandexcuterfilter,执行一部分代码)-->一些拦截器执行一些功能--->读取配置文件(struts.xml)--->通过请求路径获取对应类信息--->通过反射功能,执行相应的方法(无参),根据方法的返回值--->
通过struts.xml的配置文件找到对应的请求转发--->进行跳转。
其中核心过滤器(strustprepareandexecuterfilter):
1)在服务器启动阶段,他首先创建过滤器其中init()方法加载配置文件。
2)配置文件加载完之后,执行dofilter的时候,会调用一系列的拦截器。
流程图:

跳转配置:
在strust.xml进行配置配置:
在action标签内嵌套result标签:
<struts>
<package name="" namespace="/" extends="struts-default">
<action name="hello" class="jd.com.action.SayHello" method="helloSttust">
<result name="oop" >demo/re.jsp</result>
</action>
</package>
</struts>

1:是action类的方法返回值对应。
2:是跳转的页面。
二:配置文件加载:
查看源码:
程序启动的时候创建过滤器strustprepareandexecuterfilter--->执行init()方法--->加载配置文件。





然后在struts2-core-2.3.34.jar

首先加载defaultproproperites。
该文件主要是:常量设置。这里strust2已经帮我们设置编码了。不需要咱们自己设置。

然后加载xml文件:

然后依次加载:strust-default.xml .... strust.xml等文件。

然后在struts2-core-2.3.34.jarr下面:

该文件是加载的是核心功能配置。(bean、拦截器、结果类型等。)
strust.xml:是我们可以做修改的配置文件。主要是action类和url关系的配置文件。
web.xml:配置前端控制器(strustprepareandexecuterfilter)..
整个配置文件加载的顺序:
default. properites----->strust-default.xml---> strust.xml-->web.xml
其中web.xml加载两次:一次是tomcat加载 一次是框架加载。
注意:
后加载的文件覆盖先加载的配置文件相同的配置。
JAVA框架Struts2(二)的更多相关文章
- Java框架Struts2
struts2的核心和工作原理 在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于we ...
- ssh框架-Struts2(二)
上篇文章我们了解了怎么配置struts.xml文件,以及前端控制器配置怎么配置,,Action进阶,Result结果配置,Struts2中的Servlet的API的访问,以及怎么获得请求参数.今天我们 ...
- JAVA框架Struts2 结果页配置
一: Action类的返回逻辑视图,一般会出现一个场景就是:当前package 标签下,几个action类需要返回同一个页面的时候.这个时候需要全局结果. 全局结果(使用标签<global-re ...
- JAVA框架Struts2 servlet API
一:servlet API 1)完全解耦接口: 使用ActionContext类进行相关操作: package jd.com.actioncontex; import com.opensymphony ...
- JAVA框架Struts2 Action类
一.Action书写方式: 接口地址:https://struts.apache.org/maven/struts2-core/apidocs/index.html Action类就是一个POJO类. ...
- JAVA框架Struts2 数据封装
一.strust2封装数据包含二部分: 数据在到Action类的时候,会经过拦截器,拦截器会有很多功能:比如数据封装.类型转换等. 我可以查看下strust-default.xml文件,看那些拦截器默 ...
- Java框架之Struts2(二)
一.Action 配置说明 //请求的直接转发 <package name="packageUser" namespace="" extends=&quo ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- 二,java框架学习
二,java框架学习 实体类的编写规则 实体类里面的属性是私有的 私有属性使用公开的set,get,方法操作 要求实体类有属性作为唯一值(一般使用id值) 实体类属性建议不使用基本数据类型,使用基本数 ...
随机推荐
- Java-函数式编程(三)流(Stream)
流使程序猿可以在抽象层上对集合进行操作. 从外部迭代到内部迭代 什么是外部迭代和内部迭代呢? 个人认为,外和内是相对集合代码而言. 如果迭代的业务执行在应用代码中,称之为外部迭代. 反之,迭代的业务执 ...
- Spring Data Solr —— 快速入门
Solr是基于Lucene(全文检索引擎)开发,它是一个独立系统,运行在Tomcat或Jetty(solr6以上集成了jetty,无需再部署到servlet容器上),但其原生中文的分词词功能不行,需要 ...
- POJ2104(可持久化线段树)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 58759 Accepted: 20392 Ca ...
- python+redis简单实现发红包程序
redis是什么? Redis 是一个高性能的key-value数据库! 想进一步了解请移步搜索引擎自行查找. 编写这个小程序的目的就是对redis进行一个简单的小操作,对redis有一个初步的了解, ...
- python 约束,异常处理与MD5加密
1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点) 2. 抽象类和抽象方法 # 语法 # from abc import ABCMet ...
- iTerm通过堡垒机自动登录服务器
为了保障网络和数据安全,越来越多公司使用堡垒机.iTerm作为一个好用的终端利器,要实现自动通过堡垒机登录服务器的方式有多种.下面我就来介绍一种通过expect脚本的方式完成配置. 第一步,进入/us ...
- OSGI企业应用开发(一)OSGI简介
一.OSGI简介 OSGI全称为Open Service Gateway Initiative(开放服务网关规范),有两个层面的含义,一方面它指OSGi Alliance组织:另一方面指该组织制定的一 ...
- 3.1 - Apps or metadata that mentions the name of any other mobile platform will be rejected
3.1 - Apps or metadata that mentions the name of any other mobile platform will be rejected3.1 Detai ...
- 活字格Web应用平台学习笔记2-基础教程-开始
今天先学活字格第一个教程,开始. 目标是能够用活字格创建一个简单的Web页面. 哈哈,简单,跟Excel一样,做单元格输入.合并.文字居中.加底色.加图片,然后发布. 然后就真的生成了一个Web页面! ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记
机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...