Sun Certified Web Component Developer (SCWCD 5)
Contact Training Program (A Six Days Workshop)

 

Sun Certified Web Component Developer (SCWCD 5) is designed for programmers developing web applications using Servlet and JSP technology. The exam consists of a multiple-choice exam, the prerequisite for which is successful completion of Sun Certified Java Programmer (SCJP) examination.

This training leads the participant towards the preparation for SCWCD 5, an internationally recognized certification from the Sun Microsystems (Oracle). In addition to helping the participants with the requirement of the examination, the workshop also aims to train them to be effective web component developers.
 

A) Learning Objectives

At the end of this course, participants will be able to:

  • Understand Java Servlets, JavaServer Pages, HTTP basics
  • Learn about the Servlet Model, its structure and deployment, and the Servlet container model
  • Learn about filters, Session management
  • Familiarize with web application security
  • Understand JSP technology model and reusable web components
  • Learn about Expression language (EL) and JavaBeans
  • Appreciate JSP pages with custom tag libraries and actions
  • Familiarize themselves with design patterns and J2EE patterns

B) Highlights of Course Delivery

  • The contact workshop is a mix of instructor lead and self paced learning.
  • Each section has definitions, examples, exercises and memory joggers to facilitate the learning and application of the contents.
  • Subsequent to the presentation and sample application as per the requirements of each chapter, a quiz on the topic covered is administered.
  • The training is followed by a mock test having 200 hand picked questions to check the understanding of the participants.
Note: The contents of this course will be covered in 6 days in an extended time schedule
 

C) Course Contents

Topic Ref. Sun’s Objectives for SCWCD 5
Day 1 of 6 (4 hrs session) 
Introduction
  • Getting to know the participants
  • Introduction to SCWCD 5
  • SCWCD 5 Certification – advantages
  • SCWCD 5 certification – process and fees related information
  • SCWCD 5 examination – information on the split of questions, question pattern
  • SCWCD 5 examination – Tips on how to prepare and take the examination (this theme will be reiterated throughout the course)
  • Familiarization with course outline
  • Familiarization with the protocols and timings
  • Expectation setting and clarifications
  • Introductory Quiz – to assess the current level of familiarization of the participants with SCWCD 5 concepts and assess the gaps.
Servlets
  • For each of the HTTP Methods (such as GET, POST, HEAD, and so on):
  • Describe benefits of the HTTP Method.
  • Describe functionality of the HTTP Method.
  • List triggers that might cause a Client (usually a Web browser) to use the method.
Request & Response
  • For each of the HTTP Methods (such as GET, POST, HEAD, and so on), describe the purpose of the method and the technical characteristics of the HTTP Method protocol, list triggers that might cause a client (usually a Web browser) to use the Method, and identify the HttpServlet method that corresponds to the HTTP Method.
  • Using the HttpServletRequest interface, write code to retrieve HTML form parameters from the request, retrieve HTTP request header information, or retrieve cookies from the request.
  • Using the HttpServletResponse interface, write code to set an HTTP response header, set the content type of the response, acquire a text stream for the response, acquire a binary stream for the response, redirect an HTTP request to another URL.
  • Describe the purpose and event sequence of the servlet lifecycle: (1) servlet class loading, (2) servlet instantiation, (3) call the init() method, (4) call the service() method, and (5) call the destroy() method.
Day 2 of 6 (4 hrs session) 
Attributes & Listeners
  • For the servlet and ServletContext initialization parameters: write servlet code to access initialization parameters, and create deployment descriptor elements for declaring initialization parameters.
  • For the fundamental servlet attribute scopes (request, session, and context): write servlet code to add, retrieve, and remove attributes; given a usage scenario, identify the proper scope for an attribute; and identify multi-threading issues associated with each scope.
  • Describe the Web Container lifecycle event model for requests, sessions, and web applications; create and configure listener classes for each scope life cycle; create and configure scope attribute listener classes; and given a scenario, identify the proper attribute listener to use.
  • Describe the RequestDispatcher mechanism; write servlet code to create a request dispatcher; write servlet code to forward or include the target resource; and identify the additional request-scoped attributes provided by the container to the target resource.
Session Management
  • Write servlet code to store objects into a session object and retrieve objects from a session object.
  • Given a scenario describe the APIs used to access the session object, explain when the session object was created, and describe the mechanisms used to destroy the session object, and when it was destroyed.
  • Using session listeners, write code to respond to an event when an object is added to a session, and write code to respond to an event when a session object migrates from one VM to another.
  • Given a scenario, describe which session management mechanism the Web container could employ, how cookies might be used to manage sessions, how URL rewriting might be used to manage sessions, and write servlet code to perform URL rewriting.
