我正在做一些简单的基准测试,我想创建一个显示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文件和编辑器?
答案 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/