Struts2高级(插件)笔记一
插件
Struts-plugin.xml
说明:
Struts-plugin.xml文件是在tomcat服务器启动的时候加载的
该配置文件在classpath的根目录下
在每一个含有plugin字母的jar包的根目录下有一个struts-plugin.xml文件
当tomcat启动的时候,就把所有的含有plungin的jar包的该配置文件就加载了。
静态注入
1、 在struts2的配置文件中写的bean
在tomcat启动的时候,会执行OgnlValueStackFactory的createValueStack方法
从上图可以看出,在tomcat启动的时候就决定了ValueStack的实现类
2、 改变静态注入的方式
可以在struts.xml文件中对struts-default.xml文件中的bean进行配置和覆盖,这样就可以按照覆盖掉的执行。在struts.xml文件中,做如下的配置
这个时候,当tomcat启动的时候,将会报错。
改变action的产生方式
ObjectFactory
说明:
Struts2容器就是利用ObjectFactory的上面的几个方法产生的action,result,interceptor
配置文件
在struts2容器中,对象工厂是由StrutsObjectFactory来产生的。
从上图中可以看出,StrutsObjectFactory继承了ObjectFacotry,但是没有覆盖buildAction方法,说明struts2的action的产生还是调用了ObjectFactory中的buildAction方法。
写一个对象工厂
该类重写了buildAction方法。
配置文件
说明:
当在浏览器提交一个请求,请求某一个action的时候,在创建action的时候,就会进入到Itheima09ObjectFactory中执行buildAction方法。
Spring与struts2
Jar包中
Struts-plugin.xml
说明:对象工厂为spring:StrutsSpringObjectFactory
总结
当tomcat启动的时候,加载了很多个struts-plugin.xml文件,在该文件中可以配置
Bean
Package
Interceptor
Action
Result
\ 这些元素就被加载到了struts2容器中。
如果不想要某一些内容,只要把这些内容所在的struts-plugin.xml的jar包去掉就可以了。
插件的主要体现形式是jar包。
结果集
结果集架构
说明:
1、 struts2从结构分,可以分为两种结果集
1、 需要跳转的,也就是说需要获取result标签中的内容
该类必须继承StrutResultSupport
2、 不需要跳转,不需要获取result标签中的内容
该类可以直接实现Result接口
结果集的类型
转发
重定向
Json
说明:该结果集是struts与ajax结合的结果集,所以该结果集是不需要跳转的,所以不需要获取result标签中的内容,所以该结果集直接实现Result接口就可以了。
struts2核心流程:
Struts2高级(插件)笔记一的更多相关文章
- Struts2权威指南笔记
Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...
- js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定
js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener( ...
- Android高级编程笔记(四)深入探讨Activity(转)
在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...
- bootstrap-paginator 分页插件笔记
[MVC]bootstrap-paginator 分页插件笔记 bootstrap-paginator基于bootstrap框架,使用起来非常简单.官网:http://harttle.github ...
- Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Python高级学习笔记
Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...
- Java高级程序设计笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java高级程序设计作业目录(作业笔记) 第1章 Java高级程序设计笔记 • [第1章 IO流] 第2章 Java高级程序设 ...
- Struts2 Convention插件的使用(1)
刚刚查阅官方文档(convention-plugin.html)并学习了Struts2的Convention插件,文章这里只作为一个笔记,建议大家去看官方文档比较清晰和全面. 需要在项目添加这些包 c ...
- struts2马士兵笔记
Struts2 学习笔记 目录 01 Struts2-Action 一. Struts作用: 二. 搭建Struts2的运行环境: 三. Namespa ...
随机推荐
- vs查看动态库依赖
dumpbin是VS自带的工具,进入Visual Studio 的命令提示 查看程序或动态库所依赖的动态库 dumpbin /dependents abc.exe 查看动态库的输出函数 dumpbi ...
- json字符串和表相互转化中遇到的一个严重问题
导致脚本崩溃的一个问题 Import "zm.luae" zm.Init Dim aaa="fdsf23423dsfsdf" dim 结果表=Encode.Js ...
- 前端——语言——Core JS——《The good part》读书笔记——第六章节(Arrays)
本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类 ...
- vue 一些学习笔记
var, let, const 区别 //-----------------var----------------- var a = []; for(var i= 0; i < 10; i++) ...
- Mac安装php扩展redis遇到的问题,执行phpize问题
1.安装redis在mac OS中可以使用brew命令进行安装redis:mac OS使用brew命令安装软件安装命令:brew install redis因为我已经安装过了,这里就不在赘述.安装完之 ...
- mysql DATE_FORMAT 函数使用
使用DATE_FORMAT 查询数据库中时间类型显示 SELECT a.name ,a.uuid ,p.assess_price as assessPrice ,p.assess_date as as ...
- c# 调用c++sdk时结构体与byte数组互转
/// <summary> /// 由结构体转换为byte数组 /// </summary> public static byte[] StructureToByte<T ...
- Codeforce 977E Cyclic Components
dfs判断图的连通块数量~ #include<cstdio> #include<algorithm> #include<vector> #include<cs ...
- mongodb副本集仲裁节点搭建
服务器准备: 主节点192.168.100.106 从节点192.168.100.107 仲裁节点192.168.100.108 三台服务器: 关闭防火墙 service iptables stop ...
- JavaScript 闭包&基于闭包实现柯里化和bind
闭包: 1 函数内声明了一个函数,并且将这个函数内部的函数返回到全局 2 将这个返回到全局的函数内中的函数存储到全局变量中 3 内部的函数调用了外部函数中的局部变量 闭包简述: 有权访问另一个函数局部 ...