你怕不怕?

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 一提到考试我就头疼,那些不知道被人靠的滋味的人是不会明白的!所以我灵机一动,就作了一个在线考试系统,测试你的jsp知识,代码不是特别多,所以不加注释了(http://jspbbs.yeah.net) QuizResponses.java answer.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 markup 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 markup. 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 "cut-and-paste" 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> <% } 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" %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值