Struts2知识点小结(一)
一、struts2简介
1、Struts2是一个基于MVC设计模式的Web应用框架 只要是web层框架 一般就会遵守MVC设计模式
2、struts2与struts1的关系? 没关系 WebWork基于xwork
3、struts2是一个可插拔式框架(解耦) ---通过filter与javaweb结合的
二、struts2快速入门
1、导入jar
struts-2.3.24\apps\struts2-blank\WEB-INF\lib\*.jar
2、配置web.xml Struts2的核心filter
<!-- Struts2的核心filter -->
<filter>
<filter-name>Struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、创建Action
public class QuickAction {
public String execute(){
System.out.println("QuickAction execute runnging.. ...");
return null;
}
}
4、配置struts.xml
位置:src下
约束位置:struts2-core-2.3.24.jar/struts-2.3.dtd
<struts>
<package name="test" namespace="/" extends="struts-default">
<action name="quick" class="com.itheima.action.QuickAction"></action>
</package>
</struts>
5、测试
http://localhost:8080/Struts2Day01/quick
三、struts2的配置文件
1、入口Filter ---StrutsPrepareAndExecuteFilter
Prepare:准备 对应init方法
Execute:执行 对应doFilter
PS:filter与生命周期相关方法:init destroy doFilter
准备工作:
--->StrutsPrepareAndExecuteFilter
--->public void init(FilterConfig filterConfig)
--->dispatcher = init.initDispatcher(config);
--->dispatcher.init();
--->
init_DefaultProperties(); // [1] 加载org/apache/struts2/default.properties文件
init_TraditionalXmlConfigurations(); // [2] 加载struts-default.xml,struts-plugin.xml,struts.xml
init_LegacyStrutsProperties(); // [3] 加载src下的struts.properties文件
init_FilterInitParameters() ; // [6] 加载Struts2的核心Filter分初始化参数
总结:
服务器启动--->创建Filter--->初始化方法init执行---->加载一些列的配置文件
default.properties struts2内置
struts-default.xml struts2内置
struts-plugin.xml struts2内置 struts.xml 自定义 struts.properties 自定义
Filter的init 自定义
注意:如果加载的内容有冲突的话,后加载的内容可以覆盖先加载的内容
2、 default.properties
配置struts2默认常量
struts.i18n.encoding=UTF-8 设置struts2的编码是UTF-8 post不用解决乱码
struts.multipart.maxSize=2097152 限制上传文件大小 2M
struts.action.extension=action,, 访问Action时的扩展名
struts.devMode = false 设置开发模式 默认不开启开发模式 设置为true 修改struts2的内容后不需要重启服务器
3、struts-default.xml
常量
struts-default包
结果跳转类型
interceptors拦截器
4、struts-plugin.xml
5、struts.xml
位置:类加载路径下(src)
见struts.xml文件
6、struts.properties
src自定义properties文件 该文件作用配置常量(等同于struts.xml中的constant)
7、Filter的init
只能配置常量
<filter>
<filter-name>Struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>action,,</param-value>
</init-param>
</filter>
四、struts2的常用API
Action定义的三种方式:
1、POJO充当Action
2、Action类实现Action接口
Action接口提供5个常量
SUCCESS:成功
ERROR:报错
NONE:不进行视图跳转 相当于null
INPUT:跳转到输入视图
LOGIN:跳转登录视图
3、Action类继承ActionSupport类
ActionSupport功能强大
Struts2知识点小结(一)的更多相关文章
- Struts2知识点小结汇总
Struts2部分 1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前 ...
- Struts2知识点小结(四)--拦截器与注解开发
一.Struts2的拦截器(interceptor) 作用:当请求进入struts2框架后(进入之前可以用filter进行拦截),想对请求进行拦截操作(功能增强.权限控制),需要拦截器组件 1.str ...
- Struts2知识点小结(三)--值栈与ognl表达式
1.问题一 : 什么是值栈 ValueStack 回顾web阶段 数据交互问题? 客户端提交数据 到 服务器端 request接受数据+BeanUtils实体封装 ...
- Struts2知识点小结(二)
一.结果视图的配置 <result name="success">/success.jsp</result> 1.局部结果视图 ...
- C++重要知识点小结---3
C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...
- C++重要知识点小结---2
C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...
- React及Nextjs相关知识点小结
React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...
- 【SpringBoot MQ 系列】RabbitMq 核心知识点小结
[MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 ...
- SpringBoot 系列教程之事务隔离级别知识点小结
SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...
随机推荐
- CentOS7系列--5.2CentOS7中配置和管理Docker
CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...
- 实现ListView的加载更多的效果,如何将按钮布局到始终在ListView的最后一行
实现方式一:在代码中实现: 1,在一个布局中定义一个Button,在活动中加载Button的父布局, 例如:View bottomView = getLayoutInflater().inflate( ...
- 签署您的应用--手动签署 APK
签署您的应用 本文内容 证书和密钥库 签署您的调试构建 调试证书的有效期 管理您的密钥 使用 Google Play 应用签名 自行管理您的密钥和密钥库 签署 APK 生成密钥和密钥库 手动签署 AP ...
- INFO: Font Metrics and the Use of Negative lfHeight
INFO: Font Metrics and the Use of Negative lfHeight Print Email Article translations Article ID ...
- local_listener参数的作用!
转自:http://warehouse.itpub.net/post/777/472788 pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态 ...
- ORACLE数据泵还原(IMPDP命令)
Oracle数据库还原IMPDP命令是相对于EXPDP命令的,方向是反向的.即对于数据库备份进行还原操作.一.知晓IMPDP命令 C:\>impdp -help Import: Release ...
- JS 触发不同ifram控件,实现刷新,关闭标签(H+框架)
例: //前台页面事件处理模块var EventOperation = { Refresh: function (data_id) { var a = (window.top); var ele = ...
- 小鸡G4工程款 上手体验
前言:之前只是抱着试一试的态度在小鸡活动贴下报名,说实话之前并没有抱希望能够没选中.所以非常感谢小鸡团队给我的这次机会.这应该是我第一次参与厂家的内测活动.希望能给小鸡团队,给广大玩家带来一片实用的上 ...
- Linux 系统的/目录
根目录下的重要目录 目录 应放置档案内容 /bin 系统有很多放置执行档的目录,但/bin比较特殊.因为/bin放置的是在单人维护模式下还能够被操作的指令.在/bin底下的指令可以被root与一般帐号 ...
- c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)
转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 . ...