本系列文章在 https://github.com/freestylefly/javaStudy 持(huan)续(ying)更(jia)新(入)中,欢迎有兴趣的童鞋们关注。
一、Struts2的概述
1、什么是Struts2
是一个机遇MVC设计模式的web层框架
2、常见的web层框架
Struts2
Struts1
Webwork
SpringMVC
所有web层框架都有一个特点就是都是基于前端控制器实现的
3、前端控制器模式
传统的servlet开发,有一次请求就会对应一个servlet,这样会导致出现很多的servlet,而Struts2的请求都会先经过前端控制器,在前端控制器中实现框架的部分功能,剩下的具体操作要提交到具体的Action中过滤器是最好的前端控制器的实现方式
二、Struts2快速入门
1、Struts2开发包目录结构
apps:提供Struts2提供的示例程序,其中有一个blank.war可以用来赋值基础的一些jar包
does:Struts2的官方文档,API文档
lib:jar包以及第三方插件类库
src:Struts2的源代码
2、Struts2的开发流程
当客户端发送强求过来,先经过前端控制器(核心过滤器StrutsPrepareAndExecuteFilter)过滤器中执行一组拦截器,一组拦截器就会完成部分功能,拦截器执行完成以后,就会执行目标Action,在Action中返回一个结果视图,根据Struts.xml中配置实现页面跳转
3、Action类
1 | public class CustomerAction extends ActionSupport { |
4、Action类配置Struts2.xml
1 | <?xml version="1.0" encoding="UTF-8" ?> |
5、配置前端控制器(核心过滤器)
1 | <!-- Struts2的核心过滤器配置 --> |
三、Struts2的常见配置
1、eclipse中xml的did配置
这样写配置文件到 时候会有提示(不是联网的时候)
2、Struts2配置文件的加载顺序
加载顺序
一般在struts.xml中进行配置
3、Action的配置
1)package标签配置
lpackage标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
2)action标签配置
4、Struts2常量配置
5、分模块开发的配置
实际开发中分模块发开进行的Struts.xml每个人各自配置,然后需要整合到主struts.xml配置中使用的 是include标签,将各个模块的xml配置整合进来
四、Action的访问
1、Action的写法
1)Action类是POJO类
POJO就是不继承任何类也不识闲任何借口 的普通类
只需要写一个有返回String的execute方法
1 | package com.canghe.strutts.demo1; |
2) Action类实现一个Action的接口
1 | package com.canghe.strutts.demo2; |
3) Action类继承ActionSupport类
1 | package com.canghe.strutts.demo2; |
实际开发中,常用继承ActionSupport的方式写Action,里面含有数据校验、国际化操作的一系列方法
2、Action的访问
1)通过method设置
配置:
1 | <action name="userFind" class="com.canghe.strutts.demo3.StrutsDemo1" method="find"></action> |
页面“
1 | <h3>method方式设置Action的访问</h3> |
Action类:
1 | package com.canghe.strutts.demo3; |
2)通过通配符的方式访问(常用)
页面访问连接写法:
1 | <h3>通配符方式设置Action的访问</h3> |
配置文件的写法:
1 | <!-- 通过通配符的方式配置 --> |
还有一种更抽象的写法
3)动态方法访问
1 | <!-- 开启动态方法访问 --> |
1 | <!-- 通过动态访问的方式访问action --> |
1 | <h3>动态访问设置Action的访问</h3> |