一: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(二)的更多相关文章

  1. Java框架Struts2

    struts2的核心和工作原理   在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于we ...

  2. ssh框架-Struts2(二)

    上篇文章我们了解了怎么配置struts.xml文件,以及前端控制器配置怎么配置,,Action进阶,Result结果配置,Struts2中的Servlet的API的访问,以及怎么获得请求参数.今天我们 ...

  3. JAVA框架Struts2 结果页配置

    一: Action类的返回逻辑视图,一般会出现一个场景就是:当前package 标签下,几个action类需要返回同一个页面的时候.这个时候需要全局结果. 全局结果(使用标签<global-re ...

  4. JAVA框架Struts2 servlet API

    一:servlet API 1)完全解耦接口: 使用ActionContext类进行相关操作: package jd.com.actioncontex; import com.opensymphony ...

  5. JAVA框架Struts2 Action类

    一.Action书写方式: 接口地址:https://struts.apache.org/maven/struts2-core/apidocs/index.html Action类就是一个POJO类. ...

  6. JAVA框架Struts2 数据封装

    一.strust2封装数据包含二部分: 数据在到Action类的时候,会经过拦截器,拦截器会有很多功能:比如数据封装.类型转换等. 我可以查看下strust-default.xml文件,看那些拦截器默 ...

  7. Java框架之Struts2(二)

    一.Action 配置说明 //请求的直接转发 <package name="packageUser" namespace="" extends=&quo ...

  8. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  9. 二,java框架学习

    二,java框架学习 实体类的编写规则 实体类里面的属性是私有的 私有属性使用公开的set,get,方法操作 要求实体类有属性作为唯一值(一般使用id值) 实体类属性建议不使用基本数据类型,使用基本数 ...

随机推荐

  1. php7 AES IOS Android

    $key = 'SK7381DNSU#&#@DS'; //key的长度保持16位 加粗 标识 $cipher = "AES-128-ECB"; $iv_len = open ...

  2. HTML5 简单归纳 -- 前端知识 (一)

    HTML5简介 1.h5不是一个新语言,它是HTML语言第五次重大修改--版本 2.   2014年  h5 3.支持:目前所有的主流浏览器都支持h5,IE8以下不支持 4.特性: a:抛弃了h4中不 ...

  3. 过滤器(Filter)与拦截器(Interceptor)的区别

    1 .拦截器是基于java的反射机制的,而过滤器是基于函数回调. 2 .拦截器不依赖与servlet容器,过滤器依赖与servlet容器. 3 .拦截器只能对action请求起作用,而过滤器则可以对几 ...

  4. JS--我发现,原来你是这样的JS(引用类型不简单[上篇],且听我娓娓道来)

    一.介绍 没错,这是第五篇,到了引用类型,这次要分成两次博文了,太多内容了,这是前篇,篇幅很长也很多代码,主要讲引用类型和常用的引用类型,代码试验过的,老铁没毛病. 坚持看坚持写,不容易不容易,希望大 ...

  5. Emmagee app性能测试工具使用教程

    Emmagee app性能测试工具使用教程 by:授客 QQ:1033553122 简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个Ap ...

  6. HttpWatch HttpWatch时间表(HttpWatch Time Charts)

    HttpWatch时间表(HttpWatch Time Charts) by:授客 QQ:1033553122 截图 说明 页面事件线(Page Event Lines)

  7. linq not in

    linq not in 查询 or join not in var query = from c in _opvRepository.Table join a in _orderRepository. ...

  8. 转:C#综合揭秘——细说进程、应用程序域与上下文之间的关系

    引言 本文主要是介绍进程(Process).应用程序域(AppDomain)..NET上下文(Context)的概念与操作.虽然在一般的开发当中这三者并不常用,但熟悉三者的关系,深入了解其作用,对提高 ...

  9. scp机器间远程拷贝

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.linux的scp命令可以在linux服务器之间复制文件和目录. 使用语法:scp  [参数 ...

  10. windows注册表

    如何导入与导出注册表 进入注册表编辑器,选择“文件”“导出”命令,打开“导出注册表文件”对话框.选择保存位置并为其取名,单击保存即可完成注册表的备份. 打开注册表编辑器,选择“文件”“导入”命令,打开 ...