2017-06-22 3 views
0

Eclipseの単純な動的Webプロジェクトのプロジェクトディレクトリ構造maps to the Web application archive (WAR) structure defined by Sun Microsystems、Sun Microsystemsで定義されているサーブレット構造は明らかにa bit differentです。Eclipseの動的Webプロジェクトでのサーブレットディレクトリ構造の実現

ダイナミックWebプロジェクト内に1つのサーブレットクラスしか作成していない場合、サーブレットクラスファイルへのマッピングはどのように行われるのですか?私はweb.xmlのにチェックインし、該当するservletservlet-mapping子供がなかったと私はアプリケーションを実行すると、URLがfirstServletは私のプロジェクト名とこんにちはがある

http://localhost:8080/firstServlet/Hello 

ようになりますサーブレットクラス。

1.どのクラスを実行する必要があるかを知るにはどうすればよいですか?私はurl-patternと指定されていないことを意味します。こんにちはなので、なぜそのようなURLですか? url-patternがない場合、それはちょうどhttp://localhost:8080/firstServletではないでしょうか?

2.また、私は上記の標準的なサーブレットプロジェクトの構造と内部的にどのようにこのプロジェクト構造を設定していますか?

ありがとうございます!

+2

@WebServletアノテーションをコード内でチェックすると、サーブレットとフィルタをマップすることもできます – BigMike

答えて

1

私はあなたがあなたのサーブレットのURLパターンは以下のようなものになるだろうweb.xmlの

を持つ任意のマッピングを必要としない注釈の設定を使用している、ことを推測:サーブレット3.0からこの新機能

@WebServlet(name = "someThing", urlPatterns = {"/Hello"}) 

をサーブレットHelloをWebアプリケーションfirstServletにマップすることができます。

+0

ええ、アノテーションを削除して、サーブレットとサーブレットマッピングの子をweb.xmlに追加すると'url-pattern' =' \ Hello'でも同じように動作します。 私が理解できないことは、 'url-pattern'を'/welcome'として置いてみたところ、動作しませんでした。ここではそうです(https://www.javatpoint.com/steps to-create-a-servlet-using-tomcat-server)を使用します。ご覧のとおり、クラス名は 'DemoServlet'ですが'/welcome'を使います。 '/ Hello'とは別に何かを使うと、それはうまくいきません。私はすでに' servlet-class'をweb.xmlの 'Hello'と言いました。 –

+1

URLパターンには任意の文字列を使用できますが、サーブレット名はサーブレットのクラス名と同じにする必要があります。サーブレット名が 'Hello'であるのを確認してください。パターンは '/ welcome'です。また、Webアプリケーションを再デプロイする必要があります。 –

+0

とても申し訳ありません!クラス名が正しく供給されている限り、実際には任意の文字列で動作します。正しくリフレッシュしてはいけません。ありがとうございました。 –

関連する問題