struts2分模块开发
什么是struts2
Struts2就是一个框架,它是属于web层的一个框架, Struts设计的第一目标就是使MVC模式应用于web程序设计
struts2优势
1.实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。 |
---|
2.丰富的标签库,大大提高了开发的效率。 |
3.Struts2提供丰富的拦截器实现。 |
4.通过配置文件,就可以掌握整个系统各个部分之间的关系。 |
5.异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。 |
6.Struts2的可扩展性高。 |
7.面向切面编程的思想在Strut2中也有了很好的体现。 |
struts2的原理
1.发送*.action请求(postman或浏览器)
2.由Struts2的核心过滤器接收*.action请求
3.strut是根据请求路径名找到对应的struts配置文件中的action配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="struts-StrutsAction" extends="struts-base">
<action name="StrutsAction" method="execute" class="com.shegx.action.StrutsAction"></action>
</package>
</struts>
4.如果配置成功,则根据action标签中的name对应class属性反射机制实例化对象
全局属性文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 开启开发者模式 -->
<constant name="struts.devMode" value="true"></constant>
<!-- 开启自动加载配置文件 -->
<constant name="struts.configuration.xml.reload" value="true"></constant>
<!--
name:包名
extends:继承
abstract:是否是抽象类
namespace:命名空间
-->
<package name="struts-base" extends="struts-default" abstract="true">
<global-allowed-methods>regex:.*</global-allowed-methods>
</package>
</struts>
演示:
/**
*
*/
package com.shegx.action;
/**
* 演示Action类
* @author SHEGX
*2020年7月17日上午10:04:49
*/
public class StrutsAction {
public String execute() {
System.out.println("struts");
return null;
}
}
结果:
分模块开发配置文件整合
在开发中,通常很多人都需要修改同一个配置文件struts.xml,一旦这个文件改错了一点,那么会导致整个项目都出现问题,所以我们可以在开发中,每个人建立自己struts-name.xml,然后通过include标签,将所有子配置加入到核心配置文件struts.xml中