JavaWeb从入门到精通(视频实战版)
上QQ阅读APP看书,第一时间看更新

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所示。

图4.3 struts2目录结构图

图4.4 Struts示例结果页面

图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格式发送到浏览器。