如何使用javac编译的类文件在tomcat 7中构建java servlet?

时间:2013-03-10 22:40:29

标签: java tomcat servlets

我知道它与WEB-INF\classes有关。但是这里是我在我的类路径中放入适当的.jar文件后编译的代码。

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

public class BeeServlet extends HttpServlet
{

    public void doGet( HttpServletRequest request , HttpServletResponse response )
    {
        response.setContentType("text/html");
        try
        {
            PrintWriter out = response.getWriter();
            out.println( "a-buzz-buzz ..." );
            out.close();
        }
        catch( Exception e )
        {
            System.out.println( "cannot get writer: " + e );
        }
    }
}

它编译得很好,但我没有找到任何类型的例子,如在哪里放置它以及如何使用localhost:8080 URL调用它。我这样做是在没有IDE的情况下尝试尽可能地学习,但这一点只是让我感到困惑......

编辑 - 我编译了这段代码。我将它放入tomcat 7.0 / webapps / BeeServlet / WEB-INF / classes目录中,就像所有教程所说的那样。我键入localhost:8080 / BeeServlet,没有任何反应。这没有意义。

2 个答案:

答案 0 :(得分:1)

您需要一个Web应用程序部署描述符(web.xml),它提供URL到您的Servlet的映射以及Web服务器上项目的某个目录结构。通常,如果在IDE中使用Web应用程序项目模板,则会为您创建此结构。

理论阅读:http://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html

教程:http://www.nogoodatcoding.com/howto/deploy-a-servlet-on-tomcat

web.xml文件示例:running and deploying servlet with eclipse and tomcat 7

答案 1 :(得分:1)

webapp的结构如下:

root
  - WEB-INF
      - classes
          - .class files, respecting the package hierarchy
      - lib
          - .jar files used by your application, other than the servlet and JSP jar files
      - web.xml
  - whatever you want

在webapps下部署根目录,或者制作包含根目录内容的war文件并部署此war文件,然后你将获得一个webapp。

如果使用注释声明servlet及其映射,则自servlet 3.0(Tomcat 7)以来,web.xml不是必需的。否则,你需要一个。