ISBN13: 9781565923911 ISBN10: 156592391X Condition: Like New All Product Details
A[ Top ] abbreviations of language names, 367, 370, 380 Abstract Windowing Toolkit (AWT), 11 Accept header, 15, 101 accept() method, 302 Accept-Charset header, 380 Accept-Encoding header, 188, 190 Accept-Language header, 380 access control, fine-grained, 239-241, 278 access controller, 241 Acme.Serve, web site for information, 10 ACTION attribute, 89, 202 Activated Intelligence's Java Image Management Interface (JIMI), web site for downloading, 163 Active Server Pages, see ASP addCookie() method, 203 addNotify() method, 162 age of cookie, 204 animation, text-based, 150 Apache web server and the mod_perl module, 4 APIs HTTP Servlet, reference appendix, 447-471 JavaMail, 402 JDBC, 247, 281 Servlet description, 17-19 reference appendix, 425-446 SQL, 247, 281 tag, 28, 180 applets callbacks to methods, 282, 317, 319, 334 communication with servers, 277 communication with servlets, 281, 317-336 definition, 179 invoking Java methods on the server, 282 parameters generated by servlets, 336 server-side, ix trusted and untrusted, 278 application/x-www-form-urlencoded MIME type, 292 ASCII character set, 372, 376 ASP support web site for Java Extension Framework, 7 web site for Microsoft Internet Information Server, 5 web site for programming ASP, 5 web site for programming server-side JavaScript, 6 web site for web servers, 5 ATG's Dynamo Application Server, web site for information, 8 attributes, names of, 75 authentication basic, 222 client, 235 digest, 223 passwords, 222 retrieving information, 223 servlets, 224 authorization advantages, 197 custom, 227 example, 196 in request header, 100 type of, 82 Authorization header, 100, 101, 224 automatic reloading of servlets, 338 available-socket count, 191 B[ Top ] background processing, 64-67 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 basic authentication, 222 tag, 43, 44-46 BEANNAME attribute, 45 Big5 (Chinese) charset, 372 binary objects, large, 274 tag, 31, 33-36, 405-407 blocks, synchronized, 51 books CGI Programming on the World Wide Web, 3 Database Programming with JDBC, 273 Database Programming with JDBC and Java, 247 Developing Java Beans, 43 Exploring Java, xi Java Cryptography, 234 Java Distributed Computing, 283 Java Examples in a Nutshell, 179 Java in a Nutshell, xi Java Native Methods, 412 Java Network Programming, 283 JDBC Database Access with Java, 247 Mastering Regular Expressions, 404 New Hacker's Dictionary, 297 SQL for Dummies, 246 Technical Introduction to Digital Video, 175 The Unicode Standard, Version 2.0, 369 Understanding Digital Signatures, 234 Web Client Programming, 15, 100, 127, 417 Web Security & Commerce, 222 Webmaster in a Nutshell, 100 bridge drivers, 248 buffering input and output, 424 bug reports and typos, web site for reporting, xiv bugs, preparing servlet for, 151-158 burritos, selling, 350, 354 ByteArrayOutputStream class, 153 C[ Top ] Cache-Control header, 146 caching images, 175 CallableStatement class, 273 callbacks to applet methods, 282, 317, 319, 334 cascading style sheetsets (CSS), 138 case-insensitive search, 407 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 certificates client, 235 digital, 232-234 server, 234 CGI connection to HTTP, 278 definition, 2 environment variables, 70-72 FastCGI, web site for information, 4 hidden form fields, 196 life cycle, 2 no counterpart to getPathInfo(), 91 no counterpart to getScheme(), 100 reference book, 3 security concerns, 237 session-tracking techniques, 196-206 CGI Programming on the World Wide Web book, 3 chaining images, 351 methods, 137 servlets, 30-36, 103-105 character entities (&...;) reference appendix, 478-483 use of, 366-369 character sets difference from charsets, 372 UCS-2, 376 US-ASCII, 372, 376 UTF-8, 376-379 characters, special, 366 charsets hidden form field, 390 ISO-8859-1 (Latin-1), 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic), 372 ISO-8859-8 (Hebrew), 372 Microsoft Internet Explorer option, 373 most include US-ASCII characters, 376 Netscape Navigator option, 372 preferences, 380 reference appendix, 484-485 charting packages, web site for downloading, 166 chat server, 317-336 Chinese charset, 372 class variable, 53 classes ByteArrayOutputStream, 153 CallableStatement, 273 com.oreilly.servlet MultipartResponse, 192 ParameterParser, 398 ServletUtils, 154 Cookie, 19, 202, 447-452 GenericServlet, 17, 426-428 HttpServlet, 17, 452-455 HttpServletRequest, 455-459 identifying users, 82 in javax.servlet.http, 19 HttpServletResponse, 460-463 in javax.servlet.http, 19 setting HTTP response headers, 145 uses, 20 HttpSession, 19, 207, 463-466 HttpSessionBindingEvent, 466-467 HttpSessionBindingListener, 467-468 HttpSessionContext, 211, 468-469 HttpUtils, 469-471 Locale, 370, 371, 374, 381 LocaleNegotiator, 383-389 LocaleToCharsetMap, 383 MultipartRequest, 108-121 MultipartResponse, 192 ParameterParser, 398, 403 PrintStream, 127 PrintWriter, 20 RemoteDaemonHttpServlet, 318 RemoteHttpServlet, 312 SecurityManager, 238 Servlet, 429-430 ServletConfig, 56, 58, 59, 430-431 ServletContext, 431-434 ServletException, 156, 434-435 ServletInputStream, 435-436 ServletOutputStream, 126, 436-438 ServletRequest, 19, 438-442 ServletResponse, 19, 442-444 ServletUtils, 154 SingleThreadModel, 444 singleton, 354, 360, 362 SmtpClient, 402 Statement, 250 stub and skeleton versions, 308 subclassing, 141 superclass for socket connection details, 297 support classes, 55 UnavailableException, 444-446 UnicastRemoteObject, 311 classes (continued ) URLConnection, 292 ZipOutputStream, 189 clearParameters() method, 258 client authentication, see authentication client certificates, 235 client machines, identifying, 79-80, 101 client pull, 149-151, 191 client servlets, 413-415 cmd.exe problem in Windows NT, 412 CODEBASE attribute, 28, 180, 287 collaboration, 349-364 color conversion, web site for information, 175 color image, converting to grayscale, 172 com.oreilly.servlet package MultipartResponse utility class, 192 ParameterParser class, 398 ServletUtils class, 154 web site for source code, xii com.sun package, 75, 123 Common Gateway Interface, see CGI communication applet-server, 277 applet-servlet, 281, 317-336 hybrid approach, 283 RMI, 306-313 servlet-servlet, 337 socket connections initiated by applet only, 297 text-based, 287 compiler, rmic, 308, 334 compression formats GZIP and ZIP supported in JDK, 188 web site for information, 189 negotiating which to use, 189 x-gzip and x-compress, 188 concatenation, to be avoided, 423 configuration class, 56, 58, 59 configuration file, 56 conglomerate image, 169 Connection class getAutoCommit() method, 262 prepareStatement() method, 258 rollback() method, 262 setAutoCommit() method, 262 ConnectionPool class getConnection() method, 268 returnConnection() method, 268 connections Connection header, 146 Connection objects, reusing, 259-260 connection pool, 266-269 HTTP-CGI, 278 maximum of 100, 272 most limited JDBC resource, 272 raw socket connections and HTTP, 278-281, 319, 344 secure connections, 100 see also databases and transactions connectivity advantage of servlets, 242 servlets' power, 11 constructors, 56 containsHeader() method, 147 Content-Encoding header, 147, 188, 190 Content-Language header, 367 Content-Type header, 16, 126, 127, 373 conventions, typographical, xiv Cookie class constructor, 202 in javax.servlet.http package, 19 reference, 447-452 setComment() method, 204 setDomain() method, 203 setMaxAge() method, 204 setPath() method, 204 setSecure() method, 204 setValue() method, 204 setVersion() method, 203 cookies comment field, 204 cookie central web site, 202 Cookie class, 19, 202, 447-452 domain restriction pattern, 203 example, 204 maximum age, 204 persistence, 202-206 secure channel, 204 setting values of, 204 size and quantity limits, 203 specification, 202 version of, 203 where to send, 204 copying, unauthorized, 76 CORBA (Common Object Request Broker Architecture) connectivity, 11, 283 counters, as examples, 50-62, 96-99 country-code abbreviations, 370 crashing servers, 61 CREATE attribute, 45 createImage() method, 162, 166, 178 creation overhead, 49 credit-card checking, 262 cryptography, public-key, 232-234 custom authorization, 227 custom class loaders, 55 customs, local, 369 D[ Top ] daemons servlets, 303 word origin, 297 dangling pointers, 12 data charting, 11 data compression, 11 Data Encryption Standard, see DES Database Management System, see RDBMS Database Programming with JDBC and Java book, 247 Database Programming with JDBC book, 273 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 HTML integration with, 142 updating, 256 see also RDBMS dates and times, localizing, 370 DbConnectionBroker package, web site for, 266 debugging, 415-423 degree symbol, 142 DELETE method, 17 DELETE statement, 246 DES and asymmetric keys, 233, 234 destroy() method, 56, 57, 59 Developing Java Beans book, 43 dictionary servlet, 85 digest authentication, 223 digital certificates, 232-234 digital signatures, 239, 278 directives, 40 dispatch servlet, 320 dividing by zero, 151 document location, 147 doDelete() method, 19 doGet() method, 20, 25, 26, 30, 67, 324 doHead() method, 19 domain restriction pattern, 203 Domino Go Webserver, web site for information, 8 doOptions() method, 19 doPost() method, 296, 324 doPut() method, 19 doTrace() method, 19 dynamic formatting, 371 Dynamo Application Server, web site for information, 8 E[ Top ] efficiency of servlets, 11 elegance of servlet code, 12 email servlets, 401-404 embedded applets, 179-188 embedded servlets limited response capability, 30 SSI functionality, 27 encodeRedirectUrl() method, 214 encodeUrl() method, 213 encryption restrictions, 79 Enterprise JavaBeans components, 11 Enterprise Server supports SSJS, 5 web site for information, 8 Entrust Technologies certificate authority, 233 environment variables, 70-72 error logs, 415 error-handling mechanisms, 152-158 see also status codes EUC-KR (Korean) charset, 372 event log, 219 event logs, 415 examples access counters, 50-62, 96-99 bar chart, 163 Base64 encoding, 225 chat server, 317-336 client certificates, examining, 122, 235 color image, converting to grayscale, 172 compressed content, 189 connection pool, 268 cookies, 204 credit-card checking, 262 current time of day, 284-317 database connections, 63, 72, 248 dictionary servlet, 85 email, 401-404 embedding applet in servlet, 184-187 encryption restrictions, 79 GIF image generation, 161-163 greeting user by name, 23-24 "Hello World", 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" in client's language, 381-383 "Hello World" in Japanese, 373-379 "¡Hola Mundo!", 366-371 HTML generation, 134 HTTP chat applet, 325 identifying client machines, 79 initialization (init) parameters, 73 input stream's content type, 106 invalidating a session, 210, 212 license key, 87 login page, 228-231 Oracle JDBC, 250 overwriting "CONFIDENTIAL", 167 persistence, 128 personalized welcome, 83 random redirection, 148 removing , 33-36, 405-407 request headers, 102 response headers, 16 reusing abilities of another servlet, 344 selling burritos, 350, 354 server information, 75 servlet parameter values, 86 session tracking, 208 session, reporting on, 215 shopping cart, 197 shopping cart with session tracking, 219 SSL connection, 121 time in local zone, 28-30 unique Connection per client, 270 uploading files, 107 verifying servlets, 339 weather forecasting, 131-142 web site demonstrating servlets, xi web site for downloadable code, xi exception handling, 151 exec() method, 408, 410 executeQuery() method, 250 executeUpdate() method, 258 executing queries, 250 exit() method, 27 Expires header, 147 Exploring Java book, xi expressions regular, 404-407 searching for, 11 extensibility of servlets, 13 extension APIs, 4 extensions, file .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 external programs executing from servlets, 407-412 finger, 408-412 extra path information, 89-93 F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
B[ Top ] background processing, 64-67 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 basic authentication, 222 tag, 43, 44-46 BEANNAME attribute, 45 Big5 (Chinese) charset, 372 binary objects, large, 274 tag, 31, 33-36, 405-407 blocks, synchronized, 51 books CGI Programming on the World Wide Web, 3 Database Programming with JDBC, 273 Database Programming with JDBC and Java, 247 Developing Java Beans, 43 Exploring Java, xi Java Cryptography, 234 Java Distributed Computing, 283 Java Examples in a Nutshell, 179 Java in a Nutshell, xi Java Native Methods, 412 Java Network Programming, 283 JDBC Database Access with Java, 247 Mastering Regular Expressions, 404 New Hacker's Dictionary, 297 SQL for Dummies, 246 Technical Introduction to Digital Video, 175 The Unicode Standard, Version 2.0, 369 Understanding Digital Signatures, 234 Web Client Programming, 15, 100, 127, 417 Web Security & Commerce, 222 Webmaster in a Nutshell, 100 bridge drivers, 248 buffering input and output, 424 bug reports and typos, web site for reporting, xiv bugs, preparing servlet for, 151-158 burritos, selling, 350, 354 ByteArrayOutputStream class, 153 C[ Top ] Cache-Control header, 146 caching images, 175 CallableStatement class, 273 callbacks to applet methods, 282, 317, 319, 334 cascading style sheetsets (CSS), 138 case-insensitive search, 407 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 certificates client, 235 digital, 232-234 server, 234 CGI connection to HTTP, 278 definition, 2 environment variables, 70-72 FastCGI, web site for information, 4 hidden form fields, 196 life cycle, 2 no counterpart to getPathInfo(), 91 no counterpart to getScheme(), 100 reference book, 3 security concerns, 237 session-tracking techniques, 196-206 CGI Programming on the World Wide Web book, 3 chaining images, 351 methods, 137 servlets, 30-36, 103-105 character entities (&...;) reference appendix, 478-483 use of, 366-369 character sets difference from charsets, 372 UCS-2, 376 US-ASCII, 372, 376 UTF-8, 376-379 characters, special, 366 charsets hidden form field, 390 ISO-8859-1 (Latin-1), 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic), 372 ISO-8859-8 (Hebrew), 372 Microsoft Internet Explorer option, 373 most include US-ASCII characters, 376 Netscape Navigator option, 372 preferences, 380 reference appendix, 484-485 charting packages, web site for downloading, 166 chat server, 317-336 Chinese charset, 372 class variable, 53 classes ByteArrayOutputStream, 153 CallableStatement, 273 com.oreilly.servlet MultipartResponse, 192 ParameterParser, 398 ServletUtils, 154 Cookie, 19, 202, 447-452 GenericServlet, 17, 426-428 HttpServlet, 17, 452-455 HttpServletRequest, 455-459 identifying users, 82 in javax.servlet.http, 19 HttpServletResponse, 460-463 in javax.servlet.http, 19 setting HTTP response headers, 145 uses, 20 HttpSession, 19, 207, 463-466 HttpSessionBindingEvent, 466-467 HttpSessionBindingListener, 467-468 HttpSessionContext, 211, 468-469 HttpUtils, 469-471 Locale, 370, 371, 374, 381 LocaleNegotiator, 383-389 LocaleToCharsetMap, 383 MultipartRequest, 108-121 MultipartResponse, 192 ParameterParser, 398, 403 PrintStream, 127 PrintWriter, 20 RemoteDaemonHttpServlet, 318 RemoteHttpServlet, 312 SecurityManager, 238 Servlet, 429-430 ServletConfig, 56, 58, 59, 430-431 ServletContext, 431-434 ServletException, 156, 434-435 ServletInputStream, 435-436 ServletOutputStream, 126, 436-438 ServletRequest, 19, 438-442 ServletResponse, 19, 442-444 ServletUtils, 154 SingleThreadModel, 444 singleton, 354, 360, 362 SmtpClient, 402 Statement, 250 stub and skeleton versions, 308 subclassing, 141 superclass for socket connection details, 297 support classes, 55 UnavailableException, 444-446 UnicastRemoteObject, 311 classes (continued ) URLConnection, 292 ZipOutputStream, 189 clearParameters() method, 258 client authentication, see authentication client certificates, 235 client machines, identifying, 79-80, 101 client pull, 149-151, 191 client servlets, 413-415 cmd.exe problem in Windows NT, 412 CODEBASE attribute, 28, 180, 287 collaboration, 349-364 color conversion, web site for information, 175 color image, converting to grayscale, 172 com.oreilly.servlet package MultipartResponse utility class, 192 ParameterParser class, 398 ServletUtils class, 154 web site for source code, xii com.sun package, 75, 123 Common Gateway Interface, see CGI communication applet-server, 277 applet-servlet, 281, 317-336 hybrid approach, 283 RMI, 306-313 servlet-servlet, 337 socket connections initiated by applet only, 297 text-based, 287 compiler, rmic, 308, 334 compression formats GZIP and ZIP supported in JDK, 188 web site for information, 189 negotiating which to use, 189 x-gzip and x-compress, 188 concatenation, to be avoided, 423 configuration class, 56, 58, 59 configuration file, 56 conglomerate image, 169 Connection class getAutoCommit() method, 262 prepareStatement() method, 258 rollback() method, 262 setAutoCommit() method, 262 ConnectionPool class getConnection() method, 268 returnConnection() method, 268 connections Connection header, 146 Connection objects, reusing, 259-260 connection pool, 266-269 HTTP-CGI, 278 maximum of 100, 272 most limited JDBC resource, 272 raw socket connections and HTTP, 278-281, 319, 344 secure connections, 100 see also databases and transactions connectivity advantage of servlets, 242 servlets' power, 11 constructors, 56 containsHeader() method, 147 Content-Encoding header, 147, 188, 190 Content-Language header, 367 Content-Type header, 16, 126, 127, 373 conventions, typographical, xiv Cookie class constructor, 202 in javax.servlet.http package, 19 reference, 447-452 setComment() method, 204 setDomain() method, 203 setMaxAge() method, 204 setPath() method, 204 setSecure() method, 204 setValue() method, 204 setVersion() method, 203 cookies comment field, 204 cookie central web site, 202 Cookie class, 19, 202, 447-452 domain restriction pattern, 203 example, 204 maximum age, 204 persistence, 202-206 secure channel, 204 setting values of, 204 size and quantity limits, 203 specification, 202 version of, 203 where to send, 204 copying, unauthorized, 76 CORBA (Common Object Request Broker Architecture) connectivity, 11, 283 counters, as examples, 50-62, 96-99 country-code abbreviations, 370 crashing servers, 61 CREATE attribute, 45 createImage() method, 162, 166, 178 creation overhead, 49 credit-card checking, 262 cryptography, public-key, 232-234 custom authorization, 227 custom class loaders, 55 customs, local, 369 D[ Top ] daemons servlets, 303 word origin, 297 dangling pointers, 12 data charting, 11 data compression, 11 Data Encryption Standard, see DES Database Management System, see RDBMS Database Programming with JDBC and Java book, 247 Database Programming with JDBC book, 273 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 HTML integration with, 142 updating, 256 see also RDBMS dates and times, localizing, 370 DbConnectionBroker package, web site for, 266 debugging, 415-423 degree symbol, 142 DELETE method, 17 DELETE statement, 246 DES and asymmetric keys, 233, 234 destroy() method, 56, 57, 59 Developing Java Beans book, 43 dictionary servlet, 85 digest authentication, 223 digital certificates, 232-234 digital signatures, 239, 278 directives, 40 dispatch servlet, 320 dividing by zero, 151 document location, 147 doDelete() method, 19 doGet() method, 20, 25, 26, 30, 67, 324 doHead() method, 19 domain restriction pattern, 203 Domino Go Webserver, web site for information, 8 doOptions() method, 19 doPost() method, 296, 324 doPut() method, 19 doTrace() method, 19 dynamic formatting, 371 Dynamo Application Server, web site for information, 8 E[ Top ] efficiency of servlets, 11 elegance of servlet code, 12 email servlets, 401-404 embedded applets, 179-188 embedded servlets limited response capability, 30 SSI functionality, 27 encodeRedirectUrl() method, 214 encodeUrl() method, 213 encryption restrictions, 79 Enterprise JavaBeans components, 11 Enterprise Server supports SSJS, 5 web site for information, 8 Entrust Technologies certificate authority, 233 environment variables, 70-72 error logs, 415 error-handling mechanisms, 152-158 see also status codes EUC-KR (Korean) charset, 372 event log, 219 event logs, 415 examples access counters, 50-62, 96-99 bar chart, 163 Base64 encoding, 225 chat server, 317-336 client certificates, examining, 122, 235 color image, converting to grayscale, 172 compressed content, 189 connection pool, 268 cookies, 204 credit-card checking, 262 current time of day, 284-317 database connections, 63, 72, 248 dictionary servlet, 85 email, 401-404 embedding applet in servlet, 184-187 encryption restrictions, 79 GIF image generation, 161-163 greeting user by name, 23-24 "Hello World", 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" in client's language, 381-383 "Hello World" in Japanese, 373-379 "¡Hola Mundo!", 366-371 HTML generation, 134 HTTP chat applet, 325 identifying client machines, 79 initialization (init) parameters, 73 input stream's content type, 106 invalidating a session, 210, 212 license key, 87 login page, 228-231 Oracle JDBC, 250 overwriting "CONFIDENTIAL", 167 persistence, 128 personalized welcome, 83 random redirection, 148 removing , 33-36, 405-407 request headers, 102 response headers, 16 reusing abilities of another servlet, 344 selling burritos, 350, 354 server information, 75 servlet parameter values, 86 session tracking, 208 session, reporting on, 215 shopping cart, 197 shopping cart with session tracking, 219 SSL connection, 121 time in local zone, 28-30 unique Connection per client, 270 uploading files, 107 verifying servlets, 339 weather forecasting, 131-142 web site demonstrating servlets, xi web site for downloadable code, xi exception handling, 151 exec() method, 408, 410 executeQuery() method, 250 executeUpdate() method, 258 executing queries, 250 exit() method, 27 Expires header, 147 Exploring Java book, xi expressions regular, 404-407 searching for, 11 extensibility of servlets, 13 extension APIs, 4 extensions, file .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 external programs executing from servlets, 407-412 finger, 408-412 extra path information, 89-93 F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
C[ Top ] Cache-Control header, 146 caching images, 175 CallableStatement class, 273 callbacks to applet methods, 282, 317, 319, 334 cascading style sheetsets (CSS), 138 case-insensitive search, 407 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 certificates client, 235 digital, 232-234 server, 234 CGI connection to HTTP, 278 definition, 2 environment variables, 70-72 FastCGI, web site for information, 4 hidden form fields, 196 life cycle, 2 no counterpart to getPathInfo(), 91 no counterpart to getScheme(), 100 reference book, 3 security concerns, 237 session-tracking techniques, 196-206 CGI Programming on the World Wide Web book, 3 chaining images, 351 methods, 137 servlets, 30-36, 103-105 character entities (&...;) reference appendix, 478-483 use of, 366-369 character sets difference from charsets, 372 UCS-2, 376 US-ASCII, 372, 376 UTF-8, 376-379 characters, special, 366 charsets hidden form field, 390 ISO-8859-1 (Latin-1), 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic), 372 ISO-8859-8 (Hebrew), 372 Microsoft Internet Explorer option, 373 most include US-ASCII characters, 376 Netscape Navigator option, 372 preferences, 380 reference appendix, 484-485 charting packages, web site for downloading, 166 chat server, 317-336 Chinese charset, 372 class variable, 53 classes ByteArrayOutputStream, 153 CallableStatement, 273 com.oreilly.servlet MultipartResponse, 192 ParameterParser, 398 ServletUtils, 154 Cookie, 19, 202, 447-452 GenericServlet, 17, 426-428 HttpServlet, 17, 452-455 HttpServletRequest, 455-459 identifying users, 82 in javax.servlet.http, 19 HttpServletResponse, 460-463 in javax.servlet.http, 19 setting HTTP response headers, 145 uses, 20 HttpSession, 19, 207, 463-466 HttpSessionBindingEvent, 466-467 HttpSessionBindingListener, 467-468 HttpSessionContext, 211, 468-469 HttpUtils, 469-471 Locale, 370, 371, 374, 381 LocaleNegotiator, 383-389 LocaleToCharsetMap, 383 MultipartRequest, 108-121 MultipartResponse, 192 ParameterParser, 398, 403 PrintStream, 127 PrintWriter, 20 RemoteDaemonHttpServlet, 318 RemoteHttpServlet, 312 SecurityManager, 238 Servlet, 429-430 ServletConfig, 56, 58, 59, 430-431 ServletContext, 431-434 ServletException, 156, 434-435 ServletInputStream, 435-436 ServletOutputStream, 126, 436-438 ServletRequest, 19, 438-442 ServletResponse, 19, 442-444 ServletUtils, 154 SingleThreadModel, 444 singleton, 354, 360, 362 SmtpClient, 402 Statement, 250 stub and skeleton versions, 308 subclassing, 141 superclass for socket connection details, 297 support classes, 55 UnavailableException, 444-446 UnicastRemoteObject, 311 classes (continued ) URLConnection, 292 ZipOutputStream, 189 clearParameters() method, 258 client authentication, see authentication client certificates, 235 client machines, identifying, 79-80, 101 client pull, 149-151, 191 client servlets, 413-415 cmd.exe problem in Windows NT, 412 CODEBASE attribute, 28, 180, 287 collaboration, 349-364 color conversion, web site for information, 175 color image, converting to grayscale, 172 com.oreilly.servlet package MultipartResponse utility class, 192 ParameterParser class, 398 ServletUtils class, 154 web site for source code, xii com.sun package, 75, 123 Common Gateway Interface, see CGI communication applet-server, 277 applet-servlet, 281, 317-336 hybrid approach, 283 RMI, 306-313 servlet-servlet, 337 socket connections initiated by applet only, 297 text-based, 287 compiler, rmic, 308, 334 compression formats GZIP and ZIP supported in JDK, 188 web site for information, 189 negotiating which to use, 189 x-gzip and x-compress, 188 concatenation, to be avoided, 423 configuration class, 56, 58, 59 configuration file, 56 conglomerate image, 169 Connection class getAutoCommit() method, 262 prepareStatement() method, 258 rollback() method, 262 setAutoCommit() method, 262 ConnectionPool class getConnection() method, 268 returnConnection() method, 268 connections Connection header, 146 Connection objects, reusing, 259-260 connection pool, 266-269 HTTP-CGI, 278 maximum of 100, 272 most limited JDBC resource, 272 raw socket connections and HTTP, 278-281, 319, 344 secure connections, 100 see also databases and transactions connectivity advantage of servlets, 242 servlets' power, 11 constructors, 56 containsHeader() method, 147 Content-Encoding header, 147, 188, 190 Content-Language header, 367 Content-Type header, 16, 126, 127, 373 conventions, typographical, xiv Cookie class constructor, 202 in javax.servlet.http package, 19 reference, 447-452 setComment() method, 204 setDomain() method, 203 setMaxAge() method, 204 setPath() method, 204 setSecure() method, 204 setValue() method, 204 setVersion() method, 203 cookies comment field, 204 cookie central web site, 202 Cookie class, 19, 202, 447-452 domain restriction pattern, 203 example, 204 maximum age, 204 persistence, 202-206 secure channel, 204 setting values of, 204 size and quantity limits, 203 specification, 202 version of, 203 where to send, 204 copying, unauthorized, 76 CORBA (Common Object Request Broker Architecture) connectivity, 11, 283 counters, as examples, 50-62, 96-99 country-code abbreviations, 370 crashing servers, 61 CREATE attribute, 45 createImage() method, 162, 166, 178 creation overhead, 49 credit-card checking, 262 cryptography, public-key, 232-234 custom authorization, 227 custom class loaders, 55 customs, local, 369 D[ Top ] daemons servlets, 303 word origin, 297 dangling pointers, 12 data charting, 11 data compression, 11 Data Encryption Standard, see DES Database Management System, see RDBMS Database Programming with JDBC and Java book, 247 Database Programming with JDBC book, 273 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 HTML integration with, 142 updating, 256 see also RDBMS dates and times, localizing, 370 DbConnectionBroker package, web site for, 266 debugging, 415-423 degree symbol, 142 DELETE method, 17 DELETE statement, 246 DES and asymmetric keys, 233, 234 destroy() method, 56, 57, 59 Developing Java Beans book, 43 dictionary servlet, 85 digest authentication, 223 digital certificates, 232-234 digital signatures, 239, 278 directives, 40 dispatch servlet, 320 dividing by zero, 151 document location, 147 doDelete() method, 19 doGet() method, 20, 25, 26, 30, 67, 324 doHead() method, 19 domain restriction pattern, 203 Domino Go Webserver, web site for information, 8 doOptions() method, 19 doPost() method, 296, 324 doPut() method, 19 doTrace() method, 19 dynamic formatting, 371 Dynamo Application Server, web site for information, 8 E[ Top ] efficiency of servlets, 11 elegance of servlet code, 12 email servlets, 401-404 embedded applets, 179-188 embedded servlets limited response capability, 30 SSI functionality, 27 encodeRedirectUrl() method, 214 encodeUrl() method, 213 encryption restrictions, 79 Enterprise JavaBeans components, 11 Enterprise Server supports SSJS, 5 web site for information, 8 Entrust Technologies certificate authority, 233 environment variables, 70-72 error logs, 415 error-handling mechanisms, 152-158 see also status codes EUC-KR (Korean) charset, 372 event log, 219 event logs, 415 examples access counters, 50-62, 96-99 bar chart, 163 Base64 encoding, 225 chat server, 317-336 client certificates, examining, 122, 235 color image, converting to grayscale, 172 compressed content, 189 connection pool, 268 cookies, 204 credit-card checking, 262 current time of day, 284-317 database connections, 63, 72, 248 dictionary servlet, 85 email, 401-404 embedding applet in servlet, 184-187 encryption restrictions, 79 GIF image generation, 161-163 greeting user by name, 23-24 "Hello World", 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" in client's language, 381-383 "Hello World" in Japanese, 373-379 "¡Hola Mundo!", 366-371 HTML generation, 134 HTTP chat applet, 325 identifying client machines, 79 initialization (init) parameters, 73 input stream's content type, 106 invalidating a session, 210, 212 license key, 87 login page, 228-231 Oracle JDBC, 250 overwriting "CONFIDENTIAL", 167 persistence, 128 personalized welcome, 83 random redirection, 148 removing , 33-36, 405-407 request headers, 102 response headers, 16 reusing abilities of another servlet, 344 selling burritos, 350, 354 server information, 75 servlet parameter values, 86 session tracking, 208 session, reporting on, 215 shopping cart, 197 shopping cart with session tracking, 219 SSL connection, 121 time in local zone, 28-30 unique Connection per client, 270 uploading files, 107 verifying servlets, 339 weather forecasting, 131-142 web site demonstrating servlets, xi web site for downloadable code, xi exception handling, 151 exec() method, 408, 410 executeQuery() method, 250 executeUpdate() method, 258 executing queries, 250 exit() method, 27 Expires header, 147 Exploring Java book, xi expressions regular, 404-407 searching for, 11 extensibility of servlets, 13 extension APIs, 4 extensions, file .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 external programs executing from servlets, 407-412 finger, 408-412 extra path information, 89-93 F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
D[ Top ] daemons servlets, 303 word origin, 297 dangling pointers, 12 data charting, 11 data compression, 11 Data Encryption Standard, see DES Database Management System, see RDBMS Database Programming with JDBC and Java book, 247 Database Programming with JDBC book, 273 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 HTML integration with, 142 updating, 256 see also RDBMS dates and times, localizing, 370 DbConnectionBroker package, web site for, 266 debugging, 415-423 degree symbol, 142 DELETE method, 17 DELETE statement, 246 DES and asymmetric keys, 233, 234 destroy() method, 56, 57, 59 Developing Java Beans book, 43 dictionary servlet, 85 digest authentication, 223 digital certificates, 232-234 digital signatures, 239, 278 directives, 40 dispatch servlet, 320 dividing by zero, 151 document location, 147 doDelete() method, 19 doGet() method, 20, 25, 26, 30, 67, 324 doHead() method, 19 domain restriction pattern, 203 Domino Go Webserver, web site for information, 8 doOptions() method, 19 doPost() method, 296, 324 doPut() method, 19 doTrace() method, 19 dynamic formatting, 371 Dynamo Application Server, web site for information, 8 E[ Top ] efficiency of servlets, 11 elegance of servlet code, 12 email servlets, 401-404 embedded applets, 179-188 embedded servlets limited response capability, 30 SSI functionality, 27 encodeRedirectUrl() method, 214 encodeUrl() method, 213 encryption restrictions, 79 Enterprise JavaBeans components, 11 Enterprise Server supports SSJS, 5 web site for information, 8 Entrust Technologies certificate authority, 233 environment variables, 70-72 error logs, 415 error-handling mechanisms, 152-158 see also status codes EUC-KR (Korean) charset, 372 event log, 219 event logs, 415 examples access counters, 50-62, 96-99 bar chart, 163 Base64 encoding, 225 chat server, 317-336 client certificates, examining, 122, 235 color image, converting to grayscale, 172 compressed content, 189 connection pool, 268 cookies, 204 credit-card checking, 262 current time of day, 284-317 database connections, 63, 72, 248 dictionary servlet, 85 email, 401-404 embedding applet in servlet, 184-187 encryption restrictions, 79 GIF image generation, 161-163 greeting user by name, 23-24 "Hello World", 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" in client's language, 381-383 "Hello World" in Japanese, 373-379 "¡Hola Mundo!", 366-371 HTML generation, 134 HTTP chat applet, 325 identifying client machines, 79 initialization (init) parameters, 73 input stream's content type, 106 invalidating a session, 210, 212 license key, 87 login page, 228-231 Oracle JDBC, 250 overwriting "CONFIDENTIAL", 167 persistence, 128 personalized welcome, 83 random redirection, 148 removing , 33-36, 405-407 request headers, 102 response headers, 16 reusing abilities of another servlet, 344 selling burritos, 350, 354 server information, 75 servlet parameter values, 86 session tracking, 208 session, reporting on, 215 shopping cart, 197 shopping cart with session tracking, 219 SSL connection, 121 time in local zone, 28-30 unique Connection per client, 270 uploading files, 107 verifying servlets, 339 weather forecasting, 131-142 web site demonstrating servlets, xi web site for downloadable code, xi exception handling, 151 exec() method, 408, 410 executeQuery() method, 250 executeUpdate() method, 258 executing queries, 250 exit() method, 27 Expires header, 147 Exploring Java book, xi expressions regular, 404-407 searching for, 11 extensibility of servlets, 13 extension APIs, 4 extensions, file .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 external programs executing from servlets, 407-412 finger, 408-412 extra path information, 89-93 F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
E[ Top ] efficiency of servlets, 11 elegance of servlet code, 12 email servlets, 401-404 embedded applets, 179-188 embedded servlets limited response capability, 30 SSI functionality, 27 encodeRedirectUrl() method, 214 encodeUrl() method, 213 encryption restrictions, 79 Enterprise JavaBeans components, 11 Enterprise Server supports SSJS, 5 web site for information, 8 Entrust Technologies certificate authority, 233 environment variables, 70-72 error logs, 415 error-handling mechanisms, 152-158 see also status codes EUC-KR (Korean) charset, 372 event log, 219 event logs, 415 examples access counters, 50-62, 96-99 bar chart, 163 Base64 encoding, 225 chat server, 317-336 client certificates, examining, 122, 235 color image, converting to grayscale, 172 compressed content, 189 connection pool, 268 cookies, 204 credit-card checking, 262 current time of day, 284-317 database connections, 63, 72, 248 dictionary servlet, 85 email, 401-404 embedding applet in servlet, 184-187 encryption restrictions, 79 GIF image generation, 161-163 greeting user by name, 23-24 "Hello World", 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" in client's language, 381-383 "Hello World" in Japanese, 373-379 "¡Hola Mundo!", 366-371 HTML generation, 134 HTTP chat applet, 325 identifying client machines, 79 initialization (init) parameters, 73 input stream's content type, 106 invalidating a session, 210, 212 license key, 87 login page, 228-231 Oracle JDBC, 250 overwriting "CONFIDENTIAL", 167 persistence, 128 personalized welcome, 83 random redirection, 148 removing , 33-36, 405-407 request headers, 102 response headers, 16 reusing abilities of another servlet, 344 selling burritos, 350, 354 server information, 75 servlet parameter values, 86 session tracking, 208 session, reporting on, 215 shopping cart, 197 shopping cart with session tracking, 219 SSL connection, 121 time in local zone, 28-30 unique Connection per client, 270 uploading files, 107 verifying servlets, 339 weather forecasting, 131-142 web site demonstrating servlets, xi web site for downloadable code, xi exception handling, 151 exec() method, 408, 410 executeQuery() method, 250 executeUpdate() method, 258 executing queries, 250 exit() method, 27 Expires header, 147 Exploring Java book, xi expressions regular, 404-407 searching for, 11 extensibility of servlets, 13 extension APIs, 4 extensions, file .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 external programs executing from servlets, 407-412 finger, 408-412 extra path information, 89-93 F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
F[ Top ] FastCGI, web site for information, 4 FastTrack Server, 5 fiendish rogues, 221 file extensions .htm, 36 .html, 36 .jsp, 38 .shtml, 29, 35 file uploading, 107 filter chains, 176-179 filtering, 31 finally block, 157, 305 fine-grained access control, 239-241, 278 finger program, 408-412 form fields, hidden, 197-199 formats of images, 160 formatting query results, 252 forms, HTML, 389 forName() method, 248 G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
G[ Top ] Gefion Software's WAICoolRunner, web site for information, 9 generateSessionId() method, 201 generating images, 160-166 GenericServlet class, 17, 426-428 GET method in chat server, 318-319 use of, 16 getAppletInfo() method, 24 getAsciiStream() method, 274 getAttribute() method, 75, 121 getAuthType() method, 82, 223, 224 getAutoCommit() method, 262 getBinaryStream() method, 274 getBundle() method, 381, 384 getByName() method, 79 getColumnCount() method, 254 getColumnLabel() method, 254 getConnection() method, 249, 268 getContentLength() method, 105 getContentType() method, 33, 105, 109 getCookies() method, 203 getCreationTime() method, 210 getDateHeader() method, 102 getDateUsingHttpObject() method, 294 getDateUsingHttpText() method, 295 getDateUsingSocketObject() method, 303 getDateUsingSocketText() method, 303 getDefaultToolkit().getImage() method, 166 getFile() method, 110 getFileNames() method, 109 getFilesystemName() method, 109 getGraphics() method, 166 getHeader() method, 102 getHeaderField() method, 292 getHeaderNames() method, 102 getIds() method, 212 getImage() method, 162 getInitParameter() method, 58 getInitParameterNames() method, 73 getInputStream() method, 105 getIntHeader() method, 102 getLastAccessedTime() method, 210 getLastModified() method, 67, 68 getMethod() method, 100 getMimeType() method, 91, 159 getName() method, 218 getObject() method, 250 getOutputStream() method, 126 getParameter() method, 30, 44, 84-85, 106-107 getParameterNames() method, 85, 109 getParameterValues() method, 84-86 getPathInfo() method, 91, 201 getPathTranslated() method, 90, 91 getProperties().get() method, 350 getProperties().put() method, 349, 350 getProperties().remove() method, 349, 350 getProperty() method, 76, 422 getReader() method, 33, 104 getRealPath() method, 91 getRemoteAddr() method, 79 getRemoteHost() method, 79 getRemoteUser() method, 81, 82, 101, 223, 224, 237 getRequestURL() method, 94 getResultSet() method, 256-258 getScheme() method, 99 getServerInfo() method, 75 getServlet() method, 337 getServletInfo() method, 24 getServletNames() method, 338 getServletPath() method, 95 getServlets() method, 338 getSession() method, 207, 212, 218 getSessionContext() method, 211 getStackTraceAsString() method, 154 getString() method, 250 getUpdateCount() method, 256-258 getValue() method, 207 getValueNames() method, 207 getWriter() method, 126 GIF encoder, web site for downloading, 163 GIF format good and bad points, 160 LZW compression, 163 glyphs, displaying correctly, 374 grayscale conversion, 172 greeting user by name, 23-24 GWAPI, 8 GZIP compression format supported in JDK, 188 web site for information, 189 GZIPOutputStream, 189 H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
H[ Top ] handleClient() method, 297 handleMalformedCount() method, 397 handleNoCount() method, 397 hash table, 84, 175 HEAD method handling of, 25-27 purpose, 17 tag, 147 headers Accept, 15, 101 Accept-Charset, 380 Accept-Encoding, 188, 190 Accept-Language, 380 Authorization, 100, 101, 224 Cache-Control, 146 Connection, 146 Content-Encoding, 147, 188, 190 Content-Language, 367 Content-Type, 16, 126, 127, 373 Expires, 147 Location, 147 partial table of, 146 Pragma, 146, 292 Referer, 101 Refresh, 191 request, 102 response, 16 Retry-After, 146 Server, 16 User-Agent, 15, 101, 188 Vary, 190 WWW-Authenticate, 100, 147, 224 "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 hidden form fields CGI, 196 charset, 390 in session-tracking, 197-199 "¡Hola Mundo!" example, 366-371 .htm extension, 36 HTML ACTION attribute, 89, 202 tag, 28, 180 tag, 43, 44-46 tag, 31, 33-36, 405-407 character entities (&...;) reference appendix, 478-483 use of, 366-369 constructed by hand, 132 degree symbol, 142 forms, 389 generation example, 134 generation of, 129-142 tag, 147 hidden form fields, 197-199 tag, 169 integration with databases, 142 tag, 147 object-oriented, 130, 131, 137, 142 page generated by HTTP servlet, 19-27 tag, 28, 45, 84, 336 removing , 33-36, 405-407 RFC 2070 (HTML internationalization), 389 tag how Java Web Server supports it, 32 parameters, 28 syntax varies, 27 servlets embedded in pages limited response capability, 30 SSI functionality, 27 tag, 32 tag, 131 .html extension, 36 htmlKona package HTML table generation, 253 web site for downloading, 130 HTTP access counters, as examples, 50-62, 96-99 basic authentication, 222 basic description, 14 connection to a CGI program, 278 cookies, 19 databases connections, 63, 72, 248 connectivity advantage of servlets, 242 servlets' power, 11 deleting session objects, 208 digest authentication, 223 environment variables, 71 extra path information, 89-93 GET method, 16, 318-319 giving values to session objects, 207 greeting user by name, 23-24 headers before response body, 125 request, 102 response, 16 see also headers "Hello World" example, 19-23, 125-126, 130-131, 161-163, 366-371 "Hello World" example in client's language, 381-383 "Hello World" example in Japanese, 373-379 "¡Hola Mundo!" example, 366-371 logging errors, 153 methods see also methods non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 passwords, 222 POST method, 16, 25, 106, 279, 318-319, 324 problem reports, 154 query string, 16, 172, 279 raw socket connections, 278-281, 319, 344 reference book, 15, 100 response headers partial table of, 146 retrieving names of session objects, 207 retrieving session objects, 207 retrieving values from session objects, 207 stateless protocol, 195 status codes definition, 124 partial table of, 142 reference appendix, 472-477 reporting, 152 server-specific pages, 152 setting, 144 text-based communication, 287 time in local zone, 28-30 version response, 15 virtual path, 89-93 http scheme, 100 HTTP Servlet API, reference appendix, 447-471 httpd script, 21 httpd.exe program, 21 httpd.nojre, 21 HTTPS (HTTP plus SSL) protocol, 234 https scheme, 100 HttpServlet class, 17, 452-455 HttpServletRequest class getAuthType() method, 223 getCookies() method, 203 getRemoteUser() method, 81, 223 identifying users, 82 in javax.servlet.http, 19 reference, 455-459 HttpServletResponse class encodeRedirectUrl() method, 214 encodeUrl() method, 213 in javax.servlet.http, 19 reference, 460-463 setting HTTP response headers, 145 uses, 20 HttpSession class getCreationTime() method, 210 getLastAccessedTime() method, 210 invalidate() method, 210 isNew() method, 210 reference, 463-466 session-tracking, 207 session-tracking functionality, 19 HttpSessionBindingEvent class, 466-467 HttpSessionBindingListener class, 467-468 HttpSessionContext class, 211, 468-469 HttpUtils class, 469-471 I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
I[ Top ] i18n, see internationalization IANA (Internet Assigned Numbers Authority), 378 IBM ServletExpress, web site for information, 9 WebSphere Application Server, web site for information, 9 If-Modified-Since header, 67 IIOP (Internet Inter-ORB Protocol), web sites for information, 283 image/gif MIME type, 162 images as responses, 159 caching, 175 chaining, 351 conglomerate, 169 converting to grayscale, 172 drawing on top of, 166 filter chains, 176-179 formats, 160 generating, 160-166 manipulating, 11, 159 scaling down in size, 172, 176 special effects, 172, 176 tag, 169 indexes in ResultSet objects, numbered 1 to n, 254 inheritance, 361, 362 init() method, 56, 58, 59 initialization (init) parameters example, 73 key for locking servlet to server, 76 registered servlet names, 72-74 uses of, 56-61 initializing servlets, 56 input streams, 104-121 integration of servlets, 12 interfaces Servlet, 17 SingleThreadModel, 62 internationalization see also localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 Internet Information Server, no FastCGI support, 4 Internet Information Server, web site for downloading, 5 interservlet communication, 337 INTROSPECT attribute, 45 invalid pointer reference, 12 invalidate() method, 210 invoker, 35 IP address, 195 ISAPI, Microsoft API, 4 isNew() method, 210 ISO-3166 (country codes), 370 ISO-639 (language abbreviations), 367 ISO-8859-1 (Latin-1) charset, 126, 367, 369, 372, 389 ISO-8859-5 (Cyrillic) charset, 372 ISO-8859-8 (Hebrew) charset, 372 isRequestedSessionIdFromCookie() method, 214 isRequestedSessionIdFromUrl() method, 214 isRequestedSessionIdValue() method, 214 J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
J[ Top ] Japanese charset, 372 Java 100% Pure Java, 412 constructors, 56 dynamic formatting, 371 exception handling, 151 memory protection, 151 methods to retrieve SQL data types, 254 reference books, xi resource bundles, 381 security features, 151 security manager, 238-241 system-wide Properties list, 349-353 Unicode, 369 Java Archive (JAR) files, 188, 239 Java Cryptography book, 234 Java database connectivity, see JDBC Java Development Kit, see JDK Java Distributed Computing book, 283 Java Examples in a Nutshell book, 179 Java Exchange's DbConnectionBroker package, web site for, 266 Java Image Management Interface (JIMI), web site for downloading, 163 Java in a Nutshell book, xi Java Native Interface (JNI), 412 Java Native Methods book, 412 Java Network Programming book, 283 Java Runtime Environment (JRE), 21 Java Servlet Development Kit, see JSDK Java Software division, see JavaSoft Java Web Server ("Jeeves") back door for servlet's registered name, 74 bug with chained servlet, 36 bug with getRequestURI(), 95 bug with PrintWriter, 30 modular design, 92 permission types, 239 programmatic access to security, 224 security manager, 238 session-tracking, 207 supports SSL 3.0, 235 used in this book, 21 web site for information, xii, 8 java.x packages, 75, 123 java.security package, 235 java.util.zip package, 188 Java-Apache project's JServ module, web site for information, 9 JavaBeans servlets handled as, 56 web site for information, 43 javac compiler, 21 JavaChart package free applets in, 187 web site for downloading, 166 JavaMail API, 402 JavaScript, server-side, 5 JavaServer Administration Tool configuration page, 240 for MIME-based filtering, 36 URL for access, 22 JavaServer Engine, web site for information, 10 JavaServer Pages, see JSPs JavaServer Toolkit, web site for information, 10 JavaSoft servlets, ix javax.x packages, 75, 123 javax.servlet package, 17, 425-446 javax.servlet.http package, 17, 447-471 JDBC (Java database connectivity) advanced techniques, 272-276 connecting, 248 connections most limited JDBC resource, 272 see also databases and transactions details extracted out, 72 JDBC (continued ) drivers capabilities, 249 loading, 248 pooling, 266 types of, 248 null database values, 255 SQL-level API, 247 web sites drivers information, 248 JDBC specification, 247 JDBC Database Access with Java book, 247 JDK (Java Development Kit) localizing dates and times, 370 web site for downloading, xii Jigsaw Server, web site for information, 8 JPEG format, 160 JRun, web site for information, 9 JScript, 5 JSDK (Java Servlet Development Kit) bare-bones simplicity, 21 description, 20 minimal session-tracking, 207 web site for downloading, xii, 7, 416 JServ module, web site for information, 9 jserv-interest mailing list, xvi .jsp extension, 38 JSPs (JavaServer Pages), 13, 37-43 K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
K[ Top ] "keep-alive" connections, see persistence key asymmetric, 233, 234 DES, 233, 234 key for locking servlet to server, 76 Keywitness certificate authority, 233 Korean charset, 372 Kristensen's Nexus Web Server, web site for information, 10 L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
L[ Top ] l10n, see localization language Microsoft Internet Explorer option, 380 name abbreviations, 367, 370, 380 negotiation, 389 Netscape Navigator option, 380 non-Western European, 371-376 several on one page, 376, 395 specifying, 367 large binary objects, 274 large text strings, 274 Last-Modified header, 67 legal counsel, 80 lib/jws.jar in classpath, 21 license key example, 87 license, software, 76 life cycle CGI, 2 servlet, 48-69, 209-210 list, jserv-interest, xvi listing users, 408-412 Live Software JRun, web site for information, 9 ServletDebugger, web site for information, 417 local customs, 369 Locale class, 370, 371, 374, 381 LocaleNegotiator class, 383-389 LocaleToCharsetMap class, 383 localization future directions, 389 Microsoft Internet Explorer, 374 Netscape Navigator, 374 servlet feature, 11 Western European languages, 366 localizing dates and times, 370 Location header, 147 lock (monitor) on a class, 52 log files, 415 log() method for debugging, 153, 415 logging errors, 153 Lotus Domino Go Webserver, web site for information, 8 GWAPI, 8 low-level socket management, 300-303 LZW compression algorithm, 163 M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
M[ Top ] mailing list, jserv-interest, xvi main() method, not used in servlets, 17 manipulating images, 11, 159 Mastering Regular Expressions book, 404 memory footprint, 49 memory leaks, 12 memory protection, 151 tag, 147 methods accept(), 302 addCookie(), 203 addNotify(), 162 callbacks to, 282, 317, 319, 334 chaining, 137 clearParameters(), 258 containsHeader(), 147 createImage(), 162, 166, 178 definition, 15 DELETE, 17 destroy(), 56, 57, 59 doDelete(), 19 doGet(), 20, 25, 26, 30, 67, 324 doHead(), 19 doOptions(), 19 doPost(), 296, 324 doPut(), 19 doTrace(), 19 encodeRedirectUrl(), 214 encodeUrl(), 213 exec(), 408, 410 executeQuery(), 250 executeUpdate(), 258 exit(), 27 forName(), 248 generateSessionId(), 201 GET in chat server, 318-319 use of, 16 getAppletInfo(), 24 getAsciiStream(), 274 getAttribute(), 75, 121 getAuthType(), 82, 223, 224 getAutoCommit(), 262 getBinaryStream(), 274, 275 getBundle(), 381, 384 getByName(), 79 getColumnCount(), 254 getColumnLabel(), 254 getConnection(), 249, 268 getContentLength(), 105 getContentType(), 33, 105, 109 getCookies(), 203 getCreationTime(), 210 getDateHeader(), 102 getDateUsingHttpObject(), 294 getDateUsingHttpText(), 295 getDateUsingSocketObject(), 303 getDateUsingSocketText(), 303 getDefaultToolkit().getImage(), 166 getFile(), 110 getFileNames(), 109 getFilesystemName(), 109 getGraphics(), 166 getHeader(), 102 getHeaderField(), 292 getHeaderNames(), 102 getIds(), 212 getImage(), 162 getInitParameter(), 58 getInitParameterNames(), 73 getInputStream(), 105 getIntHeader(), 102 getLastAccessedTime(), 210 getLastModified(), 67, 68 getMethod(), 100 getMimeType(), 91, 159 getName(), 218 getObject(), 250 getOutputStream(), 126 getParameter(), 30, 44, 84-85, 106-107 getParameterNames(), 85, 109 getParameterValues(), 84-86 getPathInfo(), 91, 201 getPathTranslated(), 90, 91 getProperties().get(), 350 getProperties().put(), 349, 350 getProperties().remove(), 349, 350 getProperty(), 76, 422 getReader(), 33, 104 methods (continued ) getRealPath(), 91 getRemoteAddr(), 79 getRemoteHost(), 79 getRemoteUser(), 81, 82, 101, 223, 224, 237 getRequestURL(), 94 getResultSet(), 256-258 getScheme(), 99 getServerInfo(), 75 getServlet(), 337 getServletInfo(), 24 getServletNames(), 338 getServletPath(), 95 getServlets(), 338 getSession(), 207, 212, 218 getSessionContext(), 211 getStackTraceAsString(), 154 getString(), 250 getUpdateCount(), 256-258 getValue(), 207 getValueNames(), 207 getWriter(), 126 handleClient(), 297 handleMalformedCount(), 397 handleNoCount(), 397 HEAD handling of, 25-27 purpose, 17 init(), 56, 58, 59 invalidate(), 210 invoking using reflection, 339-342 isNew(), 210 isRequestedSessionIdFrom- Cookie (), 214 isRequestedSessionIdFromUrl(), 214 isRequestedSessionIdValue(), 214 log() for debugging, 153, 415 main() not used in servlets, 17 next(), 250 OPTIONS, 17 POST description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 prepareStatement(), 258 protected, 363 PUT, 17 putValue(), 207 readLine(), 105 removeValue(), 208 retrieving SQL data types, 254 returnConnection(), 268 rollback(), 262 sendError(), 144, 152 sendPostMessage(), 295 sendRedirect(), 149 service(), 18, 30, 100, 156 setAutoCommit(), 262, 268 setComment(), 204 setContentLength(), 128 setContentType(), 126, 159, 162 setDateHeader(), 147 setDomain(), 203 setHeader(), 145, 149 setIntHeader(), 147 setMaxAge(), 204 setName(), 44 setPath(), 204 setRequestProperty(), 292 setSecure(), 204 setStatus(), 144, 152 setValue(), 204 setVersion(), 203 static, 363 stop(), 66 synchronized, 52 TRACE, 17 valueBound(), 218 valueUnbound(), 218 Microsoft Internet Explorer cascading style sheets, 138 charsets option, 373 internationalization, 374 language option, 380 no RMI support, 107 User-Agent header, 101 UTF-8, 376 Internet Information Server ASP support, 5 no FastCGI support, 4 ISAPI, 4 Windows NT, problem with cmd.exe, 412 Windows, problem with telnet.exe, 420 MIME types application/x-www-form-urlencoded, 292 custom, 294 how to return, 159 identified by servlet, 91 image/gif, 162 in Accept header, 101 in Content-Type headers, 16 none to represent serialized objects, 294 text/html, 20 mod_perl, web site for information, 4 monitor (lock) on a class, 52 multilingual input, 395 MultipartRequest class, 108-121 multithreading, 11 N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
N[ Top ] NAME attribute, 44 name, registered, 22, 29, 53, 74 National Television Systems Committee (NTSC), 175 native code, 412 native-API, partly-Java drivers, 248 native-protocol all-Java drivers, 248 net-protocol all-Java drivers, 248 Netscape cookie specification, 202 Enterprise Server supports SSJS, 5 WAICoolRunner support, 9 web site for information, 8 FastTrack Server, 5, 9 home page in various languages, 365 introduced server-side applets, ix introduced SSL, 234 Navigator bug with request's content type, 292 cascading style sheets, 138 charsets option, 372 file uploading, 107 internationalization, 374 introduced cookies, 202 language option, 380 RMI support, 282 User-Agent header, 101 UTF-8, 376 server-side applets, ix server-side JavaScript (SSJS), 5 server-side scripting, 5 WAI interface, 9 New Atlanta's ServletExec, web site for information, 9 New Hacker's Dictionary book, 297 next() method, 250 Nexus Web Server, web site for information, 10 non-HTTP applet, 303 non-HTTP protocol, 300 non-HTTP server, 297, 303 NSAPI (WAI), a Netscape API, 4 NTSC, 175 null database values, 255 O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
O[ Top ] O'Reilly's WebSite Professional, web site for information, 8 obfuscator, 78 object serialization, 11, 281, 295, 296 object-oriented HTML, 130, 131, 137, 142 OCI libraries, 248 operating systems' requirements for starting a server, 21 OPTIONS method, 17 Oracle Call Interface, see OCI Oracle's PL/SQL language, 272 Original Reusable Objects' PerlTools and OROMatcher, web site for downloading, 404 OROMatcher web site for downloading, 405 output, redirected, 411 overhead of object creation, 49 P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
P[ Top ] packages com.sun, 75, 123 java.x, 75, 123 java.security, 235 java.util.zip, 188 javax.x, 75, 123 javax.servlet, 17, 425-446 javax.servlet.http, 17, 447-471 reserved names, 75 page generation, 19-27 Paralogic's WebCore, web site for information, 10 tag, 28, 45, 84, 336 ParameterParser class, 403 parameters getInitParameter(), 58 getParameter(), 30, 44 initialization (init) registered servlet names, 72-74 uses of, 56-61 tag, 28, 45, 84, 336 parsing, 397-401 request, 84-86 tag, 28 servlet-generated for applets, 336 parsing request parameters, 397-401 passwords, 222 path information, 89-93 path translations, 91 performance, maximizing, 49, 55, 423-424 Perl advantage of, 4 predominance, 3 regular expressions, 404-407 PerlEx, web site for information, 4 PerlTools, web site for downloading, 404 permission types, 239 persistence cookies, 202-206 servlets, 11, 48, 49, 127-129 threads, 49 personalized welcome example, 83 pixel values, 160 PL/SQL language, 272 pointer reference, invalid, 12 pointers, dangling, 12 pool drivers, web site for, 266 port number, 74 portability of servlets, 10 Poskanzer, Jef Acme.Serve, web site for information, 10 GIF encoder, web site for downloading, 163 POST method description, 16 handling of, 25 in chat server, 279, 318-319, 324 input stream, 106 use of, 16 power of servlets, 11 Pragma header, 146, 292 PreparedStatement class, 258-259, 260-261 prepareStatement() method, 258 PrintStream class, 20, 127 PrintWriter class, 20 problem reports, 154 Properties list, 349-353 protected methods, 363 proxies, SOCKS-based, 282 public-key cryptography, 232-234 pull, client, 149-151, 191 push, server, 191-194 PUT method, 17 putValue() method, 207 Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
Q[ Top ] queries executing, 250 formatting results, 252 query string, 16, 172, 279 R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
R[ Top ] raw socket connections and HTTP, 278-281, 319, 344 RDBMS definition, 243 internal programming language, 272 readLine() method, 105 redirected output, 411 redirecting a request, 148-149 reference books CGI, 3 digital certificates, 234 HTTP, 15, 100 Java, xi SQL, 246 see also books reference, invalid, 12 Referer header, 101 referrals, identifying, 101 reflection to invoke methods, 339-342 Refresh header, 191 registered name, 22, 29, 53, 74 registry server, 282, 309, 312-316 regular expression searching, 11 regular expressions, 404-407 Relational Database Management System, see RDBMS reloading servlets, 55-56 Remote Method Invocation, see RMI remote object servlet, 308, 309, 311 RemoteDaemonHttpServlet class, 318 RemoteHttpServlet class, 312 removeValue() method, 208 removing , 33-36, 405-407 request header, 102 parameters, 84-86 redirecting, 148-149 request parameters, parsing, 397-401 resource bundles, 381 response body, 125 headers example, 16 partial table of, 146 image, 159 structure, 124-125 ResultSet class getAsciiStream() method, 274 getBinaryStream() method, 274, 275 getObject() method, 250 getString() method, 250 indexes, numbered 1 to n, 254 next() method, 250 ResultSetMetaData class getColumnCount() method, 254 getColumnLabel() method, 254 Retry-After header, 146 returnConnection() method, 268 reusing abilities of another servlet, 342, 344 rewriting URLs, 200-202 RFC 1521 (Base64 encoding), 225 RFC 1630 (about URIs, URLs, and URNs), 95 RFC 1867 (file-uploading specification), 107 RFC 2070 (HTML internationalization), 389 RFC 2109 (cookie specification), 202 RFC 2278 (charsets), 372 RFC 2279 (UTF-8 character set), 376 RMI (Remote Method Invocation) advantages, 282 API, 282 client servlets, 413-415 communication, 306-313 disadvantages, 282 firewall limitations, 282 no requests or responses, 282 registry server, 282, 309, 312-316 rmic compiler, 308, 334 servlet feature, 11 supported by Netscape Navigator only, 282 transport layer, 282 rmic (RMI compiler), 308, 334 rogues, fiendish, 221 rollback() method, 262 root directory of server, 76 S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16
S[ Top ] safety of servlets, 12 sandbox, 151 sandbox for servlets, 238 saving state of servlets, 340 SCOPE attribute, 45 search, case-insensitive, 407 secure connections, 100 Secure Sockets Layer, see SSL security access controller, 241 Base64 decoder, 225 encoding, 222 RFC 1521, 225 user name and password in header, 224 certificate authorities Entrust Technologies, 233 Keywitness, 233 Thawte Consulting, 233 VeriSign, 122, 233, 235 CGI concerns, 237 digital certificates, 232-234 Java features, 151 permission types, 239 public-key cryptography, 232-234 requirements, 221 WWW Security FAQ, web site for information, 237 see also authorization and authentication security manager, 238-241 SecurityManager class, 238 SELECT statement, 243-246 sendError() method, 144, 152 sendPostMessage() method, 295 sendRedirect() method, 149 serialized objects in Java API, 11 in servlets, 281 no MIME types, 294 no primitive types, 296 uploaded by applet, 295 server certificates, 234 server extensible modules, ix server extension APIs, 4 Server header, 16