1.Struts官网: https://struts.apache.org/
2.引用包
struts2-core。
<!-- 引用struts2框架核心依赖 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.16</version>
</dependency>
注意:struts2的版本不同,配置也有部分差异。
3.Struts2是Apache组织下一个基于MVC设计模式的Web应用框架。
Struts2是Struts的下一代产品,是Struts1 + WebWork合并的全新框架。
Struts2采用拦截器为核心机制,就一个开源的轻量级的,应用于表示层(Web层、View)的框架。
Filter .action
Servlet .do
4.Struts2框架原理
4.1. Struts2框架的MVC
M:JavaBean + ModelDriven
V:JSP + OGNL
C:Action
Struts2框架的控制器将“获取请求”和“分发转向”代码抽取出来写在配置文件中,这样一样,控制器(action类)就能专注于业务逻辑的处理了。
4.2. Struts2的两个重要组成部分
Struts2的两个重要组成部分是:核心过滤器 + 业务控制器。
4.2.1. 核心过滤器:StrutsPrepareAndExecuteFilter
作用:负责拦截所有用户的请求,该Filter在过滤用户请求后,将请求都交给Struts2框架处理。
拦截器会默认拦截扩展名为.action的请求,什么后缀都不写也可以。
例如:hello.action或者hello都会被拦截;hello.jsp就不会进行拦截,直接放行。
每次实例化对象,线程安全;Servlet是单实例的,所以线程不安全。
4.2.2. 业务控制器:Action
业务控制器就是用户实现的Action类,Action类中通常包含一个execute方法,该方法返回一个字符串(即结果码),字符串与struts.xml中的result的name相对应,跳转到不同页面。