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應用項目構建。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章