Struts2_01_Struts简介
程序员文章站
2023-12-23 19:02:03
...
struts在用户请求和模块化处理以及页面的展现这块,发挥着很大的作用。
相对于传统的JSP+Servlet模式,Struts更适合企业级团队开发,方便系统的维护
下载:struts官网
版本:2.3.16
Struts HelloWorld的实现
新建DynamicWebProject
将核心jar包,贴到lib目录下。
核心jar包:
在web.xml:
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把请求全部拦截 ,给Struts核心拦截器
在src目录下新建struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="helloWorld" extends="struts-default">
<action name="hello" class="com.java.action.HelloWorldAction">
<result name="success">/helloWorld.jsp</result>
</action>
</package>
</struts>
同时,新建包com.java.action,HelloWorldAction类:
public class HelloWorldAction implements Action{
public String execute() throws Exception {
System.out.println("执行了Struts默认Action方法");
return SUCCESS;
}
}
当请求hello时,跳转到helloWorld.jsp页面,新建helloWorld.jsp页面
在tomcat环境下:
并且在控制台打印:
基本原理
通过web.xml中定义的filter拦截器,将用户所有请求拦截交给org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter(核心拦截器),核心拦截器解析struts.xml,将对应的action类执行(执行默认的execute()方法),并返回值,根据返回值的不同,转发到相应页面。