创建web项目:
运行 mvn archetype:create ,加上参数 artifactId和 groupId 。 指定 archetypeArtifactId 为 maven-archetype-webapp 。 如此便创建了恰到好处的目录结构和 Maven POM:
mvn archetype:generate -DgroupId=org.sonatype.mavenbook.ch05
-DartifactId=simple-webapp
-DpackageName=org.sonatype.mavenbook
-DarchetypeArtifactId=maven-archetype-webapp
构建webapp:
使用mvn命令构建该项目后,会在target目录下生成一个发布的war包,名字是pom文件中的final-name,便以构建命令如下:
mvn install
Maven配置Jetty插件:
已经编译,测试并且打包了你的 web 应用之后,你会想要将它部署到一个servlet 容器中,然后测试一下由 Maven Archetype 插件创建的 index.jsp 。通常情况下,你需要下载 Jetty 或者 Apache Tomcat,解压分发包,复制你的应用程序 WAR文件至 webapps/ 目录,然后启动你的容器。 现在,实现同样的目的,你不再需要做这些事情。 取而代之的是,你可以使用 Maven Jetty 插件在 Maven 中运行你的 web应用。为此,你需要在项目的 pom.xml 中配置 Maven Jetty 插件。 在你项目的构建配置中添加如下插件元素:
<project>
[...]
<build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
[...]
</project>
在项目的 pom.xml 中 配置好 Maven Jetty 插件之后,你就可以调用Jetty 插件的Run 目标在 Jetty Servlet 容器中启动你的 web 应用。如下运行 mvn jetty:run :
mvn jetty:run
当maven启动了Jetty Servlet 容器之后,在浏览器中载入URL http://localhost:8080/simple-webapp/ 。 Archetype 生成的简单页面 index.jsp 没什么价值;它包含了一个文本为“Hello World!”的二级标题。即mvn的Jetty插件完成了对web工程的打包发布。
web项目添加一个简单的Servlet:
1.创建简单servlet:
一个只有一个单独的 JSP 页面而没有任何配置好的 servlet 的 web 应用程序基本是和 web.xml做些改动以支持这个变化。 首先,我们需要在目录 src/main/java 下创建一个名为org.sonatype.mavenbook.web 的新的包。
包创建好之后,切换目录至src/main/java/org/sonatype/mavenbook/web ,创建一个名为 SimpleServlet.java 的 servlet 类:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println( "SimpleServlet Executed" );
out.flush();
out.close();
}
}
2.配置servlet:
为了把这个 servlet 添加到你的 web 应用,并且使其与请求路径匹配,需要添加如下的 servlet 和 servlet-mapping 元素至你项目的web.xml 文件:(文件web.xml 可以在目录src/main/webapp/WEB-INF 中找到)
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>simple</servlet-name>
<servlet-class>com.hand.maven.zs.web.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/simple</url-pattern>
</servlet-mapping>
</web-app>
3.添加servlet API的依赖:
为了编写一个 servlet ,我们需要添加 Servlet API 作为项目依赖。给
pom.xml 添加如下的依赖元素以添加对 Servlet 规格说明 API 的依赖,让maven构建项目时自动从远程仓库中下载所需的servletAPI的所需的ajr包:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.4_spec</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
使用mvn compile构建后,使用mvn jetty:run 打包部署,在浏览器中访问http://localhost:8080/simple-webapp/simple即可访问到定义的servlet的输出,完成了一个简单web应用项目构建。