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