JavaServer Pages, 2nd Edition by Hans Bergsten The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated December 4, 2003. UNCONFIRMED errors and comments from readers: (xix) "Constant Width" section; It should be "method names" not "methods names" in "...including keywords, data types, constants, methods names, variables, class names, and interface names." (6) 3rd paragraph; Extra "a" in "...access a databases and perform other application tasks." (Or else make "databases" singular.) (26) last paragraph; extraneous bracket in the parenthetical remark "(known as the [JSP page implementation class)". (32) 3rd paragraph from bottom; The Windows 2000 and XP Control Panel item is called "System" not "Systems" in "...you can do the same with the Systems tool by first selecting the Advanced tab and then Environment Variables." It probably would be a little clearer to say "with the Control Panel item called System" (or System Properties for NT) [38] last paragraph on the page; C:\JSPBook> xcopy /s /i ora %CATALINA_HOME%\webapps\ora On my PC using a Windows NT operating system this xcopy command did not work. The error message was something akin to "too many parameters". As a substitute for the xcopy command, I simply used Windows NT Explorer to move the ora directory [and its subdirectories] to the webapps directory in the Tomcat installation. Moving the ora directory in this way worked just fine. Your examples web application installed just fine and I was able to use it in Tomcat. (48) 3rd paragraph, 2nd sentence; Should be: "I'll show you...." as opposed to "I show you..." {58} Figure 6.1; The figure shows the URL entered as http://localhost:8080/book/ch6/cartoon.jsp rather than http://localhost:8080/ora/ch6/cartoon.jsp The application is also referenced as "/book" in these figures: pg 62 Figure 6.2 pg 70 Figure 7.2 (73) Table 7-3; The mnemonic for "Test for greater than or equal" should be 'ge', not 'gt' (75) last paragraph; Slight garble in "...and you have a rough idea about of what the JSTL EL is all about." Probably remove first "about", but could alternatively remove "of". (92) 4th paragraph (beginning with "The ..."); In the 3rd line, the sentence "A block is used pick..." is missing the word "to". It should be "A block is used to pick..." (96) Table 8-8; The "valid" entry says "Does all properties have valid values?" It should be "Do..." (112) code blocks; It doesn't make sense to include HTML tags inside the body of the element. The
is just getting written verbatim to the log file. {117} 2nd paragraph; The paragraph incorrectly refers to (... and that a action sets a request scope variable) but the example below shows the correct . The paragraph should mention , not . (126) footnote; Should be "exists" instead of "exist" in "It actually does one thing when the bean already exist..." (129) 2nd paragraph; Should be "tests" instead of "test" in "A action element with nested and actions test if the input is valid..." {133} Figure 10-5; The URL in the "URL rewriting method" example should be "next.jsp?sid=xf23ad" instead of "next.jsp;sid=xf23ad". The first URL parameter should be separated by question mark. (137) Table 10-3, "context" entry; extra space in "is n't" in "...if the resource is n't part of the current application". (152) Figure 11-2; The figure shows "search.jsp" as the initial page, but the text (and the sample code) use "search.html". {161} Table 11-3; The "scope" attribute refers to the scope of the "var" attribute, not the scope of the data source. It should read "The scope of the variable..." instead of "The scope of the data source..." (163) 1st paragraph; Should be "attack" instead of "attacks" in "Using prevents this type of attacks." {164} Table 11-5; The "scope" attribute should read "The scope for the variable..." instead of "The scope for the data source...". {175} Example 11-6; The "dataSource" value "${example}" isn't defined and should probably be deleted in this line: jspc -d \jspsrc -webinc \jspsrc\web.inc ... ^ | | [314] Command samples after 2nd paragraph; In the last two commands, where the Java compiler is invoked, immediately after javac, option d is specified but is missing the - in front of it. Both should read: ... bin\javac -d classes ... ^ | | [314] 2nd paragraph & following command examples; In the paragraph, jasper-runtime.jar Tomcat JAR file has an incomplete path. It should be common/lib/jasper-runtime.jar, not just lib/jasper-runtime.jar. Similarily in the command setting CLASSPATH to include jasper-runtime.jar, it should be refered to as %CATALINA_HOME%\common\lib\jasper-runtime.jar [341] Last paragraph in the "Compiling and Installing a Servlet" section.; In the above referenced paragraph, you mention that you may run any servlet using the /servlet prefix. This WAS true with Tomcat prior to versions 4.0.6/4.1.12. Due to a security problem discovered with the invoker servlet, this feature was turned off in Tomcat 4.0.6/4.1.12. For people new to Tomcat (like me), I was very confused trying to get this feature to work. I suggest that you put a note at the bottom of the page referencing a URL (e.g. on your thejspbook.com website) where users can go to which instructs them on how to enable the invoker servlet for these versions of Tomcat, so users may test their servlets (such as on your website). See: http://www.securitytracker.com/alerts/2002/Sep/1005290.html for more info on the security problem, and why they disabled the invoker servlet. (341) Line says http://localhost:8080/ora/servlet/HelloWorld; Changes to Tomcat 4.1.12 prevent this (and other) servlets from running with this type of calling syntax. The following link explains why and how to fix it. Basically starting with this version of Tomcat, this method of calling servlets has been commented out in the tomcat web.xml file for security reasons. You can easily un-comment it so it functions again. See the article at www.javapro.com called "Fixing Tomcat 4.1.12" The latest version of this popular Web container can make your apps stop working. But you can fix it. by Budi Kurniawan Posted November 8, 2002 This url might get you there: http://www.fawcette.com/javapro/2002_11/online/servletsjsp_bkurniawan_11_08_02/default.asp. {563} 1st paragraph of "Property and array accessor operators"; Missing the closing ']' in the last EL expression. It should be ${exprA['identifierB']}