1

多くの「ファイル」(Web サーバーの .html または jsp ファイルなど) を持つプロジェクトを開始しています。これらの各ファイルには、たとえば「JSP」が埋め込まれています。

こんにちは <%="John Doe" %>

次に、このファイルを「JSPコンパイラ」を介してプログラムで送信し、出力ファイルを取得したいと思います。

私は Tomcats JSPServlet を調べましたが、コードからサーブレット オブジェクトにアクセスできないように思われるため、行き止まりになりました。Tomcat にある Apache Jasper コードもダウンロードして、JSPServlet が何をしているのかを調べましたが、これは長い道のりのようです。

誰か提案やアイデアはありますか?

JSPがWeb指向であることは知っていますが、それは私にとってはうまくいくでしょう。

4

4 に答える 4

2

私自身の質問に答えるために:)

Tomcat の Connector インターフェイスを実装するクラスを作成しました。これにより、Tomcat が提供するすべてのものを独自のエントリ ポイントで使用できるようになりました。

于 2011-10-15T05:56:48.693 に答える
0

それは長い道のりです。テンプレートを使用してファイルを生成する方法をお探しですか?この場合、VelocityまたはFreemarkerの方が適している可能性があります。特にhtmlを生成したくない場合。

于 2010-06-24T21:57:10.030 に答える
0

Tomcat は Web アプリの JSP ファイルをコンパイルし、各 Web アプリの特別なフォルダーに配置します。

あなたができることは、Tomcat webappsディレクトリ内のWhatever.warディレクトリ内のユーザーによって送信されたjspファイルを定期的にダンプするスクリプトを作成することです.

そうすれば、Tomcat は自動的に JSP をコンパイルし、HttpServlet コードを出力します。

その後、Tomcat ログで、これらの JSP ファイルごとにコンパイル例外を確認できます。

Antから Jasper コンパイラを使用して実行する方法については、こちらの記事とApache Web サイトを参照してください。

于 2010-09-30T13:20:04.713 に答える
0

その出力を取得したいだけですか?最も簡単な方法は、サーブレットコンテナをインストールし、webapp をデプロイして、それを使用URL#openStream()して取得するInputStreamことです。

InputStream response = new URL("http://localhost/context/page.jsp").openStream();
于 2010-06-24T23:37:24.673 に答える