Day 3 of 6 (4 hrs session) 
Jsp
  • Identify, describe, or write JSP code for the following elements: (a) template text, (b) scripting elements (comments, directives, declarations, scriptlets, and expressions), (c) standard and custom actions, and (d) expression language elements.
  • Write JSP code that uses the directives: (a) page (with attributes import, session, contentType, and isELIgnored), (b) include, and (c) taglib.
  • Describe the purpose and event sequence of the JSP page lifecycle: (1) JSP page translation, (2) JSP page compilation, (3) load class, (4) create instance, (5) call the jspInit method, (6) call the _jspService method, and (7) call the jspDestroy method.
  • Given a design goal, write JSP code using the appropriate implicit objects: (a) request, (b) response, (c) out, (d) session, (e) config, (f) application, (g) page, (h) pageContext, and (i) exception.
  • Configure the deployment descriptor to declare one or more tag libraries, deactivate the evaluation language, and deactivate the scripting language.
Scriptless Jsp
  • Write a code snippet using top-level variables in the EL. This includes the following implicit variables: pageScope, requestScope, sessionScope, and applicationScope; param and paramValues; header and headerValues; cookies; and initParam.
  • Write a code snippet using the following EL operators: property access (the . operator), collection access (the [] operator).
  • Write a code snippet using the following EL operators: aritmetic operators, relational operators, and logical operators.
  • For EL functions: Write a code snippet using an EL function; identify or create the TLD file structure used to declare an EL function; and identify or create a code example to define an EL function.
  • Given a design goal, create a code snippet using the following standard actions: jsp:useBean (with attributes: 'id', 'scope', 'type', and 'class'), jsp:getProperty, and jsp:setProperty (with all attribute combinations).
  • Given a design goal, create a code snippet using the following standard actions: jsp:include, jsp:forward, and jsp:param.
  • Given a specific design goal for including a JSP segment in another page, write the JSP code that uses the most appropriate inclusion mechanism (the include directive or the standard action).
Day 4 of 6 (4 hrs session) 
Jstl
  • Describe the syntax and semantics of the 'taglib' directive: for a standard tag library, for a library of Tag Files.
  • Given a design goal, create the custom tag structure to support that goal.
  • Identify the tag syntax and describe the action semantics of the following JSP Standard Tag Library (JSTL v1.1) tags: (a) core tags: out, set, remove, and catch, (b) conditional tags: if, choose, when, and otherwise, (c) iteration tags: forEach, and (d) URL-related: url.
Custom Tag Development
  • Describe the semantics of the "Classic" custom tag event model when each event method (doStartTag(), doAfterBody(), and doEndTag()) is executed, and explain what the return value for each event method means; and write a tag handler class.
  • Using the PageContext API, write tag handler code to access the JSP implicit variables and access web application attributes.
  • Given a scenario,write tag handler code to access the parent tag and an arbitrary tag ancestor.
  • Describe the semantics of the "Simple" custom tag event model when the event method (doTag())is executed; write a tag handler class; and explain the constraints on the JSP content within the tag.
  • Describe the semantics of the Tag File model; describe the web application structure for tag files; write a tag file; and explain the constraints on the JSP content in the body of the tag.
Day 5 of 6 (4 hrs session) 
Web Application Security
  • Based on the servlet specification, compare and contrast the following security issues: (a) authentication, (b) authorization, (c) data integrity, and (d) confidentiality.
  • In the deployment descriptor, declare the following: a security constraint, a Web resource, the transport guarantee, the login configuration, and a security role.
  • Given an authentication type (BASIC, DIGEST, FORM, and CLIENT-CERT), describe its mechanism.
Wrappers & Filters
  • Describe the Web Container request processing model; write and configure a filter; create a request or response wrapper; and given a design problem, describe how to apply a filter or wrapper.
  • Given a scenario description with a list of issues, select a pattern that would solve the issues. The list of patterns you must know are: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate, and Transfer Object.
  • Match design patterns with statements describing potential benefits that accrue from the use of the pattern, for any of the following patterns: Intercepting Filter, Model-View-Controller, Service Locator, Business Delegate, and Transfer Object.
Day 6 of 6 (4 hrs session) 
Design Patterns
  • Given a scenario description with a list of issues, select the one of the following patterns that would solve those issues: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate, and Transfer Object.
Match design
  • patterns with statements describing potential benefits that accrue from the use of the pattern, for any of the following patterns: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate, and Transfer Object.
Web App Architecture & Deployment
  • Construct the file and directory structure of a Web Application that may contain (a) static content, (b) JSP pages, (c) servlet classes, (d) the deployment descriptor, (e) tag libraries, (f) JAR files, and (g) Java class files; and describe how to protect resource files from HTTP access.
Describe the purpose and semantics
  • for each of the following deployment descriptor elements: servlet instance, servlet name, servlet class, servlet initialization parameters, and URL to named servlet mapping.
  • Construct the correct structure for each of the following deployment descriptor elements: error-page, init-param, mime-mapping, servlet, servlet-class, servlet-name, and welcome-file.
  • Explain the purpose of a WAR file and describe the contents of a WAR file and how one may be constructed.
  • Write a JSP Document (XML-based syntax) that uses the correct syntax.
 
Note: Within the above structure, the day-wise contents could get suitably modified to give the best learning experience for the participants.