2

私は現在、約 275 人の学生が JSP を学んでいるソフトウェア エンジニアリング クラスを教えています。学生が基本的な JSP スキルを練習できるオンライン サービスを学生に提供できるようにしたいと考えています。アイデアは、学生がいくつかの JSP コードを提供して、事前に決められたテストに合格するというものです。

例: 学生は、「Hello NAME」を返す JSP ページのコードを提供するよう求められます。NAME は、ページに渡された GET パラメータです。

この質問に対する正しい答えは、次のようになります。

Hello <%= request.getParameter("name") %>

私は現在、Linux ベースのソリューションを使用してこのような学生の提出物をテストできます。提出された学生のコードを既存の JSP ファイルに書き込み、GET パラメータを渡しながら JSP ページをフェッチし、Tomcat がリロードして JSP ページをコンパイルするのを待ち、解析します。 HTML の結果を受け取り、テスト結果を学生に返します。このプロセスはかなり遅く (ディスク上の JSP ファイルを上書きするため)、うまくスケールアップしません。

多くの学生が同時に練習しているときに自動的にスケールアップするように構成できる Google App Engine の Java バージョンで、この JSP「ベリファイア」を実行できるようにしたいと考えています。

私の質問は、既存の JSP ファイルの内容を上書きすることなく、送信された JSP コードを Google App Engine で評価するにはどうすればよいですか? 実行したいコードを JSP ページに渡して、そのページに結果を返させることはできますか?

ページに渡されたコードを使用して、渡された GET パラメータで何かを行うことがわかりません。つまり、eval() メソッドがありません。

何か案は?

4

1 に答える 1

0

私はこれを試したことはありませんが、Jasper Compiler (Tomcat による JSP の実装) を見てみたいと思います。.jsp からクラス ファイルを生成できます。これは、GAE からロードできる場合があります。また、それを機能させるために必要な労力が多すぎるかもしれないことも想像できました。

于 2013-04-10T05:12:57.133 に答える