2

我目前正在教授一门软件工程课程,其中大约有 275 名学生正在学习 JSP。我希望能够为学生提供在线服务,使他们能够练习基本的 JSP 技能。这个想法是学生将提供一些 JSP 代码来通过一些预先确定的测试。

例如: 学生将被要求提供 JSP 页面的代码,该页面将返回“Hello NAME”,其中 NAME 是已传递到页面的 GET 参数。

对这个问题的正确回答是。

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

我目前可以使用基于 Linux 的解决方案测试这样的学生提交,在该解决方案中,我将提交的学生代码写入现有 JSP 文件,在传递 GET 参数时获取 JSP 页面,等待 Tomcat 重新加载并编译 JSP 页面,解析HTML 结果,并将测试结果返回给学生。这个过程相当慢(覆盖磁盘上的 JSP 文件)并且不能很好地扩展。

我希望能够在 Java 版本的 Google App Engine 上运行这个 JSP“验证器”,它可以配置为在很多学生同时练习时自动扩展。

我的问题是,如何在不覆盖现有 JSP 文件内容的情况下评估 Google App Engine 中提交的 JSP 代码?我可以将要运行的代码传递到 JSP 页面并让该页面返回结果吗?

我无法弄清楚让页面使用传入的代码来处理传入的 GET 参数。简而言之,我缺少一个 eval() 方法。

有任何想法吗?

4

1 回答 1

0

我从来没有试过这个,但我会看看Jasper 编译器(Tomcat 的 JSP 实现)。它可以从 .jsp 生成一个类文件,您可以从 GAE 加载该文件。虽然我也可以想象让它工作所需的努力可能太多了。

于 2013-04-10T05:12:57.133 回答