Struts2-02环境准备
Struts2的环境准备
1. 创建WEB项目,编写JSP的页面,编写超链接,点击超链接发送请求,请求服务器,让服务器的方法去执行!!
<h3>Struts2的入门程序</h3>
<a href="${ pageContext.request.contextPath }/hello.action">Struts2入门程序</a>
2. 下载Struts2的开发包
* https://struts.apache.org/ -- 官网地址
3. 解压struts-2.3.24-all.zip包
* 解压后会看到有包和一些文件,大家需要掌握包相关的信息
* apps -- Struts2框架提供了一些应用
* libs -- Struts2框架开发的jar包
* docs -- Struts2框架开发文档
* src -- Struts2框架源码
4. 引入需要开发的jar包
* Struts2框架的开发jar包非常多,但是不是所有都是必须要引入的,有一些必须要导入的jar包,这些jar包可以从Struts2框架提供的应用中找到。
* 大家可以打开apps目录,然后找到struts2-blank.war应用。war包和zip包的压缩格式是一样的,所以可以自己修改后缀名,解压。
* 找到解压后的应用,打开WEB-INF/lib目录下所以的jar包。复制到工程中,就可以了。
5. 需要配置Struts2的前端控制器,注意:这一步是必须要做的操作,这是Struts2核心的控制器。
* Struts2的前端控制器就是一个过滤器,那么过滤器相关知识咱们都学习过,需要在web.xml中进行配置。
* 前端控制器的类的路径和名称:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
* 具体配置如下
<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>
----------
编写Action类
1. Action类是动作类,是Struts2处理请求,封装数据,响应页面的核心控制器。需要自己编写。
package cn.itcast.action;
public String sayHello(){
System.out.println("Hello Struts2!!");
return null;
}
----------
编写Struts的配置文件
1. 配置文件名称是struts.xml(名称必须是struts.xml)
2. 在src下引入struts.xml配置文件(配置文件的路径必须是在src的目录下)
3. 配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="com.itheima.action.HelloAction" method="sayHello">
</action>
</package>
</struts>
----------
Struts2的执行流程
1. 执行的流程
* 编写的页面,点击超链接,请求提交到服务器端。
* 请求会先经过Struts2的核心过滤器(StrutsPrepareAndExecuteFilter)
* 过滤器的功能是完成了一部分代码功能
* 就是一系列的拦截器执行了,进行一些处理工作。
* 咱们可以在struts-default.xml配置文件中看到有很多的拦截器。可以通过断点的方式来演示。
* 拦截器执行完后,会根据struts.xml的配置文件找到请求路径,找到具体的类,通过反射的方式让方法执行。
2. 总结
* JSP页面-->StrutsPrepereAndExecuteFilter过滤器-->执行一系列拦截器(完成了部分代码)-->执行到目标Action-->返回字符串-->结果页面(result)-->页面跳转