maven实战(三)maven创建简单web项目

创建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应用项目构建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值