我目前正在教授一个软件工程课,大约有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“verifier”,它可以配置为在许多学生同时练习时自动扩展。
我的问题是,如何在不能覆盖现有JSP文件内容的情况下评估Google App Engine中提交的JSP代码?我可以将我想要运行的代码传递给JSP页面并让该页面返回结果吗?
我无法弄清楚是否让页面使用传入的代码来处理传入的GET参数。简而言之,我缺少一个eval()方法。
有什么想法吗?
答案 0 :(得分:0)
我从未尝试过这个,但我会看一下Jasper Compiler(Tomcat的JSP实现)。它可以从.jsp生成一个类文件,您可以从GAE加载它。虽然我也可以想象让它运作所需的努力可能太多了。