struts 主要是负责web层
struts使用优势
封装了一些功能
1 自动封装了参数
2 结果处理重定向
3 防止表单重复提交
4 国际化处理
struts1 内部使用了Servlet实现的 是线程不安全的(不能访问共享数据)
struts2 内部是通过Filter来实现的,是 线程安全的
struts2 优势
1 拦截器中封装了很多功能
2 可以插拔的设计
3 aop 思想 (纵向代码的横向抽取) 面向切面编程
struts.xml 配置
/1.jsp
package中
name 可以随便写,只要不重复就可以了
namespace 命名空间 访问网址前的一个部分 ,区分你写的模块
可以随便写
extends 继承一个包 struts-default 默认的配置,默认提供功能
action中
name 访问这个类的路径
class 类的权限定类名
method 类中被访问的方法
result中
name 方法的返回值
type 默认的跳转 方式 默认是请求转发
值部分 跳转的是网站资源
一些常量配置修改
action 表示有没有后缀
配置热加载 更改完了不用重启服务器
可以去default-properties文件中找要修改的配置 ,核心包下第一个
简单执行流程
/hello/HelloAction
1 通过网址请求中的hello
2 找对应的命名空间(网址)
3 找到后再通过网址中的HelloAction去匹配 Action标签中的name
4 匹配上 用class标签 创建其类的对象
5 调用该类的方法
6 拿到该类中的方法的返回值,去匹配 result标签
7 返回值匹配上去调用标签中的页面
Action类的创建方式一
随便一个普通类都可以作为一个Action类
只需要你去配置struts.xml配置文件
相比于Servlet减少代码的侵入性
public class Demo11 {
}
创建方式二
实现Action方式二 ,实现一个Action 接口
意义在于可以提醒你Action类中的方法该怎么写
public class Dmoe22 implements Action{
public String execute() throws Exception {
return null;
}
}
创建Action方法三 常用方式
因为该类实现了很多接口 一个接口就有一个功能
public class Demo05 extends ActionSupport{
}