我必须用JSP和Servlets编写一个网站,显示问卷并获取用户的结果。
我已经写了问题对象,问卷(随机问题列表)和问题库。
现在我的Servlet生成问卷的实例并显示问题。我的问题是我不知道如何得到结果。我可以得到答案,但AFAIK每次加载一个Servlet时都会生成一个新的调查问卷,答案也没用。那么我怎样才能将答案传递给正确的问卷。或者我如何将调查问卷传递给我的新Servlet?
非常感谢。
编辑:以下是调查问卷的代码:
public abstract Question getNextQuestion();
public abstract void setResult(ArrayList<Boolean> answers);
public abstract int[] getResult();
基本上我会创建一份调查问卷,然后通过getNextQuestion()
获取下一个问题,直到没有问题为止。然后用户将点击提交按钮,我将必须阅读答案并将其传递给调查问卷(setResult()
以获取实际问题)。如果没有其他问题,我会使用retResult()
作为结果。
希望这会有所帮助。我不能给你任何JSP代码,因为我还没有编写JSP
答案 0 :(得分:1)
任何必须在多个请求中存活的数据都应该进入会话(请参阅request.getSession()
)。
答案 1 :(得分:1)
由于您在每个用户进入网站时都在创建问卷,因此您可以让servlet生成问卷,并以“lastGeneratedQuestionnaire”之类的名称将其记录到会话中。
当提交答案时,servlet将通过该名称从会话中检索调查问卷。如果不存在,我会将用户重定向回生成新问卷的页面。
此外,生成新问卷的页面应在每次生成随机问卷时覆盖会话中的对象。
缺点是......使用HttpSession在请求之间存储对象。
答案 2 :(得分:0)
通常,您将拥有一个与您的问卷相关联的表单对象(在JSP页面上)。
<html:form action="/servlets/MyQuestionaireServlet method="post">
<h3>Question 1: What is your name</h3>
<html:text name="question1" />
<input type="submit" name="submitBtn" value="Submit"/>
</form>
为了将数据发送到servlet以便存储/记录,您需要做什么,您需要在表单内部提供一个提交按钮。这会将表单中的所有数据发送到servlet。
好点,如果没有struts,你仍然可以在表单上执行标准的post方法,并检索action下列出的servlet中的值。您不需要struts在表单上执行操作。