About Advanced Java

The course builds a strong understanding of JDBC Technology. It gives in to demonstrate why Servlets are the cornerstone of Java’s Web platform. It then shows how JSP is built on the Servlet architecture. Additionally, the class shows students how to use JSTL, custom tags and expression language to reduce Java code in Web pages while adding tremendous power and capability to those pages. The class culminates in an exploration of Java MVC frameworks like Struts at a high level.

This is not a class that focuses on theory. Participants will find the course is loaded with practical labs and simulations. After taking this class, developers will be able to build Web applications that perform well, are scalable, and that are easier to maintain.

Prerequisite

Basic Knowledge of Core Java is required. An understanding of Web technologies like HTML and HTTP is helpful.

Objective

Learn the fundamentals of JDBC and using the different interfaces in the JDBC API. Learn how to use Java servlets in the role of Web application control. Identify the options to state management in a Java Web application and understand the pros/cons of each. Understand how JSPs can help to separate Web logic and functionality from page layout. Explore how to make JSPs smaller and more powerful with JSTL, custom tags and expression language. Explore strategies in the exchange of data between Web pages (views) and business processing (model). Learn the meaning and importance of MVC

Course Content

Introduction

  • About Java Platforms
  • Applications of Java
  • About API (Application Programming Interface)
  • Static Blocks
  • Introduction to interfaces
  • Runtime Polymorphism

Persistence

  • What is Persistence?
  • File management system
  • Disadvantages of File management system
  • Database management system
  • Advantages of Database management system

JDBC

  • Introduction to JDBC
  • Why JDBC? & ODBC Vs JDBC
  • Approch-1 Vendor specific library
  • Disadvantages
  • Approch-2 X/Open standards
  • Disadvantages
  • Approch-3 ODBC standards
  • Disadvantages
  • Approch-4 JDBC standards
  • Advantages

JDBC API and JDBC Drivers

  • About JDBC API
  • What is a JDBC Driver?
  • JDBC architecture
  • Types of JDBC Drivers
  • JDBC-ODBC bridge driver
  • Advantages & Disadvantages
  • Native API Partly Java Driver
  • Advantages & Disadvantages
  • Net-Protocol all/pure java driver
  • Advantages & Disadvantages
  • Native-Protocol pure java driver
  • Advantages

JDBC API

  • JDBC Packages
  • sql, Javax.sql
  • Interfaces and classes in above packages
  • Versions of JDBC API
  • Steps for developing JDBC application

SQL

  • Introduction to SQL
  • Types of SQL queries

Establishing Connection to Database

  • About DriverManager class
  • Methods of DriverManager
  • What is registering driver with DriverManager
  • Different methods of registering driver with DriverManager
  • About getConnection method of DriverManager
  • Syntax of URL to communicate with database
  • Autoloading of class driver in JDBC 4.0
  • Example with Application

Statement interface

  • What is Statement? & Need of Statement
  • Characteristics of Statement
  • How to get Statement object?
  • Methods of Statement
  • Passing SQL statements to Database
  • About execute, executeUpdate, executeQuery, largeExecute Updates methods
  • Example with Application

PreparedStatement interface

  • What is PreparedStatement?
  • Need of PreparedStatement
  • Difference between Statement and PreparedStatement
  • How to get PreparedStaement object
  • Defining parameters
  • How to pass values to PerparedStatement object
  • What is SQL Injection attack & how to overcome
  • Example with Application

Resultset Interface

  • What is ResultSet?,
  • Need of ResultSet
  • How to get resultset object
  • Methods of ResultSet
  • Reading data, Various types of ResultSet
  • Resultset types
  • TYPE_SCROLL_SENSITIVE
  • TYPE_SCROLL_INSENSITIVE
  • TYPE_FORWARD_ONLY
  • Resultset modes
  • CONCUR_READ_ONLY, CONCUR_UPDATABLE
  • Example with Application

SQL 99 Datatypes

  • BLOB
  • Inserting blob type, Reading blob type
  • CLOB
  • Inserting clob type, Reading clob type
  • Array, Inserting array type
  • Reading array type
  • Object, Inserting object
  • Reading object
  • Example with Application

Metadata

  • Resultset Metadata
  • Need of ResultsetMetaData
  • How to get metadata
  • DatabaseMetadata
  • How to get database metadata
  • Parameterizedmetadata
  • How to get parameterizedmetadata
  • Example with Application

CallableStatement

  • About CallableStatement
  • Advantage of CallableStatement
  • Creating CallableStatement object
  • Calling Procedure using CallableStatement
  • Calling functions using Callable Statement
  • About PL/SQL Programming vs Manual on Batch Queries

Batch updates

  • What is batch processing
  • Batch updates using Statement object
  • Batch updates using PreparedStatement object

Transaction Management

  • Transaction Definition
  • ACID Properties
  • Atomicity, Consistency,Isolation, Durability
  • Methods in Transaction Management
  • setAutoCommit(), setSavePoint()
  • commit(), rollback()
  • Example with All Application

Connection Pooling

  • What is connection pooling?
  • Advantages of connection pooling
  • Disadvantage of DriverManager
  • About DataSource
  • JDBC connection pooling
  • Isolation Levels
  • Example with Application

