MVC架构
- MVC是一个Model–View–Controller 软件设计架构。
- Model:模型层 DAO层 存取数据的
- View: 视图层 显示数据 JSP
- Controller:控制层 Servlet
- Controller---->service---->Dao:Servlet、Action、Controller可以是控制器
- MVC是一种将数据和显示以及业务逻辑分离软件架构。各部分各司其职,便于扩展和维护。
- Model1: JSP+JAVABEAN
- Model2:JSP+SERVLET+JAVABEAN
Struts是一款免费的、开源的容易搭建的MVC架构的具体是实现框架。支持约定优于配置【很多配置项都不需要写,有默认值】,支持扩展插件,支持AJAX和json
搭建环境
- 添加JAR包
- 添加过滤器
- 添加核心配置文件struts.xml
Action与Servlet的区别?
-
Action类每次请求都会构造对象,Servlet 是单实例的。
-
Action类是一个普通类,Servlet则必须实现Servlet标准(javax.servlet.Servlet,javax.servlet.http.HttpServlet)
-
Action不与容器耦合,便于测试,Servlet与容器耦合。
Action底层与Servlet没有关系!!~~
Struts中跳转类型?
- type:
dispatcher:默认的 以请求转发的方式跳转到其他页面。
redirect:以重定向的方式跳转到其他页面。 - chain:表示以请求转发的方式跳转到其他action
redirectAction:表示以重定向的方式跳转到其他Action
资源文件
资源文件:
- struts-default.xml
该文件定义了Struts默认的包,struts-default包,定义了常用的result
还定义了一堆的拦截器 和拦截器栈 - default.properties:
struts的默认行为:默认拦截后缀 默认的文件上传的大小。。
该文件中的属性都可以通过在struts.xml中添加来修改
在struts中如何获得Servlet的API?【request,response,session,Application】
- ServletActionContext工具类 获得原始对象
- ActionContext工具类获得四大Map
- 实现requestAware SessionAware ApplicationAware ParameterAware…接口效果与2一样,该方式是获得全局变量
- 实现ServletRequestAware ServletResponseAware 效果与1 一样
struts.xml
-
服务器启动:构造strutsPreparedAndExecuteFilter的对象,并且初始化,
在初始化时读取struts的配置文件。没问题,等待客户端请求 -
请求到达:根据请求的名字到struts.xml中寻找指定的action的name,根据名字找到对应的
class类,创建该类的对象,然后使用指定的方法处理【默认是execute方法处理】,处理完毕之后,根据方法
返回值到《result》中寻找对应的跳转地址,跳转到指定地址。2.1. :表示包,一般struts使用包来组织代码,一个功能模块一般在一个包里。
name:包名字 不重复
extends:表示继承,必须继承struts-default默认包,很多struts的功能都被封装在
默认包中,必须继承.2.2. :表示请求。
name:请求名字【不带后缀】
class:请求的处理类2.3 :表示结果
name:返回的字符串 默认是success,一般与Action类中处理方法的返回值一致
type:
-
dispatcher:默认的 以请求转发的方式跳转到其他页面。
-
redirect:以重定向的方式跳转到其他页面。
-
chain:表示以请求转发的方式跳转到其他action
-
redirectAction:表示以重定向的方式跳转到其他Action
-
资源文件:
3.1. struts-default.xml
该文件定义了Struts默认的包,struts-default包,定义了常用的result
还定义了一堆的拦截器 和拦截器栈3.2 default.properties:
struts的默认行为:默认拦截后缀 默认的文件上传的大小。。
该文件中的属性都可以通过在struts.xml中添加来修改