参考学习:https://how2j.cn/k/struts/struts-tutorial/54.html
目录
一、Struts是什么
Struts2是一个相对流行的MVC框架。感觉就是struts2是处理访问服务器的请求的 取代了servlet。
传统的servlet/jsp实现的MVC架构,其运行机制是:jsp页面(视图view)发送消息到servlet(控制器Controller),servlet获取请求数据,处理业务逻辑,分发转向。这样的话,servlet就太麻烦了,处理请求信息和业务处理都写在servlet,而且业务逻辑全是硬编码,代码都写死了不利于维护。
Struts2框架的MVC分别对应:
V:jsp+OGNL
C:action类
M:javabean+ModelDriven
Struts2框架的控制器将“获取请求”和“分发转向”代码抽取出来写在配置文件里,这样一来,控制器(action类)就能专注于业务逻辑的处理了。
二、部署
(0)创建项目
(1)导入所需的jar包
(2)创建web.xml(放在WEB_INF)
(3)创建实体类
(4)创建动作Action用于控制
(5)配置struts.xml(放在src)
(6)创建jsp页面
三、实例(用Struts显示数据到JSP)
步骤
(1)导入所需的jar包
(2)创建web.xml(放在WEB_INF)
配置一个 Filter, 所有的请求都被过滤给了这个 Filter
就是Struts
(3)创建一个实体类Product.java
(4)创建一个动作ProductAction用于控制
package com.how2java.action;
import java.util.Date;
import com.how2java.bean.Product;
public class ProductAction {
private Product product;
public String show() {
product = new Product();
//重点是这里
Date date=new Date();
product.setName(date.toString());
return "show";
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
}
(5)配置struts.xml(放在src)
该配置表示 访问路径/showProduct会调用 ProductAction 类的 show 方法
服务端跳转到show.jsp
(6)show.jsp
通过EL表达式,取出product的name
(7)访问http://127.0.0.1:8080/struts/showProduct
这里把它改成了时间
Struts配置里面的一些解释
(1)name=“showProduct”:是路径名
(2)class=“com.how2java.action.ProductAction”:访问该路径时,查找的类
(3)method=“show”:执行的方法
(4)方法返回的参数是show时,会访问该结果中的页面,‘所以show()方法返回的字符串是show时,会访问show.jsp’
(5)show.jsp:方法返回show时,访问的页面是show.jsp
四、原理
- 访问路径 /showProduct
- 所有访问都被struts的filter所拦截,并进入struts的工作流程
- 根据配置文件struts.xml, 会执行ProductAction的show方法
- 在show方法中,将实例属性product指向一个新的对象,并设置名称为iphone7
- 服务端跳转到show.jsp
- 在show.jsp中,访问ProductAction.getProduct() 获取实例属性product,并显示其名称iphone7