RowSet

  • What is RowSet?
  • What is difference between ResultSet and RowSet
  • Types of RowSets
  • JdbcRowSet
  • CachedRowSet
  • WebRowSet
  • Example with Application

Communicating with difference databases

  • Communicating with MYSQL
  • Working with CSV files
  • Communicating with MS-EXCEL
  • Communicating with PostgreSql
  • Example with Application 

JDBC 4.0 Features

  • Auto-loading of JDBC driver class
  • Connection management enhancements
  • Support for RowIdSQL type
  • DataSet implementation of SQL using Annotations
  • SQL exception handling enhancements
  • SQL XML support
  • Example with Application

 Working With Properties File

  • Working With Date Values
  • Procedure To Create Desktop icon (jar file execution)

SERVLET

JEE

  • JEE technology
  • Components of JEE technology
  • What is Enterprises Application
  • What is Web Application
  • Types of Web Application
  • Presentation Oriented Web Application
  • Service Oriented Web Application
  • About Web Client, About WebServer
  • About ApplicationServer
  • Diff Between WebServer And Application Server

Introduction

  • Server side technologies
  • Need of server side technologies
  • Client side technologies
  • What is Servlet? & Advantages of Servlet
  • Difference between CGI and Servlet

Servlet API

  • Versions of Servlet API
  • Packages of Servlet API
  • About Servlet Container
  • Responsibilities of Servlet Container 

HTTP Protocol

  • What is HTTP?
  • What is HTTP Request format & Response format

Developing Servlet

  • Servlet interface
  • Methods of Servlet interface
  • Developing servlet by implementing Servlet interface
  • Life cycle methods of Servlet
  • Webapplication directory structure
  • Deployment descriptor file (web.xml)
  • What is deployment?
  • Types of deployments
  • Deployment, Console deployment
  • Tool deployment
  • Deployment webapplication in tomcat server
  • URL patterns

Developing And Deploying Servlet Apps in Diff Servers Like

  • Tomcat Server
  • JBoss Server / WildFly
  • Weblogic Server
  • GlassFish

ServletRequest

  • Methods of ServletRequest
  • About request parameters
  • About request headers

ServletResponse

  • Methods of ServletResponse
  • MIME types
  • Generating response

ServletConfig

  • What is ServletConfig?
  • What is need of ServletConfig
  • Methods of ServletConfig
  • Different ways of getting ServletConfig object.
  • Defining config initial parameters in web.xml

GenericServlet

  • What is GenericServlet?
  • Methods of GenericServlet
  • About init(ServletConfig),init() method

Working with welcome-file

  • Configuring welcome-file in web.xml

Methods of loading Servlet

  • About load on start up
  • When client send first request

ServletContext

  • What is ServletContext?, Need of ServletContext
  • Methods of ServletContext
  • Different ways of getting ServletContext object
  • Context init parameters
  • Defining Context init parameters in web.xml

HttpServlet

  • What is HttpServlet?
  • Methods of HttpServlet
  • HTTP Request methods
  • About public service and protected service methods
  • About doXXX() methods
  • Difference between GenericServlet and HttpServlet
  • Diff Between doGet(-,-) and doPost(-,-) methods

HttpServletRequest

  • HttpServletRequest VS ServletRequest
  • How to read request parameters of HttpServletRequest
  • How to read request headers of HttpServletRequest

HttpServletResponse

  • HttpServletResponse VS ServletResponse
  • About HttpServletResponse methods
  • Response status codes

Html To Servlet Communication

Form Validations

Different Types of Form Components

Working With Multiple Hyperlinks

Working With Multiple Submit Buttons

War File Creation

Servlet To DataBase Software Communication

RequestDispatching

  • What is RequestDispatcher?
  • What is need of RequestDispatcher?
  • RequestDispatching methods
  • Include
  • Forward
  • Difference between include and forward methods
  • Getting RequestDispatcher
  • Using ServletRequest
  • UsingServletContext
  • Difference between getting RequestDispatcher using ServletRequest and ServletContext
  • What is Servlet Collaboration? 

Redirecting

  • About sendRedirect method
  • Difference between sendRedirect and forward methods
  • setStatus, response.setHeader methods

Attributes

  • What is Attribute
  • Difference between parameter and attribute
  • Scope of Attributes
  • Request scope, Context scope
  • Session scope
  • Adding, removing and modifying attributes

Thread Saftey In Servlet Programming

State and Session Management

  • About connectionless protocol
  • About connection oriented protocol
  • Stateless protocol
  • What is state/session management
  • Need of session management
  • Session management methods
  • URL rewriting, Hidden form fields
  • Cookies, HttpSession

URL Rewriting

  • What is URL rewriting
  • URL rewriting techniques
  • Disadvantages of URL rewriting

Hidden form fields

  • What is hidden form fields
  • Disadvantages of hidden form fields

Cookies

  • What is Cookie,
  • How to create Cookie
  • Methods of Cookie
  • Types of Cookies
  • Non Persistent Cookie
  • Persistent Cookie
  • How to add cookie to response
  • How to read cookie from request
  • Deleting cookie from servlet
  • Properties of Cookie
  • Disadvantages of Cookies

