楼主,我的毕业设计课题就是这个
我也想要
[email protected]

解决方案 »

  1.   

    我到是正在做一个在线考试系统,教师维护试题库,考试时随机生成指定数目或类型的试题,结束后自动评分,试题以单选加多选,用户需求很模糊,今后少不了修改。数据库用XML足够了。(JavaBean访问数据库,你如用Access或Sql server200,再写个Bean就可以了。)
       因为是学校用的局域网考试,所以 试题的维护我想不用做成网页上载,反正教师直接操作主机,用Java做个界面让他把试题放到XMl中保存应该可以了吧,现在正在完善考试过程中学员可能做出的异样操作,就是Session+Application维护学员当前试题信息和学员个人信息再加考试状态。概要就是这样,做完后大家可以交流一下。
      

  2.   

    jsp在线考试系统
    QuizResponses.javaanswer.jsp<%-- Include directive --%>
    <%@ include file="header.html" %><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <DIV ALIGN="RIGHT"> 
    <FONT SIZE="-1"><A HREF="/developer/Quizzes/index.html">Quizzes 
    Index</A></FONT></DIV>
    <H2 ALIGN="RIGHT"><FONT COLOR="#FFFFFFF">JSP Professional, Chapter 12 Quiz 
    Answers</FONT></H2>
    <H4 ALIGN="RIGHT"><EM>by Dan Malks</EM></H4>
    <BR><BR>
    <TABLE BORDER="0" CELLSPACING="8" CELLPADDING="2" <TR><TD>
    <FONT FACE="Verdana, Arial, Helvetica, sans-serif"><%-- Page directive that applies to entire page. --%>
    <%@ page language="java" %><%-- Identifies bean as "worker" and tells the page where to locate the bean. --%>
    <jsp:useBean id="worker" class="jdc.quiz.QuizResponses" scope="request" /><%-- Set bean properties with a wildcard. --%>
    <jsp:setProperty name="worker" property="*" />
    <%-- Scoring --%><%-- Variable declaration in code scriptlet -->
    <% int score = 0; %><!-- Quiz Questions --><!-- Question 1 --><TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">1.</FONT></TD><%-- The method getOne() was set up in the bean with the id "worker" --%>
    <%-- All Java code is enclosed in <% %>, leaving HTML to be easily --%>
    <%-- changed or updated. --%><% if((worker.getOne() != null) && ((worker.getOne()).equals("D"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <B>D</B> 
    is correct!</FONT></TD>
    <% } else if (worker.getOne() != null) { %>
    <TD VALIGN="TOP"><FONT COLOR=red><jsp:getProperty name="worker" property="one" /> 
    is incorrect!</FONT></TD><% } else { %><TD VALIGN="TOP">Blank <FONT COLOR=red>X</FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    Every JavaServer Pages<SUP><FONT SIZE="-2">TM</FONT></SUP> 
    (JSP)<SUP><FONT SIZE="-2">TM</FONT></SUP>source page is compiled into 
    a servlet before it is executed at runtime.</A><BR><BR></FONT></TD></TR><!-- Question 2 --> 
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">2.</FONT></TD>
    <% if ((worker.getTwo() != null) && ((worker.getTwo()).equals("B"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <B>B</B> 
    is correct!<BR></FONT></TD>
    <% } else if (worker.getTwo() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="two" /> is 
    incorrect</FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank 
    <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    When large amounts of Java scriptlet code are mixed with HTML up 
    within a JSP page, not only do readability and reuse suffer, but often 
    bugs are introduced as web-production team members, who may not be 
    familiar with Java programming, need to modify the accompanying up. 
    Additionally, dependencies now exist among various teams competing for the 
    same file, making the development process less efficient.
    </FONT> 
    </TD></TR><!-- Question 3 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">3.</FONT></TD><% if ((worker.getThree() != null) && ((worker.getThree()).equals("D"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <B>D</B> 
    is correct!<BR></FONT></TD>
    <% } else if (worker.getThree() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="three" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    Doing an HTTP redirect requires a round-trip to the client. If this 
    is not required, and the only desire is to forward the request to 
    another resource, then this can be much more efficiently accomplished 
    with the <CODE>RequestDispatcher</CODE>. Additionally, when using the 
    dispatcher the state of the request object is maintained between 
    resources, which will not be the case with the HTTP redirect.</FONT></TD></TR><!-- Question 4 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">4.</TD><% if ((worker.getFour() != null) && ((worker.getFour()).equals("C"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <B>C</B> 
    is correct!<BR></FONT></TD>
    <% } else if (worker.getFour() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="four" /> is 
    incorrect</FONT></FONT></TD><% } else { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Business logic is better contained in a 
    JavaBean<SUP><FONT SIZE="-2">TM</FONT></SUP> or a servlet, which is 
    owned by a software developer. When lots of Java code is embedded 
    directly within the JSP page as scriptlets, the 
    &quot;cut-and-paste&quot; mentality tends to prevail when it comes 
    to code reuse. 
    </FONT> 
    </TD></TR><!-- Question 5 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">5.</FONT></TD><% if ((worker.getFive() != null) && ((worker.getFive()).equals("A"))) { score ++; %><TD VALIGN="TOP"> <FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <B>A</B> is correct!<BR></FONT></TD>
      

  3.   

    接上面:<% } else if (worker.getFive() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="five" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    Since the servlet is the initial contact point for each request, it is 
    well-suited to handle logic that is common across multiple requests. 
    A good example of this type of logic is an authentication check. 
    </FONT> 
    </TD></TR><!-- Question 6 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">6.</FONT></TD><% if ((worker.getSix() != null) && ((worker.getSix()).equals("B"))) { score ++; %><TD VALIGN="TOP"> <FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <B>B</B> is correct!<BR></FONT></TD>
    <% } else if (worker.getSix() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="six" /> is 
    incorrect</FONT></FONT></TD><% } else { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    Using a business delegate reduces coupling between the presentation 
    and business tiers. The presentation tier has no knowledge of the 
    EJB implementation details, such as Java Naming and Directory 
    Interface<SUP><FONT SIZE="-2">TM</FONT></SUP> lookup.
    </FONT> 
    </TD></TR><!-- Question 7 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">7.</FONT></TD><% if ((worker.getSeven() != null) && ((worker.getSeven()).equals("B"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    <B>B</B> is correct!<BR></FONT></TD>
    <% } else if (worker.getSeven() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="seven" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    Using Java scriptlets is the accepted method of doing iteration in 
    JSP<SUP><FONT SIZE="-2">TM</FONT></SUP> 1.0. In 
    JSP<SUP><FONT SIZE="-2">TM</FONT></SUP> 1.1, a custom tag may be used, 
    which will hide the implementation details of the iteration code.</FONT></TD></TR><!-- Question 8 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">8.
    </FONT></TD><% if ((worker.getEight() != null) && ((worker.getEight()).equals("A"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    <B>A</B> is correct!<BR></FONT></TD>
    <% } else if (worker.getEight() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="eight" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD><FONT FACE="Verdana, Arial, Helvetica, sans-serif">Blank 
    <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    The term <I>Page-Centric</I> is used to describe an architecture where 
    the initial contact point for the request is a JSP page. An example 
    is shown visually below:
    <P>
    <IMG SRC="Image1.gif" WIDTH="412" HEIGHT="204" ALT="JSP Page-Centric">
    </FONT> 
    </TD></TR><!-- Question 9 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">9.
    </FONT></TD><% if ((worker.getNine() != null) && ((worker.getNine()).equals("A"))) { score ++; %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    <B>A</B> is correct!<BR></FONT></TD>
    <% } else if (worker.getNine() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="nine" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    When the forward method is used, the invoking resource does not regain 
    control. Multiple include invocations can be made from the same 
    resource, while the invoking resource maintains execution control.
    </FONT> 
    </TD></TR><!-- Question 10 -->
    <TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">10.
    </FONT></TD><% if ((worker.getTen() != null) && ((worker.getTen()).equals("D"))) { score ++; %><TD VALIGN="TOP"> <B>D</B> is correct!<BR></FONT></TD>
    <% } else if (worker.getTen() != null) { %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    <FONT COLOR=red><jsp:getProperty name="worker" property="ten" /> is 
    incorrect</FONT></FONT></TD><% } else { %>
    <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Blank <FONT COLOR=red>X</FONT></FONT></TD><% } %><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif">
    Error pages are invoked when there is an uncaught exception from 
    within a particular page. In this case, we mention that the 
    <CODE>validationGaurd()</CODE> method might throw an exception. 
    If this exception is not caught within the page, then we vector 
    control to the <CODE>errorPage</CODE>, as stipulated in the attribute 
    of the given page directive.
    </FONT></TD></TR>
    <%-- Scoring calculations --%>
    <% 
    int missed = 10 - score;
    double grade = (double)score/10*100;
    %><TR><TD colspan="3"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> 
    <P>You missed<STRONG> <%= missed %></STRONG>
    <BR>Your score is<STRONG> <%= (int)grade %> </STRONG> percent.
    <H4>Source Code</H4>
    <P>This quiz used the <I>Page-View with Bean Approach</I>, detailed in <A 
    HREF="/developer/Books/javaserverpages/">Chapter 12, JSP Archeticure</A>. The <A HREF="index.txt">first 
    page</A> of the quiz consists of regular HTML with a form that calls <A 
    HREF="answer.txt"><CODE>answer.jsp</CODE></A>. <CODE>Answer.jsp</CODE> requests parameters from the bean, 
    in this case, called <A HREF="QuizResponses.txt">QuizResponses</A>. The <I>page-view with bean</I> 
    approach for this quiz required extra work to write the bean, and it could have been done using the 
    <I>page-view approach</I> without a bean, requesting invocation directly from the <CODE>answer.jsp</CODE> 
    page. Deciding which approach is preferrable depends on the application and how much HTML and Java 
    scriptlets need to be used. For this quiz we opted for the <I>page-view with bean</I> approach for 
    illustration purposes.<P><A HREF=/developer/Quizzes/jsp/index.html>Back to Quiz</A>
    <P><IMG SRC=/images/T7.gif ALIGN=LEFT>
    </TABLE>
    <P> <%@ include file="footer.html" %>