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:8080正常にコンパイルされますが、どこに置くか、 URLで呼び出す方法などのような例は見つかりませんでした。できる限り学習するためにIDEなしでこれを行っていますが、この点は私を混乱させるだけです...

編集-このコードをコンパイルしました。すべてのチュートリアルで説明されているように、Tomcat 7.0/webapps/BeeServlet/WEB-INF/classes ディレクトリに配置しました。localhost:8080/BeeServlet と入力しても何も起こりません。これは意味がありません。

4

2 に答える 2

1

サーブレットへの URL のマッピングと、Web サーバー上のプロジェクトの特定のディレクトリ構造を提供する Web アプリケーション デプロイメント記述子 (web.xml) が必要です。通常、この構造は、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 を使用したサーブレットの実行とデプロイ

于 2013-03-10T22:47:22.420 に答える
1

Web アプリケーションの構造は次のとおりです。

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 が得られます。

注釈を使用してサーブレットとそのマッピングを宣言する場合、サーブレット 3.0 (Tomcat 7) 以降、web.xml は必要ありません。それ以外の場合は、1 つ必要です。

于 2013-03-10T22:48:24.210 に答える