Java Servlets Copyright © 2002 ProsoftTraining. All rights reserved. Lesson 1: Introduction to Java Servlets Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Describe the differences between servlets and other Web application technologies • Explain the difference between the GET and POST methods of making an HTTP request • Create a simple servlet using GET • Create a simple servlet using POST • Define a simple deployment descriptor Introduction to Web Applications • Web application technologies – Common Gateway Interface (CGI) – Server extensions – Server-side scripting – JavaServer Pages – Java servlets Hypertext Transfer Protocol • The GET method • The POST method • Additional methods Writing a Simple Servlet javax.servlet.Servlet GenericServlet HttpServlet Responding to Form Data • FormServlet • getParameter method • Using the POST method Deployment Descriptors • XML files conforming to Sun Microsystems DTD – Describes servlets contained within a Web application Summary Describe the differences between servlets and other Web application technologies Explain the difference between the GET and POST methods of making an HTTP request Create a simple servlet using GET Create a simple servlet using POST Define a simple deployment descriptor Lesson 2: The Servlet Life Cycle Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • • • • • • • Describe the servlet life cycle Create init and destroy methods Retrieve servlet initialization parameters Use the SingleThreadModel interface Retrieve CGI environment variables Retrieve and use the ServletContext object Use temporary files The Multithreaded Model • Servlets typically operate in a multithreaded environment – The Web server usually instantiates only one instance of a servlet to serve all clients • Deployment descriptors and the multithreaded model The Single Thread Model • The Web server guarantees that no two threads will ever operate concurrently on the same servlet instance • To designate servlets to use the single thread model, implement the following interface: – javax.servlet.SingleThreadModel The init and destroy Methods • The init method – Initialization parameters and the deployment descriptor • The destroy method CGI Environment Variables • • • • • • • • • AUTH_TYPE CONTENT_LENGTH CONTENT_TYPE HTTP_ACCEPT HTTP_REFERER HTTP_USER_AGENT PATH_INFO PATH_TRANSLATED QUERY_STRING • • • • • • • • REMOTE_ADDR REMOTE_HOST REMOTE_USER REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PROTOCOL SERVER_PORT The ServletContext • Methods for obtaining server information • Using temporary files Summary Describe the servlet life cycle Create init and destroy methods Retrieve servlet initialization parameters Use the SingleThreadModel interface Retrieve CGI environment variables Retrieve and use the ServletContext object Use temporary files Lesson 3: Responding to a Request Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • • • • • • • Use client-side caching Use client pull to update a client Redirect the client to another URL Use persistent connections Use response status codes Return a file to a client Dynamically generate images Controlling the Client • Using client-side caching • Using client pull • Redirecting the client Persistent Connections public class PersistentConnection extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setBufferSize(32 * 1024); resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); // Generate a response } } Status Codes • Status code constants • sendError method used to set status code Multimedia Content • Returning a file • Dynamically generating images Summary Use client-side caching Use client pull to update a client Redirect the client to another URL Use persistent connections Use response status codes Return a file to a client Dynamically generate images Lesson 4: Servlet Sessions Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Track a session using hidden form fields • Track a session using URL rewriting • Track a session using cookies Hidden Form Fields <INPUT TYPE="HIDDEN" NAME="SID" VALUE="1234567890"> Hidden form field named "SID" with an assigned value of "1234567890" URL Rewriting • Servlets can build URLS that add information in the form of additional path information Cookies • Small pieces of information transmitted from a Web server to a Web browser • Represented in Java using the Cookie class Summary Track a session using hidden form fields Track a session using URL rewriting Track a session using cookies Lesson 5: Authentication and Security Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Authenticate a user using HTTP-based authentication • Authenticate a user using a form • Use Secure Sockets Layer to improve security HTTP-Based Authentication • Users • The deployment descriptor • Servlets and authentication Form Authentication • Requires modification of the deployment descriptor – The login-config element must be modified to indicate that form authentication is to be used and to provide the URL for a login page and login error page Summary Authenticate a user using HTTP-based authentication Authenticate a user using a form Use Secure Sockets Layer to improve security Lesson 6: Inter-Servlet Communication Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Share data with another servlet • Handle a single request using multiple servlets Sharing Data • Data-sharing methods of the ServletContext interface • Sharing data with another ServletContext Dispatching to Another Servlet • The forward method • The include method Summary Share data with another servlet Handle a single request using multiple servlets Lesson 7: Building Enterprise Web Applications Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Use JNDI to look up EJBs, resource factories and environment entries • Write servlets for use in a distributed environment • Use JavaMail to send e-mail Java Servlets and JNDI • Referencing EJBs • Referencing resource factories • Referencing environment entries Clustering and Java Servlets • Clustering styles • Developing distributable servlets JavaMail • Add-on API that creates a full-fledged POP/iMAP client – Session class – getDefaultInstance static method Summary Use JNDI to look up EJBs, resource factories and environment entries Write servlets for use in a distributed environment Use JavaMail to send e-mail Lesson 8: Internationalization Copyright © 2002 ProsoftTraining. All rights reserved. Objectives • Use the Unicode escape sequence to specify special Latin characters • Use alternative character sets to generate a non-Latin character response The Latin Character Set • Non-English Latin characters • Languages and language codes Non-Latin Character Sets • • • • • Arabic Chinese Japanese Korean Russian Summary Use the Unicode escape sequence to specify special Latin characters Use alternative character sets to generate a non-Latin character response Java Servlets Introduction to Java Servlets The Servlet Life Cycle Responding to a Request Servlet Sessions Authentication and Security Inter-Servlet Communication Building Enterprise Web Applications Internationalization