1

我知道这与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:8080URL 调用它。我在没有 IDE 的情况下这样做是为了尽可能地学习,但这一点让我很困惑......

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

4

2 回答 2

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 文件示例:使用 eclipse 和 tomcat 7 运行和部署 servlet

于 2013-03-10T22:47:22.420 回答
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。否则,你需要一个。

于 2013-03-10T22:48:24.210 回答