创建一个maven标准的web项目
首先,我们需要创建一个maven标准的web项目,怎么做,不需要我说了吧!如果有不知道的,那么可以参考我这篇博客——《在eclispe中配置maven,然后再使用maven创建一个web项目》。
实现web项目整合Struts2框架
第一步,在web项目的pom.xml文件中添加如下依赖:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.24</version>
</dependency>
这时,你会发现与Struts2开发相关的jar包都引入到该web项目中了,再也不用像之前那样一个一个地引入jar包了,而且还要想清楚到底要引入哪些jar包,费时费神!
有一点需要我们注意,在添加servlet-api-2.5.jar与jsp-api-2.0.jar的依赖时,一定要将这俩依赖的scope置为provided。
第二步,在src/main/java目录下新建一个com.meimeixia.action包,并在该包编写一个Action,例如HelloAction.java。
package com.meimeixia.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("进入HelloAction,返回默认的jsp页面!");
return SUCCESS;
}
}
第三步,在src/main/resources目录下新建一个struts.xml文件,其内容如下:
<?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="helloAction" class="com.meimeixia.action.HelloAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
相应地,就要在src/main/webapp目录下新建一个index.jsp页面了。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
第一次使用maven工程,进入index.jsp页面
</body>
</html>
第四步,在web.xml文件中配置Struts2的前端控制器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>mavenstruts</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
第五步,使用maven内置的tomcat的插件(tomcat7-maven-plugin)来运行以上创建好的web项目,大家可以按照下图所示的步骤进行操作。
然后,在弹出的窗口中输入tomcat7:run
命令,点击Run即可运行以上创建好的web项目。
这时,eclipse控制台将会打印如下内容。
从中可以发现使用maven内置的tomcat7插件来运行web项目已经运行成功了。紧接着,打开Google Chrome浏览器,并访问http://localhost:8080/mavenstruts/helloAction
这样一个url地址,你就会看到如下图所示的结果了。
你有没有想过,通过maven内置的tomcat7插件来运行maven项目时,这个tomcat7插件它到底在哪里呢?实际上,它在本地仓库里面,如下图所示。
你不禁又要问了,这个tomcat7插件它到底是怎么工作的呢?其实,这个tomcat7插件是去模拟了一个tomcat服务器的运行环境,它并不是一个真正的tomcat服务器,跟我们本地的tomcat服务器还是有差别的。通过这个tomcat7插件启动了模拟出来的tomcat服务器,那么我们这个web项目是丢在了哪里呢?找不到它,因为它就是一个虚的玩意。
可以看到这个tomcat7插件也有其坐标,如下图所示。
我们可以把这个插件当作一个依赖(引用坐标)来看待,那么它是怎么去模拟tomcat服务器的运行环境的呢?实际上,它是把tomcat服务器运行需要的那些jar包都依赖进去了,这样就相当于一个tomcat服务器了,但我们要知道它并不是一个真正的tomcat服务器。
在真实项目开发过程中,一般都会推荐使用本地的tomcat服务器来部署以及运行项目,因为这样会比较直观。为什么直观呢?因为项目确确实实地部署在了本地tomcat服务器的webapps目录下。只不过使用本地的tomcat服务器来部署以及运行项目有点繁琐而已!