Struts2不仅仅是Struts1 的升级版本,更是一个全新的Struts架构,是当前较为普及和成熟的基于MVC设计模式的Web应用程序框架,并在RIA(Rich Internet Applications)Web应用程序开发中得到了广泛应用,成为最好的Web框架之一。本文将通过详细的步骤来说明如何下载获取相关资源、安装设置开发环境、创建Java Web应用程序以及如何配置引入Struts2框架技术。
1.开发环境安装配置
在网上搜索下载Eclipse、JDK、Tomcat、Struts等软件,也可以通过百度网盘在以下地址下载所需要的全部资源:https://pan.baidu.com/s/1A0S0yC3dI37P5E-ImuHUEg?pwd=ddu6(提取码:ddu6) 。本文中用到的Eclipse版本信息为:Eclipse Java EE IDE for Web Developers.Version: Photon Release (4.8.0).Build id: 20180619-1200;JDK:jdk1.8.0_25;Tomcat:apache-tomcat-9.0.41;Struts:struts-2.5.33-min-lib。
(1)安装JDK:从百度网盘下载的JDK只需要按照提示步骤安装即可,不需要配置环境变量;
(2)安装Tomcat:从百度网盘下载的Tomcat Web服务器也仅需要按照提示步骤安装即可;
(3)安装Eclipse:把从百度网盘下载的Eclipse软件包解压缩到目标磁盘,在解压缩后的文件夹中找到汉化包,并按照说明文件的提示步骤复制汉化包到指定位置,就能汉化Eclipse IDE,然后执行Eclipse启动程序就能进入开发界面。
2 为Eclipse IDE添加Tomcat Web服务器
(1)在IDE菜单中依次选择《Windows窗口》--《首选项》--在左侧导航栏选择《Server》项--《Runtime Environments》,然后在右侧《Add》按钮,如图1。
图1 添加Tomcat Web服务器
(2)在《New Server Runtime Environment》对话框中,如图2,选择《Apache》列表中的《Apache Tomcat v9.0》选项,然后点击《下一步》按钮。
图2 《New Server Runtime Environment》对话框
(3)在确定Tomcat安装位置对话框中,通过《Browse》按钮选择自己安装Tomcat服务器的位置,如图3,然后点击《完成》按钮。
图3 确定Tomcat安装位置对话框
(4)最后在《首选项》对话框中点击《应用并关闭》按钮,如图4。
图4 《首选项》对话框
3.创建一个Java Web应用程序
(1)打开创建Web应用程序向导:运行Eclipse IDE,依次选择菜单项《文件》-->《新建》-->《Dynamic Web Project》,如图5,或者《文件》-->《新建》-->《其他》,在打开的对话框中找到《Web》选项并打开,如图6,然后选择《Dynamic Web Project》选项,再点击《下一步》按钮打开创建Web应用程序向导。
图5 打开创建Web应用程序向导
图6 打开创建Web应用程序向导
(2)创建名为myStruts的Web应用程序:在《New Dynamic Web Project》对话框中找到《Project Name》标签并在后面的文本框中输入Web应用程序的名字,这里是myStruts。找到《Target runtime》标签,在他下面打开下拉选择框选择《Apache Tomcate v9.0》,如图7。设置完成后点击《下一步》按钮。
图7 Web应用程序基本信息设置对话框
(3)在Web应用程序配置对话框中(如图4)直接点击《下一步》按钮。
图8 Web应用程序配置对话框
(4)Web应用程序模型设置对话框(如图9)中勾选《Generate web.xml deployment descriptor》选项,然后点击《完成》按钮完成一个Java Web应用程序的创建工作。
图9 Web应用程序模型设置对话框
(5)创建index.jsp文件,文件代码:
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<meta charset="UTF-8">
<title>Basic Struts 2 Application</title>
</head>
<body>
<h1>Welcome To Struts 2!</h1>
</body>
</html>
运行Web应用结果为:
图10 Web应用运行结果
4. 添加 Struts 2 的jar文件到项目中
(1)复制Struts文件到项目中:将下载struts-2.5.33-min-lib.zip文件解压缩,然后复制所有文件到Web项目的WebContent/WEB-INF/lib文件夹下,如图11。
图11 导入Struts文件后程序结构图
(2)添加Struts文件到引用库:在项目导航来选择省Struts所有文件,然后右键点击,在弹出的快捷菜单中依次选择《构建路径》-->《添加至构建路径》,如图12。Eclipse添加到引用库的作用是让项目能够访问和使用外部的类库或JAR包,从而扩展项目的功能。在软件开发过程中,经常需要使用到第三方库或者自己编写的类库,这些库通常以JAR包的形式存在。通过将这些JAR包添加到Eclipse的引用库中,项目就可以直接引用这些库中的类和方法,而无需重新编写或实现相应的功能。这样做的好处是提高了开发效率,减少了重复劳动,同时也便于管理和维护项目依赖的类库。
图12 添加Struts文件到引用库
5. 在web.xml文件中添加配置struts2 的过滤器
在项目中打开web.xml文件建下面加粗倾斜的内容添加进来。Struts过滤器的配置内容不同版本不尽相同,可以在官网下载例子程序参考修改。在struts-2.5.33版本中将prepare和execute过滤器分别进行配置。将URL模式配置成<url-pattern>/*</url-pattern>意味着struts2的过滤器将会被应用到这个web 应用的所有URL上。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>myStruts</display-name>
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
6. 创建和配置struts.xml文件
struts.xml文件是Struts 2框架的核心配置文件,具有重要的作用。它主要负责管理应用中的Action映射以及该Action包含的Result定义。struts.xml文件存放于Web应用的类加载路径下,具体位置为WEB-INF/classes路径下。该文件主要用来配置Action和HTTP请求的对应关系,以及配置逻辑视图和物理视图资源的对应关系。除了这些基本功能,struts.xml还有一些额外的功能,如配置常量、导入其他配置文件等。该文件的配置也可以参考Struts提供的例子程序中struts.xml文件。在项目的src文件夹下创建struts.xml文件,如图13,最简单的配置文件内容如下:
图13 创建完成struts.xml文件后项目的结构图
7. 测试Strusts2配置效果
在上面的struts.xml文件中将名称为“index”的action项目的响应结果“result”配置为/index.jsp,这个简单的配置告诉struts2框架,如果访问的URL是http://localhost:8080/myStruts/index.action或是http://localhost:8080/myStruts/index则转发到index.jsp视图响应。
(1)设置Eclipse IDE测试用浏览器:在IDE菜单中依次选择《窗口》-->《Web Browser》-->《Chrome》即可完成设置,如图14。
图14 设置Eclipse IDE测试用浏览器
(2)启动Tomcat服务器:首先打开Server试图,在IDE菜单栏中依次选择《窗口》-->《显示视图》-->《Servers》,然后在窗口的右下部分找到绿色箭头按钮,点击即可启动Tomcat服务器,如图15。
图15 启动Tomcat服务器
(3)在Google Chrome浏览器中测试:当我们在浏览器中输入网址http://localhost:8080/myStruts/index访问测试时,其相应结果如图16:
图16 Struts 2测试运行结果
8.常见问题1
在新创建的jsp文件开始位置出现如下警告信息:“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”,出现该警告信息是因为在创建Java Web应用程序的时候没有选择设置运行时的环境为Tomcat,或者是还没有把安装和设置好的Tomcat Web服务器添加到Eclipse IDE中,解决该问题需要完成以下设置;
(1)用鼠标右键点击新建的Web应用程序,在弹出的快捷菜单中依次选择《构建路径》-->《配置构建路径》,如下图17。
图17 配置构建路径
(2)在Web应用程序属性对话框中《构建路径》,然后在右侧项目中点击《添加库》按钮,如图18。
图18 添加库
(3)在添加库对话框中,选择《Server Runtime》选项,然后点击《下一步》按钮,如图19。
图19 选择Sever Runtime
(4)继续选择《Apache Tomcat v9.0》选项,然后点击《完成》按钮,如图20,接着在返回Web应用属性对话框中点击《应用并关闭》按钮即可完成设置。
图20 选择《Apache Tomcat v9.0》选项