HttpSession

  • What is HttpSession
  • Advantage of HttpSession
  • How to create HttpSession object
  • How to read HttpSession object from request
  • Invalidating HttpSession
  • Using invalidate method
  • Using session config in web.xml
  • By setting time
  • HttpSession attribute

Error Handling in Servlet

  • Configuring in web.xml
  • Programmatically

Filters

  • What is Filter?
  • Need of Filter & Lifecycle of Filter
  • Filter mapping in web.xml
  • About FilterConfig
  • Defining config parameters in web.xml
  • About FilterChain interface
  • Methods of FilterChain
  • What is Filter chaining?
  • Working with filter chaining

Listeners

  • What is Listener?
  • Usage of Listener
  • About Event Delegation Model Architecture
  • Types of Listeners
  • RequestListener
  • ServletContextListener
  • HttpSessionListener
  • Types of Attribute Listener
  • Request AttributeListener
  • HttpSessionAttributeListener
  • ServletContextAttributeListener
  • About Event classes

Authentication and Authorization(Security In Servlet Programming)

  • Understanding Authentication Mechanism
  • HTTP basic authentication
  • HTTP Digest authentication
  • HTTPS Client authentication
  • HTTP form based authentication

Working Connection Pooling

  • Connection pooling in difference servers
  • Tomcat, Weblogic, Glassfish
  • JBoss Server / WildFly
  • Developing servlet using serverside connection pooling

Working with domains

  • Creating domain in weblogic server
  • Deploying webapplication using console
  • Creating domain in glassfish server
  • Deploying webapplication using console

Working with Servlet 2.5/3.0/3.1 features

  • Async Servlet
  • File Uploading and Downloading
  • Non-blocking I/O
  • HTTP protocol upgrade mechanism
  • Different Types Of URL Patterns
  • Dynamic Registration Of Servlet (Developing Servlet Program Without web.xml)

Annotations in Servlet Programming

  • Introduction to Annotations
  • Types of Annotations
  • Annotations Vs web.xml 

JSP

Introduction

  • What is JSP?
  • Advantages of JSP & Applications of JSP
  • Difference between JSP & Servlet

JSP Basics

  • JSP Life cycle, JSP Lifecycle methods
  • jspInit, _jspService
  • jspDestroy, Saving jsp file as a,
  • Public resource, Private resouse
  • JSP tags

JSP Tags

  • three categories of tags
  • scripting elements, directives
  • standard actions

Scripting Elements

  • What is scripting elements
  • Types of scripting elements
  • Declaration tag
  • Expression tag
  • Scriptlet

JSP implicit object

  • What is jsp implicit objects
  • Need of jsp implicit objects
  • Implicit objects of jsp
  • Request, Response, Page
  • pageContext, out, session
  • exception, application, config

Directives

  • What is directive?
  • Types of directives
  • Page directive, Include directive
  • Taglib directive

Standard Actions

  • What is standard action
  • Standard actions
  • <jsp:include>
  • <jsp:forward>
  • <jsp:param>
  • <jsp:useBean>
  • <jsp:setProperty>
  • <jsp:getProperty>
  • Working with <jsp:include>
  • Difference between <jsp:include> and <%@include> directive
  • Working with <jsp:forward>

Java Bean

  • What is java bean?
  • Usage of bean
  • Properties of bean

Using Java Bean in JSP

  • About <jsp:useBean>
  • Attributes of <jsp:useBean>
  • Working with scope of bean object
  • Using bean with <jsp:include> and <jsp:forward>
  • Assigning values to bean using <jsp:setProperty>
  • Reading values from bean using <jsp:getProperty>

Expression Language

  • What is Expression Language
  • Advantage of Expression Language
  • Syntax of defining expression
  • Basic Operators in EL
  • Implicit objects In EL
  • pageScope, requestScope
  • sessionScope, applicationScope
  • param, paramValues, header
  • headerValues, initParam, cookie
  • pageContext, Defining functions

Working JSTL

  • What is JSTL?, Version of JSTL
  • Classification of JSTL tags
  • Core tags, Formatting tags
  • SQL Tags, XML tags
  • JSTL Functions
  • How to use JSTL in webapplication
  • Working with Core tags, Formatting tags & SQL tags
  • Working JSTL functions

Custom Tags

  • What is tag?, Java based tag
  • Components of tag library
  • The Tag Handler Class
  • The Tag Library Descriptor File
  • Imports a tag library (referencing URL of descriptor file)
  • Defines tag prefix
  • Uses tags, About tag handler
  • Tag interface, SimpleTag
  • TagSupport, BodyTagSupport
  • SimpleTagSupport
  • Developing tag using SimpleTagSupport class
  • Lifecycle of custom tag
  • Tag hander class with attributes
  • Developing tag with body

MVC Architecture

  • MVC Design pattern
  • MVC-1 Page Centric
  • Advantages & Disadvantages
  • MVC-2

Developing Project using MVC

  • Integrating JDBC , Servlets  And JSP