0

jspで本(教科書)を読んでいて、わからないことがありました。この本では、jsp ページを実行する必要があり、そのために tomcat 5.5 の servlet.xml にコンテキストを設定しました。

<Context path="JSPTEST" docBase = "G:\Tomcat5.5"\webapps\JSPTEST"></Context>

そのフォルダ内の jsp は次の場所でアクセスされます。http://localhost:8080/JSPTEST/filename.jsp

私が最初に気付いたのは、docBase は実際にはサーバー上の webapp であるため、このコンテキストを設定してもしなくても、同じ上で実行されるurlので、ポイントは何ですか?

Tomcat 7 をインストールし、コンテキストを追加しましたconf/context.xml

Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" />

practicaltomcat を再起動したフォルダの下に hello.jsp を配置しましたが、これで catalina_log に応答がありませんでした。私にとって、これは仮想ホストを設定する別の方法です(Apache httpdで仮想ホストを作成する方法については良い考えがあります)ので、今はちょっと混乱しています。

質問 1正確にはどのようなコンテキストが使用されますか? 私はTomcatのドキュメントを見てきましたが、それはベルを鳴らしませんでした

質問2 tomcat 7で「同じ」ことを機能させるにはどうすればよいですか(もちろんファイルをtomcatに入れずに)?

4

1 に答える 1

2

1- コンテキストは、Web コンテナー内の webb-app を説明するものです。path="JSPTEST"そこでは、リソースが配置されている web-app へのアクセスに使用するパス(ドキュメント ベース/ルート)docBase = "G:\Tomcat5.5"\webapps\JSPTEST"や、たとえばデータベースにアクセスするための JNDI リソースなどを定義できます。

したがって、Tomcat 5 で行った構成は次のように読み取られます。

サーバーにパスを尋ねるとJSPTEST(witch は Web アプリのルートです) 、サーバーdocBaseは対応するコンテキスト要素で定義された物理ディレクトリ内を調べます。そこに到達すると、サーバーはリソースfilename.jspプロセスを探し (静的コンテンツではないため、最初に jsps をコンパイルして実行し、html を生成する必要があります)、それをクライアントに提供します。

同様に、Tomcat 7 用に作成された構成を読み取ることができます。

hello.jsp2 -Tomcat 7(またはwahteverバージョン)からリソースを取得できるようにするには、URLは次のようにする必要がありますhttp://localhost:8080/serverside/hello.jsp

コンテンツが物理的に保存されているディレクトリの名前は、コンテンツにアクセスするための URL では何の役割も果たしません。path要素との組み合わせdocbaseです。

返信 2

conf/context.xmlそれ自体がルートとして要素を持つ内にコンテキスト要素を配置するcontextことは間違っており、これがエラーの原因となっています ( の読み取り中の xml 解析エラーconf/context.xml)。context.xml を使用して Web アプリを構成する方法は 2 つあります。こちらをご覧ください。ポイント1と2をよく読んでください!

物事を機能させるには:

また

1-serverside.xmlコンテンツ<Context docBase="F:\work\bscit\serverside\practical" path="serverside" reloadable="true" ></Context>を含む名前のファイルを入れますconf/Catalina/localhost/

または

2- webappsnamed内にディレクトリを作成しserverside、jsps をその中に入れます。serversid/META-INF/context.xmlその場合、Web アプリの他のリソースを定義する場合を除き、ファイルは必要ありません。docBaseまた、path要素がそこに表示されない場合もあります。

それから電話するhttp://localhost:8080/serverside/hello.jsp

(1) は開発用、(2) は本番用です。

于 2012-07-29T17:15:24.980 に答える