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的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...
随机推荐
- Linux(CentOS)之-性能监控
这篇主要讲一下Linux(CentOS)上性能性能监控的操作. 1.监控cpu使用情况--uptime 该命令将会打印出当前时间 系统运行了多久 当前登陆用户数 系统平均负载 这里的负载是单位时间 ...
- 9 tensorflow提示in different while loops的错误该如何解决
示例代码 ii=tf.constant(0,dtype=tf.int32) loop__cond=lambda a: tf.less(a,sentence_length) loop__vars=[ii ...
- netty发送和接收数据handler处理器
netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和 ...
- django中的权限控制(form增删改)
Django默认提供了权限控制,但只能对使用了其自带的登录认证的用户进行权限控制,说白了就是只能对存储在auth_user表中的用户进行权限控制,但不能对未登录过的用户进行权限控制.但如果通过集成LD ...
- 安装启动apache2.4后报Invalid command 'order', perhaps misspelled or defined by a module not included
httpd.conf中修改 重启Apache 报错. 在网上搜索了一下,大多是说mod_authz_host.so模块没有加载,但检查后发现httpd.conf中: 该模块并未被注释掉,那原因究竟出在 ...
- Linux配置自动发送邮件
需要的工具:sendEmail 和 linux自带的定时工具:crontab 1.sendEmail的使用: 具体参数解释: -f zhangshibo706@163.com 发件人邮箱 -t 453 ...
- Linux学习之路-2017/12/25
三章 命令通配符 .PATH变量 支持多种文本的通配符 通配符 含义 * 匹配零个或多个字符 ? 匹配任意单个字符 [0-9] 匹配范围内的数字 [ ...
- SpringBoot @AutoWired Null
在调用工具类时,若工具类中含有@Autowired注解,这此工具类对象必须同样使用@Autowired注解,否则工具类中的Spring注入的对象都为空值,这里的HadoopTest就是这样 比如MyC ...
- git遇到问题
简介 这里记录git使用过程中所涉及的问题,记录下解决方案. git 本地项目上传远程仓库[github] 已在远程建好仓库,在本地项目根目录下 $ git init $ git add . $ gi ...
- zabbix 监控wind登录状态
参考博文:http://blog.51cto.com/qicheng0211/1694583 需求:监控win 2008 的用户登录状态,无论用户登录成功与否都要告警(也可以刷选指定用户.指定时间内) ...