私は現在、約 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() メソッドがありません。
何か案は?