web-dev-qa-db-ja.com

サーブレットJSP web.xml

JSPServletを選択するためのNetBeansの機能があり、web.xmlの結果XMLは次のようになります。

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>

どういう意味ですか?そして、それは何のためですか? コードビハインドアーキテクチャASP .NET?

12
ehsun7b

それはどういう意味ですか?そして何のためですか?

サーブレットの正規名(実際に作成したサーブレットクラスではなく)をJSP(たまたまサーブレット)にマッピングするために使用されます。単独では、あまり役に立ちません。多くの場合、サーブレットを次のようにURLパターンにマッピングする必要があります。

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>
<!--mapping-->
<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test/*</url-pattern>   
</servlet-mapping>

すべてのリクエストは現在/test/*は、JSPによって処理されます。

さらに、サーブレット仕様には次のことも記載されています。

jsp-file要素には、「/」で始まるWebアプリケーション内のJSPファイルへのフルパスが含まれます。もし jsp-fileが指定され、load-onstartup要素が存在する場合、JSPをプリコンパイルしてロードする必要があります。

したがって、ビルドプロセスでサーブレットがプリコンパイルされていない場合は、サーブレットのプリコンパイルに使用できます。この方法でJSPをプリコンパイルすることは、ベストプラクティスではないことに注意してください。理想的には、ビルドスクリプトがそのような問題を処理する必要があります。

ASP .NET?のアーキテクチャの背後にあるコードに似ていますか?

いいえ。分離コードアーキテクチャを探している場合、そのようなものに最も類似しているのは、JSFが提供するManaged Beansサポートです。

32
Vineet Reynolds

JSP areサーブレット。 JSPは、.jspファイルを解析し、サーブレットの.Javaファイルを生成するテンプレートテクノロジーです。それが完了すると、.Javaファイルは、サーブレット/ JSPエンジンコンテキストで実行される.classファイルにコンパイルされます。

Web.xmlファイルは、.jspファイルをサーブレット名に関連付けるだけです。さらに、その.jspをURLにマッピングして、サーブレット/ JSPエンジンがいつそれを呼び出すかを知る必要があります。

ASPまたは.NETが「コードビハインド」と同じかどうかを十分に判断できません。

7
duffymo

JSPは一種のサーブレットです。 JSPページはサーブレットにコンパイルされます。このサーブレットは、任意のJava Webサーバーによって提供されるサーブレットコンテナで実行されます。

Web.xmlで、<servlet>タグは、名前サーブレットクラスとjspファイルに名前を付けるために使用されます。その後、これらのサーブレットとjspファイルを独自のURLに従ってマップできます。

<servlet>
   <servlet-name>hello</servlet-name>
   <jsp-file>/jsp/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/helloworld</url-pattern>
</servlet-mapping>

Hello.jspファイルがJSPフォルダーの下にある場合。/helloworldでURLを開こうとしたとき。ページhello.jspが開きます。

4