构建和运行嵌入式HelloWorld
你现在能够使用下面的命令编译和执行HelloWorld类。
mvn clean compile exec:Java
你能使用浏览器打开:8080看到Hello world页面。你能使用mvndependency:tree命令查看Maven幕后为你做了什么。它揭露解析和下载的依赖关系,如下:
> mvn dependency:tree
[INFO] Scanning for projects...
[INFO] Searching repository for plugin withprefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Jetty HelloWorld
[INFO] task-segment: [dependency:tree]
[INFO]------------------------------------------------------------------------
[INFO] [dependency:tree {execution:default-cli}]
[INFO]org.example:hello-world:jar:0.1-SNAPSHOT
[INFO] \-org.eclipse.jetty:jetty-server:jar:7.0.1.v20091125:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] +- org.eclipse.jetty:jetty-continuation:jar:7.0.1.v20091125:compile
[INFO] \- org.eclipse.jetty:jetty-http:jar:7.0.1.v20091125:compile
[INFO] \- org.eclipse.jetty:jetty-io:jar:7.0.1.v20091125:compile
[INFO] \-org.eclipse.jetty:jetty-util:jar:7.0.1.v20091125:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Tue Feb 16 16:19:08 EST2010
[INFO] Final Memory: 11M/68M
[INFO]------------------------------------------------------------------------
使用Jetty和Maven开发标准WebApp上面的例子显示如何使用嵌入式Jetty处理器运行Hello world示例。下面的示例显示如何使用Maven和Jetty开发一个标准的WebApp。首先创建Maven结构。
mkdir JettyMavenHelloWarApp
cd JettyMavenHelloWarApp
mkdir -p src/main/java/org/example
mkdir -p src/main/webapp/WEB-INF
创建静态内容:
一个Web应用可以包含静态内容,因此创建文件src/main/webapp/index.html,内容如下:
<h1>Hello World Webapp</h1>
<a href="https://www.linuxidc.com/hello">HelloServlet</a>
创建一个Servlet
使用编辑器创建src/main/java/org/example/HelloServlet.java,内容如下:
package org.example;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extendsHttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>HelloServlet</h1>");
response.getWriter().println("session=" +request.getSession(true).getId());
}
}
该Servlet需要在部署描述中声明,因此编译src/main/webapp/WEB-INF/web.xml,添加如下内容。
<?xml version="1.0"encoding="ISO-8859-1"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee"
version="2.5">
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>org.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
</web-app>
构建和运行Web应用:
拷贝pom.xml,使用下面命令构建和运行Web应用。
mvn jetty:run
你能在:8080/hello-world/hello中看到静态和动态的内容。内容的路径是url(hello-world)的一部分,来自于pom.xml文件中的人工ID。
构建WAR文件:
你能为项目创建一个WebApplication Archive(WAR)文件,使用命令:
mvn package
生成的war文件位于target目录中,你可以把它部署到标准servlet服务上或者部署到Jetty上。