Errata
The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date submitted | Date corrected |
---|---|---|---|---|---|
Printed | Page xxvi 2nd bullet point |
http://jakarta.apache.org/site/bin/index.cgi |
Anonymous | ||
Printed | Page 6 bottom of page |
(FYI: HTTP stands for HyperText Transport Protocol.) |
Anonymous | ||
Printed | Page 15 Request line description |
There is a discrepancy between the request line description in the middle of the page: |
Anonymous | ||
Printed | Page 21 2nd para - last sentence |
The last sentence reads... |
Anonymous | ||
Printed | Page 26 1st paragraph - line 3 |
"exist before the request). and the ..." |
Anonymous | ||
Printed | Page 30 the first line of web.xml |
the first line of the web.xml file should be: |
Anonymous | ||
Printed | Page 30 Step 3 - within the xml code for the DD |
the third and fourth lines of xml read: |
Anonymous | ||
Printed | Page 35 2nd bullet point |
"... server gives back and HTTP response..." |
Anonymous | ||
Printed | Page 48 second paragraph to the last on the bottom |
This is the what the client... |
Anonymous | ||
Printed | Page 58 First bullet point, last sentence |
The text ends with |
Anonymous | ||
Printed | Page 58 3rd bullet point |
The 3rd bullet point reads... |
Anonymous | ||
Printed | Page 62 |
The 4th hand-written note "Gets the response from the container" |
Anonymous | ||
Printed | Page 65 1st paragraph |
"it incorporates other specifcations,..." |
Anonymous | ||
Printed | Page 71 Figure edit (per author) |
In the top figure, labeled "Web Server," move the form.html file into the Container box. |
Anonymous | ||
Printed | Page 77 2rd paragraph |
and save it in your deployment environment under .... |
Anonymous | ||
Printed | Page 78 handwritten comment |
...to the URL of the page its on. |
Anonymous | ||
Printed | Page 81 Compiling the servlet |
Correction to previous post: Note from the Author or Editor: |
Anonymous | Jun 18, 2009 | |
Printed | Page 82 2nd paragraph |
- Its directory structure should be /WEB-INF/classes/com/model |
Anonymous | ||
Printed | Page 84 Addition of new code |
The code for servlet version three on page 89 shows the following line as commented |
Anonymous | ||
Printed | Page 84 code example |
The line "import java.util.*;" is not in bold even though it was not used in the previous servlet. this caused me two semantic errors when compiling because I did not add it at first. Note from the Author or Editor: |
Anonymous | ||
Printed | Page 90 first sentence following "Deploying and testing the web app" |
"redploy" |
Anonymous | ||
Printed | Page 90 Last picture at bottom of page |
try: Jack's Pale Ale |
Anonymous | ||
Printed | Page 94 Coverage notes, 4th paragraph |
"because the questions requires additional knowledge" |
Anonymous | ||
Printed | Page 100 Thought bubble at top left. |
The final sentence says: |
Anonymous | ||
Printed | Page 106 ServletResponse interface |
ServletResponse Interface shown has two setContentType() methods. |
Anonymous | ||
Printed | Page 106 ServletRequest interface |
The line: |
Anonymous | ||
Printed | Page 114 the answer to the "Sharpen your pencil" exercise |
"The HTTP 1.1 spec declares GET, HEAD, and PUT as idempotent, even |
Anonymous | ||
Printed | Page 114,116 Answer to Sharpen your pencil at bottom of page 114 |
"POST is considered idempotent by the HTTP 1.1 spec." |
Anonymous | ||
Printed | Page 118 last paragraph (prefixed with "A:") |
The "...if this request doesn't need to do post things..." wording is confusing given |
Anonymous | ||
Printed | Page 123 2nd paragraph |
The Input stream from request.getInputStream() will only |
Anonymous | ||
Printed | Page 132 Last Paragraph |
Information at the bottom of the page labeled 'fiy' should be 'FYI' |
Anonymous | ||
Printed | Page 136 3 changes on this page |
Third hand-written note from the top should read: |
Anonymous | ||
Printed | Page 142 question 4 |
A. response.setHeader(CONTENT-LENGTH, "numBytes"); |
Anonymous | ||
Printed | Page 154 TestInitParams source code |
The source code for the TestInitParams servlet is missing an import. |
Anonymous | ||
Printed | Page 154 the first line of web.xml |
the first line of the web.xml file should be: |
Anonymous | ||
Printed | Page 158 in the deployment descriptor section |
<servlet-name> |
Anonymous | ||
Printed | Page 162 ServletContext interface |
"setAttribute(String)" |
Anonymous | ||
Printed | Page 177 Last line |
URL pattern mapped to this the servlet: ListenTest.do |
Anonymous | ||
Printed | Page 182 "Scenario" column, 5th row of grid |
"will stored " should be "will be stored " |
Anonymous | ||
Printed | Page 186 Grid 4th line 3rd column |
There's no such method getInitParameter(String name) for javax.servlet.ServletRequest, Note from the Author or Editor: |
Anonymous | ||
Printed | Page 189 top right paragraph |
enumeration getAttributeNames() |
Anonymous | ||
Printed | Page 189 ServletRequest interface box |
ServletRequest interface box shows method name of getContextType(), where it should be getContentType(). |
Anonymous | ||
Printed | Page 189 HttpSession interface Column |
In the list of methods for HttpSession Interface, the |
Anonymous | ||
Printed | Page 199 2nd paragraph |
'Are they are safe?' |
Anonymous | ||
Printed | Page 200 7th line of code |
out.println("test context attributes<br>"); |
Anonymous | ||
Printed | Page 206 second column 5th row |
Lifecycle event related to ServletRequest: |
Anonymous | ||
Printed | Page 211, 217 1st paragraph |
Which statements about listeners defined in the javax.servlet package are true? |
Anonymous | ||
Printed | Page 213 Q 12 - item D |
ServletRequest |
Anonymous | ||
Printed | Page 213 Question 12, answer E |
In the last option (E) of question 12, the test states: 'The servlet to which a |
Anonymous | ||
Printed | Page 215 Answer to question 1 |
Option C should also be checked. |
Anonymous | ||
Printed | Page 215 Question 1 |
When I call the getOutputStream method on the response object and use the RequestDispatcher to perform a forward I get and IllegalStateException even if I do not write to or flush the output stream. For this reason I think choice D is also correct. Note from the Author or Editor: |
Anonymous | ||
Printed | Page 219 Q12 Answer D |
Answers D and E are checked, but only E should be. |
Anonymous | ||
Printed | Page 231 2nd handwritten paragraph from the top starting with "(This method..." - 2nd |
sentence starting wih "Now, there's still..."; |
Anonymous | ||
Printed | Page 235 diagram of HTTP response |
the closing angle bracket for the anchor tag 'a href="http://wick.."' is missing |
Anonymous | ||
Printed | Page 238 point 4 on the Bullet Poins |
out.println("<a href="" + |
Anonymous | ||
Printed | Page 242 second column, fifth row |
the parenthetical expression reads: |
Anonymous | ||
Printed | Page 245 Example 2 |
delete the line: |
Anonymous | ||
Printed | Page 251 source code |
There should be a |
Anonymous | ||
Printed | Page 254 Standout titled "You do NOT configure session binding listeners in the DD! |
Standout reads: |
Anonymous | ||
Printed | Page 258 Serialization box at bottom of page |
"...can also choose to implement a readObject() method, called by the VM whenever an |
Anonymous | ||
Printed | Page 261 Bang box |
The Bang! box on pg 261 is erroneous and should be dropped altogther. |
Anonymous | ||
Printed | Page 262 2nd column, 4th row |
HttpSessionAtrributeListener should be HttpSessionAttributeListener |
Anonymous | ||
Printed | Page 265 and 272 Question 1 |
public class MyServlet extends HttpServlet { |
Anonymous | ||
Printed | Page 274 Q7, Answer C |
Answer C left off a vital part of the sentence when it was copied from the Servlet specification. |
Anonymous | ||
Printed | Page 276 Question 12, Option C |
Rewrite item C as: "When a session is moved from one JVM to another, |
Anonymous | ||
Printed | Page 287 black box at bottom |
AS IS: |
Anonymous | ||
Printed | Page 288 6th 'sharpen your pencil' question |
<%= newString[3]) %> |
Anonymous | ||
Printed | Page 288 7th 'sharpen your pencil' question |
<% = 42*20; %> |
Anonymous | ||
Printed | Page 293 in both of the code snippets, |
... extends HttpServlet { |
Anonymous | ||
Printed | Page 296 Implicti Object table |
based on JSP 2.0 specification implicit variable exception is of type |
Anonymous | ||
Printed | Page 297 Heading |
This should be labelled a "Be the Container" exercise. |
Anonymous | ||
Printed | Page 307 2nd Paragraph |
Yes, you CAN get servlet init parameters from a servlet.... |
Anonymous | ||
Printed | Page 308 The DD at the top part of the page |
This DD does not work to allow the JSP to obtain the servlet init params. |
Anonymous | ||
Printed | Page 322 Exercise no. 2. |
"...OR place a checkmark in the ignored column if scripting will be treated like other template text." |
Anonymous | ||
Printed | Page 325 Exercise 2 |
change the "ignored" column title to "error". |
Anonymous | ||
Printed | Page 327 3rd handwritten note |
AS IS: |
Anonymous | ||
Printed | Page 343 3rd handwritten note |
AS IS: |
Anonymous | ||
Printed | Page 344 last line of first paragraph under 7.1 |
implicit variable is cookie not cookies. Note from the Author or Editor: |
thuy nguyen | Apr 25, 2009 | |
Printed | Page 353 Has this result title |
Has this result |
Anonymous | ||
Printed | Page 368 Paragraph under Using the dot(.) operator to access...title |
The first variable is either ..., and the thing to the right of the dot is either a |
Anonymous | ||
Printed | Page 372 Under title In a Servlet |
says: favoriteFood.add("chai ice chream"); |
Anonymous | ||
Printed | Page 386 above the line divider |
${cookie.userName.valu} should be |
Anonymous | ||
Printed | Page 391 2nd paragraph (first A: block) |
(a JSP supposed to be ... |
Anonymous | ||
Printed | Page 393 3rd item of "What prints for each of these?" |
${requestScope[integer] ne 4 and 6 le num || false} |
Anonymous | ||
Printed | Page 399 First hand-written comment on top left |
Says "This is the same as it was on the previous page..." |
Anonymous | ||
Printed | Page 400 1st paragraph |
The <jsp:include> standard action appears to do the same thing as the include standard action. |
Anonymous | ||
Printed | Page 404 The bottom diagram |
in the diagram, the translated file name is Contact_jsp.java and the compiled file name is Contact_jsp.class |
Anonymous | ||
Printed | Page 405 In the top left BANG! box |
In the sentence "To help you remember, the include directive <% include |
Anonymous | ||
Printed | Page 405 last sentence in bottom-right comment |
Sentence should end "but that's more obvious with the |
Anonymous | ||
Printed | Page 407 whole page |
As the .jspf convention is not supported by default in Tomcat, the following mapping |
Anonymous | ||
Printed | Page 407 section 1 and section 2 |
Section 2 Contact.jsp; |
Anonymous | ||
Printed | Page 407 Section 3 The Footer file |
The heading for section 3: |
Anonymous | ||
Printed | Page 416 Be the Container Answers |
The third example will not work for the same reason that the first example doesn't |
Anonymous | ||
Printed | Page 420, 428 Question 6, option F |
"${list[list['listIdx']]}" |
Anonymous | ||
Printed | Page 432 Question 17, Option C |
option C is invalid and should not be checked. |
Anonymous | ||
Printed | Page 434 Installing JSTL 1.1 |
The instructions indicate just jstl.jar file is required to run JSTL in Tomcat. You |
Anonymous | ||
Printed | Page 446 Bottom "Bang!" box. |
... "target" attribute in the tag seems like it should work like "id" in the <jsp:setProperty>. |
Anonymous | ||
Printed | Page 447 Answer to second q&a |
Answer talks about using 'scope' attribute for c:set for |
Anonymous | ||
Printed | Page 448 2nd handwritten comment |
The scope is optional, and like always - page is the default scope. |
Anonymous | ||
Printed | Page 452 first section |
The JSP with the <jsp:include> |
Anonymous | ||
Printed | Page 453 Bullet item 1 |
The title of the bullet should be "The JSP with the <c:import>" |
Anonymous | ||
Printed | Page 465 The box of 'The "Core" library, last item |
<c:forEachToken> |
Anonymous | ||
Printed | Page 467 1st paragraph |
..., the DD below describes ... |
Anonymous | ||
Printed | Page 471 example 2 "Scripting expressions" |
the closing single-quote is in the wrong place |
Anonymous | ||
Printed | Page 480 Change to "${foo}" rather than "{userName}" |
Anonymous | |||
Printed | Page 484 Code snippet, line 12 |
Change BeerStyles[] to BeerStyle[] |
Anonymous | ||
Printed | Page 499 1st paragraph, first sentence |
the sentence "the Container searches for tag files in four |
Anonymous | ||
Printed | Page 507 BE the Container |
The 2nd sentence in the "BE the Container" paragraph should read |
Anonymous | ||
Printed | Page 513 Sharpen your pencil, First sentence |
Says "What is the result if the thingsDontWork test is false?" |
Anonymous | ||
Printed | Page 520, 527, 532 TagSupport Class in the class diagram |
return type of doAfterBody() should be "int" instead of "void" |
Anonymous | ||
Printed | Page 527 Sharpen your pencil text |
Try to mplement... |
Anonymous | ||
Printed | Page 537 First paragraph |
There are two instances of <my:Menu> and one <my:MenuItem>. The code example below |
Anonymous | ||
Printed | Page 537 3rd paragraph |
Nested tags are used in several places in the JSTL; the <c:choose) tag.. |
Anonymous | ||
Printed | Page 544 Second to last paragraph |
"The Container walks the tag nesting hieararchy until..." |
Anonymous | ||
Printed | Page 548 answer #2 |
<%@ tag body-content="tagdependent" %> |
Anonymous | ||
Printed | Page 549 question 1 |
first "to" is a typo |
Anonymous | ||
Printed | Page 550 question 3 |
Option C is invalid. |
Anonymous | ||
Printed | Page 555 Question 13, Option E |
The code on Option E should be: |
Anonymous | ||
Printed | Page 557 question 17 |
Both tags are declared to be non-empty in the TLD. |
Anonymous | ||
Printed | Page 558 Question 21, 1st line |
"Given a web app sturcutre:" |
Anonymous | ||
Printed | Page 560 Question 4, Handwritten Comments for Option A |
"-Option A is invalid because the doTag method dies return a value". |
Anonymous | ||
Printed | Page 563 Answer on question 9, written comment on option D |
The written remark at option D belongs to option D of the answer |
Anonymous | ||
Printed | Page 565 Question 13 |
Option E cannot be correct because it assigns the return value of |
Anonymous | ||
Printed | Page 566 Question 15, Items E & F, Handwritten Comments |
The notes for options E and F should be swapped. |
Anonymous | ||
Printed | Page 567 question 17 |
Both tags are declared to be non-empty in the TLD. |
Anonymous | ||
Printed | Page 596 2rd & 3rd paragraph |
Whenever the book says "value greater than zero" should read "non-negative value". |
Anonymous | ||
Printed | Page 608 question 8, answer C |
Option C should read: |
Anonymous | ||
Printed | Page 631 The tomcat-users.xml file |
<user name="Bill" password="coder" roles="Member, Guest" /> |
Anonymous | ||
Printed | Page 632 The last XML on the page |
the DD-XML: |
Anonymous | ||
Printed | Page 633 first call-out in handwriting font: |
"mandatory named used by" should be "mandatory name used by" |
Anonymous | ||
Printed | Page 635 Lower box, 2nd paragraph |
"If you do NOT specify any <http-element>, then..." |
Anonymous | ||
Printed | Page 637 Case 2 |
The second row should not have Diane and Annie crossed out. |
Anonymous | ||
Printed | Page 638 arrow on the right of DD |
the 2 arrows should be pointing at /Beer/UpdateRecipes/*, instead of /Beer/DisplayRecipes/* nor /Beer/UpdateUsers/* |
Anonymous | ||
Printed | Page 639 authorization table (first row / last column); Case 1 |
Diane has two roles: 'Member' and 'Guest' |
Anonymous | ||
Printed | Page 642 1st paragraph |
In HttpSerlvetRequest, |
Anonymous | ||
Printed | Page 643 |
The deployment descriptor on the right hand side of the page has two errors. |
Anonymous | ||
Printed | Page 648 Sharpen your pencil |
The third missing piece, at the end of the 4th line of the DD section, has a "/" after the blank box. |
Anonymous | ||
Printed | Page 655 Row 3, step 3 |
In the POST diagram the "S" at the end of "HTTPS" is crossed out. It should be underlined. |
Anonymous | ||
Printed | Page 662 question 2, code |
The web.xml configuration code is Question 2 is incorrect. |
Anonymous | ||
Printed | Page 669 3rd line from bottom |
"Want to manipulate the output from ever servlet in your app" |
Anonymous | ||
Printed | Page 670 3rd paragraph (3rd objective) |
Should be 11.2 and not 11.1 |
Anonymous | ||
Printed | Page 677 Step 2 of the stack |
The last line of the second step reads: |
Anonymous | ||
Printed | Page 679 LL |
<filter-mapping> element declared at the top of the code ends with </filter> |
Anonymous | ||
Printed | Page 689 Bottom right - number 2 |
'When the servlet asks for an it doesn't KNOW that it will get a "special" output stream.' |
Anonymous | ||
Printed | Page 691 In the else clause of the code example |
The solution should include the code "fc.doFilter(req, resp);" in the else clause. |
Anonymous | ||
Printed | Page 693 3rd line |
streamUsed != pw |
Anonymous | ||
Printed | Page 693 15th line |
streamUsed != servletGzipOS |
Anonymous | ||
Printed | Page 697, 701 Question 3, first line |
"Given this method in an otherwise properly defined Filter implementation:" |
Anonymous | ||
Printed | Page 697 bottom |
The answer to question 3 on p. 701 is given as "E. None of the above". |
Anonymous | ||
Printed | Page 699, 703 Question 6, option C |
"C. They can be used even when the application does not supprt HTTP" |
Anonymous | ||
Printed | Page 703 question 5 |
option D should be checked. |
Anonymous | ||
Printed | Page 705 bottom of the page |
"accordion" is misspelled "accordian" |
Anonymous | ||
Printed | Page 732 2nd paragraph |
The comment |
Anonymous | ||
Printed | Page 741 execute method of BeerSelectAction |
ArrayList result = be.getBrands(myForm.getColor()); |
Anonymous | ||
Printed | Page 777,815 Question 31 |
Says: |
Anonymous | ||
Printed | Page 785 Question 43 |
options B-E should include the inner <role-name> tags as the read demonstrates here. |
Anonymous | ||
Printed | Page 785,823 Question 44 |
The bullet "* should reduce duplicate code" should be deleted. |
Anonymous | ||
Printed | Page 785 and 823 There is a typo in the open tag in Option B. It should read <auth-constraint>. |
Anonymous | |||
Printed | Page 810 Question 22 |
we can make the question more clear by making this change: |
Anonymous | ||
Printed | Page 825 Drop the comment for Option A |
Anonymous |