![JavaWeb从入门到精通(视频实战版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/964/602964/b_602964.jpg)
4.3 发布与测试
本节将展示在Tomcat中如何发布一个借助Struts2框架开发的应用程序,并展示测试结果。最后通过分析这个例子是如何工作的,说明Struts2各个模块之间的关系,以及请求是如何在其间流转的。
4.3.1 发布
在Tomcat的webapps目录下创建一个Web应用目录struts2,JSP文件应该放在这个目录下。在此目录下创建子目录WEB-INF,web.xml文件应该在此目录下。程序中编写的类class文件和struts.xml文件应该放在WEB-INF/classes目录下,最重要的是要把Struts2提供的jar文件拷贝到WEB-INF/lib下,这样在程序中才能引用到Struts2的API。图4.3所示为Web应用struts2目录的内部结构。
4.3.2 测试结果
重新启动Tomcat,访问http://localhost:8080/struts2/HelloReader.action,结果如图4.4所示。
4.3.3 分析处理流程
这个例子的处理流程如图4.5所示。
![](https://epubservercos.yuewen.com/7905DB/3590815803508101/epubprivate/OEBPS/Images/figure_0073_0001.jpg?sign=1738874601-HkKElETQ3fRjGRoA71e9zppq3ilK8MLv-0-3b6c0e67d1a176869ad7588bb2286786)
图4.3 struts2目录结构图
![](https://epubservercos.yuewen.com/7905DB/3590815803508101/epubprivate/OEBPS/Images/figure_0073_0002.jpg?sign=1738874601-A6uelIpQbXP2HvlPv4oO9Nc0pqSL4BJC-0-968f138403d297856d32d1e1d463c692)
图4.4 Struts示例结果页面
![](https://epubservercos.yuewen.com/7905DB/3590815803508101/epubprivate/OEBPS/Images/figure_0073_0003.jpg?sign=1738874601-4j3qhy7ghDcb0YnN0nAghHHsTHXVjrD8-0-d4ccffaee3b8c72a730b63cd769baa5f)
图4.5 例子流程图
1)浏览器请求http://localhost/HelloReader.action,发送到Web应用服务器。
2)应用服务器接受此请求,查看webapp/WEB-INF/web.xml中的配置,发现所有的请求都要经过过滤器org.apache.struts2.dispatcher.FilterDispatcher。调用这个过滤器,由此进入Struts2流程中。
3)Struts2查看在struts.xml中有action名为“HelloReader”的配置,再找到对应的类HelloReader.class。
4)调用HelloReader.class的execute方法。
5)execute方法处理业务给message字段赋值并返回SUCCESS。
6)Struts2又一次在struts.xml中查看,返回值是SUCCESS时的result是HelloReader.jsp,则跳转到该页面。
7)页面HelloReader.jsp处理<s:property value="message"/>标签,调用HelloWorld.java中的方法getMessage(),取得message。
8)标签显示message并以HTML格式发送到浏览器。