将一个简单的hello world servlet编译成.war用于tomcat

时间:2011-10-28 03:02:28

标签: java tomcat

我正在做一些简单的基准测试,我想创建一个显示hello world的简单servlet,我有这个部分:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet{ 
  public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></title>");
  pw.println("<body>");
  pw.println("<h1>Hello World</h1>");
  pw.println("</body></html>");
  }
}

现在我安装了tomcat的默认安装文件夹:

... /的libexec / web应用/ ROOT

我相信我必须删除war文件,是否可以使用命令行将上述java类编译为.war文件和编辑器?

1 个答案:

答案 0 :(得分:5)

war文件只是一个zip文件,因此使用适当的目录结构和web.xml,您可以使用命令行工具创建一个。

web.xml至少应包含将URL指向servlet的方法。

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
  <servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

此web.xml应位于战争中名为WEB-INF的文件夹中,已编译的java类文件应位于WEB-INF/classes

war文件应该放在webapps目录中,而不是ROOT目录中。

Tomcat会找到你的war文件,然后解压缩。

如果它被命名为“hello.war”,则默认上下文名称将为“hello”,并在http://yourhost/hello/

处访问