Jetty和Maven HelloWorld(2)

构建和运行嵌入式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上。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/453a5bc793049233f4cd8bc07d0681b2.html