<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-670204724030310473</id><updated>2025-10-22T12:28:33.031+05:30</updated><category term="OAF"/><category term="Java"/><category term="Oracle MSCA/MWA Framework"/><category term="Oracle Database 11g"/><category term="Web Design"/><category term="Design Patterns"/><category term="JAVASCRIPT"/><category term="JSON"/><category term="Key Internet Terms"/><category term="Oracle Fusion Applications"/><title type='text'>Learn Oracle Applications With Me</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-540457287150791752</id><published>2015-07-20T13:25:00.004+05:30</published><updated>2015-07-20T19:52:01.149+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle MSCA/MWA Framework"/><title type='text'>MSCA/MWA Framework - Custom Development and Extension - Part 2</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;
&lt;h3&gt;
Technical Overview of MSCA/MWA Framework Continues...&lt;/h3&gt;
&lt;br /&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
Event Listener Model&lt;/h3&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;MWAEvent&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Event object passed to the listener methods in the handlers at the field, page, or app level.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public class &lt;b&gt;MWAEvent &lt;/b&gt;extends java.util.&lt;b&gt;EventObject&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Frequently used properties&amp;nbsp;and their getters and setters&amp;nbsp;inherited from&amp;nbsp;&lt;code&gt;&lt;b&gt;EventObject&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public Object&amp;nbsp;&lt;b&gt;getSource&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public String&amp;nbsp;&lt;b&gt;toString&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Stores&amp;nbsp;&lt;code&gt;&lt;b&gt;action&lt;/b&gt;&lt;/code&gt;&amp;nbsp;property (&lt;code&gt;private java.lang.String m_action&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String &lt;b&gt;getAction&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Stores&amp;nbsp;&lt;code&gt;&lt;b&gt;session&lt;/b&gt;&lt;/code&gt;&amp;nbsp;property (&lt;code&gt;private oracle.apps.mwa.container.Session m_session&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public Session &lt;b&gt;getSession&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;MWAEvent Listeners:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Listeners are utilised for validations, dynamic rendering of the fields, update the values etc. Following are the key Listeners:&lt;/div&gt;
&lt;ol&gt;
&lt;li value=&quot;1&quot;&gt;&lt;code&gt;oracle.apps.mwa.eventmodel.&lt;/code&gt;&lt;b&gt;MWAListener&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Parent class for all MWA Listeners.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public interface &lt;b&gt;MWAListener &lt;/b&gt;extends java.util.&lt;b&gt;EventListener&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Direct subinterfaces -&amp;nbsp;&lt;code&gt;MWAAppListener, MWAPageListener,&amp;nbsp;&lt;/code&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;MWAFieldListener&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;We don&#39;t implement this interface directly.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li value=&quot;2&quot;&gt;&lt;code&gt;oracle.apps.mwa.eventmodel.&lt;/code&gt;&lt;b&gt;MWAAppListener&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Application Level Event Listener&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;interface&amp;nbsp;&lt;b&gt;MWAAppListener&amp;nbsp;&lt;/b&gt;extends MWAListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Methods -&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;appEntered&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;appExited&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;This interface is&amp;amp; typically implemented by our custom application&#39;s menu item bean.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;li value=&quot;3&quot;&gt;&lt;code&gt;oracle.apps.mwa.eventmodel.&lt;/code&gt;&lt;b&gt;MWAPageListener&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Page Level Event Listener&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public interface&amp;nbsp;&lt;b&gt;MWAPageListener&amp;nbsp;&lt;/b&gt;extends MWAListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Methods -&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;pageEntered&amp;nbsp;(MWAEvent&amp;nbsp;e)&amp;nbsp;&lt;/b&gt;throws&amp;nbsp;&lt;b&gt;AbortHandlerException,&amp;nbsp;InterruptedHandlerException,&amp;nbsp;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;pageExited&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;specialKeyPressed&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Ex. Generating Barcodes, Navigating to Main menu etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;This interface is typically implemented by our custom application&#39;s page bean.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;li value=&quot;4&quot;&gt;&lt;code&gt;oracle.apps.mwa.eventmodel.&lt;/code&gt;&lt;b&gt;MWAFieldListener&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Field Level Event Listener&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public interface&amp;nbsp;&lt;b&gt;&lt;pre style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;MWAFieldListener&lt;/b&gt;&lt;/pre&gt;
&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;extends MWAListener&lt;/li&gt;
&lt;li&gt;Methods -&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;fieldEntered&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;void&amp;nbsp;&lt;b&gt;fieldExited&lt;/b&gt;(&lt;b&gt;MWAEvent&lt;/b&gt;&amp;nbsp;e)&amp;nbsp;throws&amp;nbsp;&lt;b&gt;AbortHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;InterruptedHandlerException&lt;/b&gt;,&amp;nbsp;&lt;b&gt;DefaultOnlyHandlerException&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Probably most important class in terms of the custom code that we need to write in this.&lt;/li&gt;
&lt;li&gt;This interface is typically implemented in a standalone class.&lt;/li&gt;
&lt;li&gt;The standalone field listener class is instantiated and referenced inside page bean, where we associate it with every field on the page.&lt;/li&gt;
&lt;li&gt;Field Listener will typically have a constructor where session is passed from page and stored in a class variable.&lt;/li&gt;
&lt;li&gt;Following are few important code snippet typically used in this field listeners:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To get the source of the event:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;String&amp;nbsp;fieldName&amp;nbsp;=&amp;nbsp;((FieldBean)mwaEvent.getSource()).getName();&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To check if it is a submit event:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;if (mwaEvent.getAction().equals(&quot;MWA_SUBMIT&quot;))&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To get the current page details&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session.getCurrentPage();&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To show message in status bar:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;this.ses.setStatusMessage(&quot;Qty Should be &amp;gt;&amp;nbsp;0&quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;this.ses.setStatusMessage(&quot;Trx Successful&quot;);&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To set next field for user entry:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session.setNextFieldName();&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To refresh the screen:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session.setRefreshScreen();&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To throw exceptions:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;throw&amp;nbsp;new&amp;nbsp;AbortHandlerException(&quot;Qty&amp;nbsp;Should&amp;nbsp;be&amp;nbsp;&amp;gt;&amp;nbsp;0&quot;);&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To signal end of transaction&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;setNextPageName(&quot;|END_OF_TRANSACTION|&quot;)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Most of the above code is from session, we&#39;ll see session details in coming section.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;h4 style=&quot;clear: both;&quot;&gt;
&lt;/h4&gt;
&lt;h4 style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;
&lt;/h4&gt;
&lt;h4 style=&quot;clear: both;&quot;&gt;
Other Important Classes - MWA Session Classes&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;oracle.apps.mwa.container.&lt;/code&gt;&lt;b&gt;Session&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;Session&lt;/b&gt;&amp;nbsp;extends oracle.apps.mwa.container.&lt;b&gt;BaseSession&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;BaseSession is base class for user session and telnet session.&lt;/li&gt;
&lt;li&gt;Key methods inherited from BaseSession&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public java.sql.Connection &lt;b&gt;getConnection&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public java.sql.Connection &lt;b&gt;getConnectionFromSession&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void &lt;b&gt;returnConnection&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String &lt;b&gt;getCurrentPageName&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Key methods in Session class&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public &lt;b&gt;PageBean getCurrentPage&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Returns the current page bean in the page bean list&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;public void &lt;b&gt;setStatusMessage&lt;/b&gt;(java.lang.String msg)&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Displays the argument string on the status bar.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String &lt;b&gt;getStatusMessage&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void &lt;b&gt;setRefreshScreen&lt;/b&gt;(boolean RefreshScreenFlag)&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This method set the refresh screen variable Whenever developer change the UI property of the page, e.g. hidden, value, creation of new field, etc, he/she needs to call this method with parameter true so that server will know and refresh the screen&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;public boolean &lt;b&gt;isRefreshScreen&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public FieldBean &lt;b&gt;getFieldFromCurrentPage&lt;/b&gt;(java.lang.String fieldName)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void &lt;b&gt;setNextFieldName&lt;/b&gt;(java.lang.String fName)&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To set the cursor to some other field.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String &lt;b&gt;getNextFieldName&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public Logger &lt;b&gt;getLogger&lt;/b&gt;()&lt;/code&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
Application Flow&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8AgA-SusSzQNt_0uxFNZVEgwJELQJdD_u4hmV8o0oX1PLSrA1dC9bnz8pD49ok5zR7Z1pg1aAGJMb5yJp8OWxcAap0C10SpTsmLyP6EoSUIScstAJLOJaD9evCOrvT0JElrPXs3rFf4/s1600/MWA+Application+Flow.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;139&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8AgA-SusSzQNt_0uxFNZVEgwJELQJdD_u4hmV8o0oX1PLSrA1dC9bnz8pD49ok5zR7Z1pg1aAGJMb5yJp8OWxcAap0C10SpTsmLyP6EoSUIScstAJLOJaD9evCOrvT0JElrPXs3rFf4/s640/MWA+Application+Flow.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
Coding Hints:&lt;/h3&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
A. Ctrl + X shortcut key for About This Page is a good start for customizing existing functionality.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
B. &lt;u&gt;We typically create following 4 files:&lt;/u&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;XXABCTransact&lt;b&gt;Function&lt;/b&gt;.java&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;class&amp;nbsp;XXABCTransact&lt;b&gt;Function&amp;nbsp;&lt;/b&gt;extends&amp;nbsp;&lt;b&gt;MenuItemBean&amp;nbsp;&lt;/b&gt;implements&amp;nbsp;&lt;b&gt;MWAAppListener&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;With following two lines in constructor:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;setFirstPageName(&quot;xxabc.oracle.apps.xxabc.applpkg.module.server.XXABCTransact&lt;b&gt;Page&lt;/b&gt;&quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;addListener(this);&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;It&#39;ll have&amp;nbsp;&lt;code&gt;&lt;b&gt;appEntered()&amp;nbsp;&lt;/b&gt;&lt;/code&gt;and&amp;nbsp;&lt;code&gt;&lt;b&gt;appExited()&lt;/b&gt;&lt;/code&gt;&amp;nbsp;methods.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;XXABCTransact&lt;b&gt;Page&lt;/b&gt;.java&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;class&amp;nbsp;XXABCTransact&lt;b&gt;Page&amp;nbsp;&lt;/b&gt;extends&amp;nbsp;&lt;b&gt;PageBean&amp;nbsp;&lt;/b&gt;implements&amp;nbsp;&lt;b&gt;MWAPageListener&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Typically it&#39;ll have following&amp;nbsp;Member variables:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;For all field beans&lt;/li&gt;
&lt;li&gt;For session&lt;/li&gt;
&lt;li&gt;For FieldListener for all fields&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Constructor will initialize FieldListener bean (Explained Next)&lt;/li&gt;
&lt;li&gt;Constructor will initialize all fields, associate field listener and add them to page hierarchy.&lt;/li&gt;
&lt;li&gt;It&#39;ll have&amp;nbsp;&lt;code&gt;&lt;b&gt;pageEntered(),&amp;nbsp;&lt;b&gt;&lt;b&gt;pageExited&lt;/b&gt;()&lt;/b&gt;&amp;nbsp;&lt;/b&gt;&lt;/code&gt;and&amp;nbsp;&lt;code&gt;&lt;b&gt;specialKeyPressed()&lt;/b&gt;&lt;/code&gt;&amp;nbsp;methods.&lt;/li&gt;
&lt;li&gt;It&#39;ll have methods for business transactions typically calling PLSQL procedures.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;XXABCTransact&lt;b&gt;FListener&lt;/b&gt;.java&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;class&amp;nbsp;XXABCTransact&lt;b&gt;&lt;b&gt;FListener&lt;/b&gt;&amp;nbsp;&lt;/b&gt;implements&amp;nbsp;&lt;b&gt;MWAFieldListener&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Typically it&#39;ll have following&amp;nbsp;Member variables:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;session&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Paramterized Constructor with session variable will initialize member session variable.&lt;/li&gt;
&lt;li&gt;Rarely we need to write code in&amp;nbsp;&lt;code&gt;fieldEntered()&lt;/code&gt;&amp;nbsp;method.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FieldExited()&amp;nbsp;&lt;/code&gt;will have bulk of the coding based on current page and field exited:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;String fieldName = ((FieldBean)mwaEvent.getSource()).getName();&lt;/code&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To identify the field exited.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;this.ses.getCurrentPage();&lt;/code&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To identify the current page&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;For transaction logic, it&#39;ll have a call to the pageBean&#39;s transaction method.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;XXABCField&lt;b&gt;LOV&lt;/b&gt;.java&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;class&amp;nbsp;XXABCField&lt;b&gt;LOV&amp;nbsp;&lt;/b&gt;extends&amp;nbsp;&lt;b&gt;LOVFieldBean&amp;nbsp;&lt;/b&gt;implements&amp;nbsp;&lt;b&gt;MWAFieldListener&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Since LOVs are shared components, for easy of use/reuse we usually create them as separate Java files.&lt;/li&gt;
&lt;li&gt;It&#39;ll have member variables, their getters and setters for the return values of the selected LOV record.&lt;/li&gt;
&lt;li&gt;It&#39;ll have constructor will following api calls:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;setName(),&amp;nbsp;setRequired(),&amp;nbsp;setPrompt(),&amp;nbsp;setValidateFromLOV(),&amp;nbsp;setlovStatement(),&amp;nbsp;setInputParameterTypes(),&amp;nbsp;setSubfieldPrompts(),&amp;nbsp;setSubfieldDisplays(),&amp;nbsp;addListener(this).&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;It&#39;ll have&amp;nbsp;&lt;code&gt;fieldEntered()&lt;/code&gt;&amp;nbsp;method (usually empty).&lt;/li&gt;
&lt;li&gt;It&#39;ll have&amp;nbsp;&lt;code&gt;fieldExited()&lt;/code&gt;&amp;nbsp;method (usually we set all the return values from selected LOV record to member variables).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
Sample Code for all Files:&lt;/h3&gt;
&lt;div&gt;
Standard Oracle MWA code provides good insight in how to write code. If still any help is needed, please reach me.&lt;/div&gt;
&lt;h3 style=&quot;clear: both;&quot;&gt;
Steps to test the code:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Deploy it on the server.&lt;/li&gt;
&lt;li&gt;Restart the server.&lt;/li&gt;
&lt;li&gt;Testing on desktop telnet client.&lt;/li&gt;
&lt;li&gt;View the log for debugging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Debugging:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Steps to enable logging are in&amp;nbsp;document 338291.1&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Log files are located in $INST_TOP/logs&lt;/li&gt;
&lt;li&gt;Logging Levels are Fatal, Error, Warning, Debug and Trace.&lt;/li&gt;
&lt;li&gt;All Log files start with telnet port number as prefix.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In java code following method is used to write log statement:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;oracle.apps.inv.utilities.server.UtilFns.trace()&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In java code to check&amp;nbsp;if trace is enabled:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;if (UtilFns.isTraceOn)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In PLSQL, following code will be used&lt;/li&gt;
&lt;li&gt;Use Mirroring&lt;/li&gt;
&lt;li&gt;Check Mobile Services are up and Runing:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;ps -ef |grep mwa&lt;/li&gt;
&lt;li&gt;./ $INST_TOP/admin/scripts/mwactl.sh status&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Check MWA user sessions&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;netstat -a |grep &amp;lt;MWA PORT&amp;gt; | wc -l&lt;/li&gt;
&lt;li&gt;netstat -an | grep &amp;lt;MWA PORT&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Find port Number of Mobile Services :&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;grep mwa $CONTEXT_FILE&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Connect to Mobile Services :&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;telnet hostname.domainname portnumber(mobile application service port_number)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;MWA Troubleshooting Tips for Release 12 (Doc ID 782162.1)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Reference and Further Reading:&lt;/h3&gt;
Note 578667.1 - Customization of Oracle Mobile Supply Chain Applications and Oracle Warehouse Management System&lt;br /&gt;
Note 959087.1 - How To Download The MSCA/WMS JAVADOCS Files For Doing Customization?&lt;br /&gt;
Note 338291.1 - How to Enable WMS / MSCA Logging&lt;br /&gt;
Note 297992.1 - Advanced Barcode Strategies – Custom Scan Framework &amp;amp; profile option &quot;MWA: Custom Scan&quot;&lt;br /&gt;
For Multi-lingual Support and DFI (Data Field Identifier) - Integration with AK repository is needed.&lt;br /&gt;
&lt;br /&gt;
Previous Read:&amp;nbsp;&lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_77.html&quot;&gt;MSCA/MWA Framework - Custom Development and Extension - Part 1&lt;/a&gt;&lt;br /&gt;
Previous Read:&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/oracle-mscamwa-framework-introduction.html&quot;&gt;Oracle MSCA/MWA Framework - Introduction&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/540457287150791752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_11.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/540457287150791752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/540457287150791752'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_11.html' title='MSCA/MWA Framework - Custom Development and Extension - Part 2'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV8AgA-SusSzQNt_0uxFNZVEgwJELQJdD_u4hmV8o0oX1PLSrA1dC9bnz8pD49ok5zR7Z1pg1aAGJMb5yJp8OWxcAap0C10SpTsmLyP6EoSUIScstAJLOJaD9evCOrvT0JElrPXs3rFf4/s72-c/MWA+Application+Flow.PNG" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-4067433085991637734</id><published>2015-07-20T13:21:00.001+05:30</published><updated>2015-07-20T13:21:30.715+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle MSCA/MWA Framework"/><title type='text'>MSCA/MWA Framework - Mobile Personalization</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Mobile Personalization:&lt;/h3&gt;
Mobile personalization enables you to customize Oracle Warehouse Management pages without making code changes. Personalization support is present in R12.1.X onwards. Personalization metadata is stored in database level similar to OAF personalization. Following are typical examples of personalizations:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Hide fields and buttons&lt;/li&gt;
&lt;li&gt;Provide default field values&lt;/li&gt;
&lt;li&gt;Copy the value of a field to another field&lt;/li&gt;
&lt;li&gt;Set editable fields as read only&lt;/li&gt;
&lt;li&gt;Set non-required fields as required.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;u&gt;Personalization Level:&lt;/u&gt;&lt;br /&gt;
Similar to OAF Personalization, Following are various levels of personalization for Mobile Pages:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Function&lt;/li&gt;
&lt;li&gt;Responsibility&lt;/li&gt;
&lt;li&gt;Organization (Inventory Org)&lt;/li&gt;
&lt;li&gt;User&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;Personalization Support in Pages:&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
There are around 40 pages (No. of pages vary from release to release) that support personalization. Customers can raise request for new pages to allow personalization. Following are some example:&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Assembly Completion by LPN&lt;/li&gt;
&lt;li&gt;GME Mobile Backflush&lt;/li&gt;
&lt;li&gt;GME Mobile Complete Product&lt;/li&gt;
&lt;li&gt;GME Mobile Create Pending Lot&lt;/li&gt;
&lt;li&gt;GME Mobile Issue Ingredients&lt;/li&gt;
&lt;li&gt;Lot Attributes Page - PO Receipt&lt;/li&gt;
&lt;li&gt;Mobile ASN Receipt&lt;/li&gt;
&lt;li&gt;Mobile Alias Issue&lt;/li&gt;
&lt;li&gt;Mobile Alias Receipt&lt;/li&gt;
&lt;li&gt;Mobile Cycle Count&lt;/li&gt;
&lt;li&gt;Mobile Inspect LPN&lt;/li&gt;
&lt;li&gt;Mobile Item Inquiry&lt;/li&gt;
&lt;li&gt;Mobile LPN Inquiry&lt;/li&gt;
&lt;li&gt;Mobile LPN Ship&lt;/li&gt;
&lt;li&gt;Mobile LPN Ship - Ship Confirm&lt;/li&gt;
&lt;li&gt;Mobile Move Order Replenishment&lt;/li&gt;
&lt;li&gt;Mobile Org Transfer&lt;/li&gt;
&lt;li&gt;Mobile PO Receipt&lt;/li&gt;
&lt;li&gt;Mobile PO Receipt Information&lt;/li&gt;
&lt;li&gt;Mobile Physical Count&lt;/li&gt;
&lt;li&gt;Mobile Pick Drop - Mobile WMS Drop Loaded LPNs&lt;/li&gt;
&lt;li&gt;Mobile Pick Load - Mobile WMS Manual Picking&lt;/li&gt;
&lt;li&gt;Mobile Replenish Kanban&lt;/li&gt;
&lt;li&gt;Mobile Sub Transfer&lt;/li&gt;
&lt;li&gt;Mobile WMS Inbound Manual Load&lt;/li&gt;
&lt;li&gt;Mobile WMS Inbound Manual Load - Select Contents&lt;/li&gt;
&lt;li&gt;Mobile WMS LPN Split&lt;/li&gt;
&lt;li&gt;Mobile WMS Manual Picking&lt;/li&gt;
&lt;li&gt;Mobile WMS Move Any LPN&lt;/li&gt;
&lt;li&gt;Mobile WMS Move Any LPN (Select Item)&lt;/li&gt;
&lt;li&gt;Mobile WMS Pack&lt;/li&gt;
&lt;li&gt;Mobile WMS Unpack&lt;/li&gt;
&lt;li&gt;Mobile WMS Update LPN&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;Pre-requisite and Setups needed:&lt;/u&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;WMS Setup should &amp;nbsp;be completed&lt;/li&gt;
&lt;li&gt;Set profile option &quot;MWA: Enable Personalization&quot; to Yes.&lt;/li&gt;
&lt;li&gt;Set profile option &quot;MWA: Cache Personalized Metadata&quot; to No. If this profile option value is set to Yes, then bounce will be required after personalization. Setting the profile option to Yes, results in better performance for personalized pages.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;Steps To Personalize:&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Navigate to &quot;Warehouse Manager &amp;gt; Setup &amp;gt; MWA Personalization Framework&quot;.&lt;/li&gt;
&lt;li&gt;Select the mobile page/function.&lt;/li&gt;
&lt;li&gt;Click Personalize&lt;/li&gt;
&lt;li&gt;Edit the field to personalize&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Update the Prompt/Default Value/Rendered/Read Only/Required etc properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Click on Activate/Deactivate Personalizations to activate/deactivate personalizations on that page.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;u&gt;DFF on Mobile Screen:&lt;/u&gt;&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;If DFF is present on mobile screen, it can also be personalized. Example - LPN DFF.&lt;/li&gt;
&lt;li&gt;DFF can be in-line - DFF fields are displayed along with other fields on page. If DFF is not in-line, pressing Ctrl + F will open the DFF window.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;u&gt;Reference:&lt;/u&gt;&lt;br /&gt;
Note 469339.1 - Oracle WMS Personalization Framework&lt;br /&gt;
Note 1600812.1 - Mobile Supply Chain Applications (MSCA) Personalization - Webinar&lt;br /&gt;
Note 470011.1 - What WMS Patchset Is Required In Order To Personalize MWA Per Note 469339.1?&lt;br /&gt;
Note 961198.1 - Mobile Personalization White Paper&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/4067433085991637734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-mobile-personalization.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/4067433085991637734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/4067433085991637734'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-mobile-personalization.html' title='MSCA/MWA Framework - Mobile Personalization'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-96592812515525041</id><published>2015-07-20T13:18:00.001+05:30</published><updated>2015-07-20T13:26:53.098+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle MSCA/MWA Framework"/><title type='text'>MSCA/MWA Framework - Custom Development and Extension - Part 1</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;h3&gt;
MWA Responsibilities, Menu and Functions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The way we create responsibilities, menus and functions is similar to other oracle applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;Responsibilities:&lt;/u&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Responsibilities should have &quot;Oracle Mobile Applications&quot; selected in &quot;Available From&quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaHHXLveeyVWhUvZ0ptF0ZzgAcJx2dxl-NhtOWAxEvGrjiipVu6eoHBthJYRakW4u8g-aytvnKIW5wJutMi2REXPH-gK81H5kEiqkWCzx7zYlJvpN58kxwtP50YWyQuhkWqThy6qhOguQ/s1600/Mobile+Resp1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaHHXLveeyVWhUvZ0ptF0ZzgAcJx2dxl-NhtOWAxEvGrjiipVu6eoHBthJYRakW4u8g-aytvnKIW5wJutMi2REXPH-gK81H5kEiqkWCzx7zYlJvpN58kxwtP50YWyQuhkWqThy6qhOguQ/s400/Mobile+Resp1.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;u&gt;Menu:&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Menu are normally created with menu type &quot;Standard&quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;Function:&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Function should be created with type &quot;Mobile Applications&quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxL73fyy39D09ZVFT4buNG2q-xiy9NuZVoz_swGAoKfC4qo0qTVT7nca1noK57yhbJxI60BLfX7srgg7tw7G1fewr8Jmr1OMxekjmDH9oDszceSVeUmLjNIa5LCAyTA8sBZG1Z1RuRvGw/s1600/Function1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxL73fyy39D09ZVFT4buNG2q-xiy9NuZVoz_swGAoKfC4qo0qTVT7nca1noK57yhbJxI60BLfX7srgg7tw7G1fewr8Jmr1OMxekjmDH9oDszceSVeUmLjNIa5LCAyTA8sBZG1Z1RuRvGw/s400/Function1.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;HTML Call of the function should point to java class full name for menu item bean (We&#39;ll discuss more on this in coming section.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSTzS07NQ35vFpWQQmIiVhuqdLSoTtC_aDgHIA0XfrrQpGUwxB8SU5hfLZOhRXBLcLXjl8a4IDRQiwauY85xPmZKUekFjASbemvaAcMs8XiF6_8ZkJirV6CuMS7iwRJRmnBiHQcITiXcE/s1600/Function2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSTzS07NQ35vFpWQQmIiVhuqdLSoTtC_aDgHIA0XfrrQpGUwxB8SU5hfLZOhRXBLcLXjl8a4IDRQiwauY85xPmZKUekFjASbemvaAcMs8XiF6_8ZkJirV6CuMS7iwRJRmnBiHQcITiXcE/s400/Function2.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Technical Overview of MSCA/MWA Framework&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
In technical overview of the MSCA/MWA Framework, we need to understand Mobile Application Beans (Mobile Application Screen UI Construction) and Event Listener Model (Event Handling like Page Enter, Field Exit, Button click etc):&lt;/div&gt;
&lt;h4 style=&quot;clear: both;&quot;&gt;
Mobile Application Beans&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Following are key Mobile Application Beans:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;MWABean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;MWABean&lt;/b&gt;&amp;nbsp;extends java.lang.Object implements java.io.Serializable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Base class for all UI beans.&lt;/li&gt;
&lt;li&gt;MenuItemBean, PageBean, FieldBean, FlexfieldBean all extend from this class.&lt;/li&gt;
&lt;li&gt;Maintains a list of MWA event listeners (&lt;code&gt;protected java.util.Vector&amp;nbsp;&lt;b&gt;m_listeners&lt;/b&gt;&lt;/code&gt;).&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;addListener&lt;/b&gt;(MWAListener Listener)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;removeListener&lt;/b&gt;(MWAListener Listener)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public java.util.Vector&amp;nbsp;&lt;b&gt;getListeners&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;We don&#39;t use this bean directly in our coding.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li value=&quot;2&quot;&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;MenuItemBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;MenuItemBean&lt;/b&gt;&amp;nbsp;extends MWABean&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Connects FND Menu Structure to Mobile Application. FND Form function for the Mobile Application points to a MenuItemBean.&lt;/li&gt;
&lt;li&gt;As per naming convention, MenuItemBean ends with suffix &quot;&lt;code&gt;Function&lt;/code&gt;&quot;.&lt;/li&gt;
&lt;li&gt;It stores the key name of the first page of the mobile application (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_firstPageName&lt;/b&gt;&lt;/code&gt;).&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getFirstPageName&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setFirstPageName&lt;/b&gt;(java.lang.String FirstPageName)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Example - Following statement is typically written in the Constructor:&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ol&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;setFirstPageName(&quot;xxabc.oracle.apps.abc.xyz.inv.invtxn.server.MyFirstCustomPage&quot;);&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;FirstCustomPage is custom PageBean.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;li&gt;Other functions it provides are to set/get the menu confirmation message:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setMenuConfirmMessage&lt;/b&gt;(java.lang.String msg)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getMenuConfirmMessage&lt;/b&gt;()&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li value=&quot;3&quot;&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;PageBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;PageBean&amp;nbsp;&lt;/b&gt;extends MWABean&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Base class for all user developed page level beans.&lt;/li&gt;
&lt;li&gt;Contains the page prompt which is displayed to the end user as the title of the page (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_prompt&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setPrompt&lt;/b&gt;(java.lang.String Prompt)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String&amp;nbsp;&lt;b&gt;getPrompt&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains list of field beans which are part of this page (&lt;code&gt;protected java.util.Vector&amp;nbsp;&lt;b&gt;m_fieldBeans&lt;/b&gt;&lt;/code&gt;) and current field indicator (&lt;code&gt;protected int&amp;nbsp;&lt;b&gt;m_curtField&lt;/b&gt;&lt;/code&gt;):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;addFieldBean&lt;/b&gt;&lt;b&gt;(FieldBean FB)&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;addFieldBean&lt;/b&gt;(int index,&amp;nbsp;&lt;b&gt;FieldBean&lt;/b&gt;&amp;nbsp;&lt;b&gt;FB&lt;/b&gt;)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;removeFieldBean&lt;/b&gt;(FieldBean FB)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;removeAllFieldBeans&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public int&amp;nbsp;&lt;b&gt;getCurrentFieldIndex&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public int&amp;nbsp;&lt;b&gt;getFieldIndex&lt;/b&gt;(java.lang.String key)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public&amp;nbsp;&lt;b&gt;FieldBean&lt;/b&gt;&amp;nbsp;&lt;b&gt;getCurrentFieldBean&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public java.util.Vector&amp;nbsp;&lt;b&gt;getFieldBeanList&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setFieldBeanList&lt;/b&gt;(java.util.Vector BeanList)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Contains Session for the page (&lt;code&gt;protected Session&amp;nbsp;&lt;b&gt;m_session&lt;/b&gt;&lt;/code&gt;) Session Handling methods:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public Session&amp;nbsp;&lt;b&gt;getSession&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setSession&lt;/b&gt;(Session sessionObject)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;Other key methods:&lt;/code&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To return the full name of the pagebean:&amp;nbsp;&lt;code&gt;public java.lang.String&amp;nbsp;&lt;b&gt;getName&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To mark if a page bean is to be instantiated upon each visit during runtime:&amp;nbsp;&lt;code&gt;public boolean&amp;nbsp;&lt;b&gt;isMultipleInstance&lt;/b&gt;(), public void&amp;nbsp;&lt;b&gt;setMultipleInstance&lt;/b&gt;(boolean MultipleInstance)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Typically as first step, we declare the FieldBeans in&amp;nbsp;pageBean class&#39;s declaration section, and generate getters and setters for the fieldbeans. In Constructor to add field beans, modify fieldbean properties, change the order of the fieldbeans, associate field Listener to field beans (Details on FieldListener will be covered later).&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;For code examples - please refer FieldBean.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li value=&quot;4&quot;&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;FieldBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;FieldBean&amp;nbsp;&lt;/b&gt;extends MWABean&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Base class for all field level beans.&lt;/li&gt;
&lt;li&gt;Important Subclasses -&amp;nbsp;&lt;code&gt;ButtonFieldBean, HeadingFieldBean, InputableFieldBean (With Subclasses - LOVFieldBean, MultiListFieldBean, TextFieldBean), ListFieldBean, MessageFieldBean.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Maintains name property of the field (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_name&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String&amp;nbsp;&lt;b&gt;getName&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setName&lt;/b&gt;(java.lang.String Name)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains prompt property of the field (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_prompt&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public java.lang.String&amp;nbsp;&lt;b&gt;getPrompt&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setPrompt&lt;/b&gt;(java.lang.String Prompt)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains hidden property of the field (&lt;code&gt;protected boolean&amp;nbsp;&lt;b&gt;m_hidden&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public boolean&amp;nbsp;&lt;b&gt;isHidden&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setHidden&lt;/b&gt;(boolean Hidden)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains type of field (&lt;code&gt;protected short&amp;nbsp;&lt;b&gt;m_type&lt;/b&gt;&lt;/code&gt;):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;default is&amp;nbsp;&lt;code&gt;INPUTTEXT&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public int&amp;nbsp;&lt;b&gt;getType&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Possible Values include:&lt;/li&gt;
&lt;ul&gt;&lt;code&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;TEXT&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;LOV&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;MULTILIST&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;LIST&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;BUTTON&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;CHECKBOX&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;RADIO&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;HEADING1&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;HEADING2&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;LINESEPARATOR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;SPACESEPARATOR&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;MENUITEM&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;RESPONSIBILITYITEM&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;LOVRUNTIMEITEM&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;MULTILISTRUNTIMEITEM&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;DESCFLEX&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;KEYFLEX&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;SEGMENTLOV&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;public static short&amp;nbsp;&lt;b&gt;SEGMENTTEXT&lt;/b&gt;&lt;/li&gt;
&lt;/code&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li value=&quot;5&quot;&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;FlexFieldBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;FlexfieldBean&lt;/b&gt;&amp;nbsp;extends MWABean implements oracle.apps.fnd.flexj.event.&lt;b&gt;FlexfieldListener&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;It represents the flexfield in the Mobile Applications&lt;/li&gt;
&lt;li&gt;Constructor -&amp;nbsp;&lt;code&gt;public&amp;nbsp;&lt;b&gt;FlexfieldBean&lt;/b&gt;(oracle.apps.fnd.flexj.&lt;b&gt;Flexfield&lt;/b&gt;&amp;nbsp;flexfield, oracle.apps.mwa.container.&lt;b&gt;Session&lt;/b&gt;&amp;nbsp;session)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Maintains boolean variables and getters and setters for readonly, hidden and required (&lt;code&gt;private boolean m_readonly,&amp;nbsp;m_hidden,&amp;nbsp;m_required&lt;/code&gt;):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public boolean&amp;nbsp;&lt;b&gt;isRequired&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setRequired&lt;/b&gt;(boolean requiredFlag)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setHidden&lt;/b&gt;(boolean hiddenFlag)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public void&amp;nbsp;&lt;b&gt;setReadonly&lt;/b&gt;(boolean&amp;nbsp;readOnlyFlag)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public boolean&amp;nbsp;&lt;b&gt;isReadonly&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Important Flexfield related APIs:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public Flexfield &lt;b&gt;getFlexfield&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;protected boolean &lt;b&gt;addSegmentBean&lt;/b&gt;(Segment Seg)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;protected void &lt;b&gt;removeSegmentBean&lt;/b&gt;(Segment Seg)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtHoplUhi5QpbxAqWJafRpnYQtsTcE83v698n0hPGkdTRnj096b5cUar6ufY8iKRFr6PULictxaIciwGJGBmvauhcIRybE7ALsY2gu62_d2AGB7FFdSU7gkXQVlZOiJUJ8BitEFflie90/s1600/MWABeanHierarchy.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;169&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtHoplUhi5QpbxAqWJafRpnYQtsTcE83v698n0hPGkdTRnj096b5cUar6ufY8iKRFr6PULictxaIciwGJGBmvauhcIRybE7ALsY2gu62_d2AGB7FFdSU7gkXQVlZOiJUJ8BitEFflie90/s640/MWABeanHierarchy.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Following are three most frequently used beans on Mobile Application Pages:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;TextFieldBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public class &lt;b&gt;TextFieldBean &lt;/b&gt;extends InputableFieldBean&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Constructor:&amp;nbsp;&lt;code&gt;public&amp;nbsp;&lt;b&gt;TextFieldBean&lt;/b&gt;()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Frequently used properties&amp;nbsp;and their getters and setters&amp;nbsp;inherited from FieldBean:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;name, prompt, hidden&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Frequently used properties and their getters and setters inherited from InputableFieldBean:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;editable (&lt;code&gt;protected boolean&amp;nbsp;&lt;b&gt;m_editable&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;required (&lt;span style=&quot;font-family: monospace;&quot;&gt;protected boolean&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: monospace;&quot;&gt;&lt;b&gt;m_&lt;/b&gt;required&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;display length (&lt;span style=&quot;font-family: monospace;&quot;&gt;protected int&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: monospace;&quot;&gt;m_length&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;value (&lt;span style=&quot;font-family: monospace;&quot;&gt;protected java.lang.String&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: monospace;&quot;&gt;m_value&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;value type (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_valueType&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Possible values are: S - String, N - Number, D - Date, C - Calculation, R - Range&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains password property (&lt;code&gt;protected boolean&amp;nbsp;&lt;b&gt;m_password&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public boolean &lt;b&gt;isPassword&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setIsPassword&lt;/b&gt;(boolean IsPassword)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains navigation to next page property (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_nextPageName&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getNextPageName&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setNextPageName&lt;/b&gt;(java.lang.String NextPageName)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;LOVFieldBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;LOVFieldBean&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;extends&lt;b&gt;&amp;nbsp;InputableFieldBean&lt;/b&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Constructor:&amp;nbsp;&lt;span style=&quot;font-family: monospace;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;b style=&quot;font-family: monospace;&quot;&gt;LOVFieldBean()&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Frequently used properties&amp;nbsp;and their getters and setters&amp;nbsp;inherited from FieldBean:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;name, prompt, hidden&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Frequently used properties and their getters and setters inherited from InputableFieldBean:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;editable,&amp;nbsp;required,&amp;nbsp;display length (length),&amp;nbsp;value,&amp;nbsp;value type&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains navigation to next page property (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_nextPageName&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getNextPageName&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setNextPageName&lt;/b&gt;(java.lang.String NextPageName)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains LOV Statement (protected java.lang.String&amp;nbsp;&lt;b&gt;m_lovStatement&lt;/b&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This is mandatory to be set.&lt;/li&gt;
&lt;li&gt;Store SQL query or PL/SQL procedure with a reference cursor output parameter.&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setlovStatement&lt;/b&gt;(java.lang.String LovStatement)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getlovStatement&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains key names, prompt, types, rendered property of the subfields of the Lov page, &amp;nbsp;(&lt;code&gt;protected java.lang.String[]&amp;nbsp;&lt;b&gt;m_subfieldNames,&amp;nbsp;&lt;/b&gt;protected java.lang.String[]&amp;nbsp;&lt;b&gt;m_subfieldPrompts,&amp;nbsp;&lt;/b&gt;protected java.lang.String[]&amp;nbsp;&lt;b&gt;m_subfieldTypes,&amp;nbsp;&lt;/b&gt;protected boolean[]&amp;nbsp;&lt;b&gt;m_subfieldDisplays&lt;/b&gt;&amp;nbsp;&lt;/code&gt;).&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The size of these arrays should be same.&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String[] &lt;b&gt;getSubfieldNames&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setSubfieldNames&lt;/b&gt;(java.lang.String[] SubfieldNames)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String[] &lt;b&gt;getSubfieldPrompts&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setSubfieldPrompts&lt;/b&gt;(java.lang.String[] SubfieldPrompts)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String[] &lt;b&gt;getSubfieldTypes&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setSubfieldTypes&lt;/b&gt;(java.lang.String[] SubfieldTypes)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public boolean[] &lt;b&gt;getSubfieldDisplays&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setSubfieldDisplays&lt;/b&gt;(boolean[] SubfieldDisplays)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains key names of the input parameters and parameter types (&lt;code&gt;protected java.lang.String[]&amp;nbsp;&lt;b&gt;m_inputParameters,&amp;nbsp;&lt;/b&gt;protected java.lang.String[]&amp;nbsp;&lt;b&gt;m_inputParameterTypes&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String[] &lt;b&gt;getInputParameterTypes&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setInputParameterTypes&lt;/b&gt;(java.lang.String[] InputParameterTypes)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String[] &lt;b&gt;getInputParameters&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setInputParameters&lt;/b&gt;(java.lang.String[] InputParameters)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains values returned from LOV or selectec values (&lt;code&gt;protected java.util.Vector&amp;nbsp;&lt;b&gt;m_selectedValues&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.util.Vector &lt;b&gt;getSelectedValues&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public boolean &lt;b&gt;isPopulated&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains lov validation required property (&lt;code&gt;protected boolean&amp;nbsp;&lt;b&gt;m_validateFromLOV&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Specifies if user has to always go through LOV page -&amp;nbsp;if false,&amp;nbsp;&lt;enter&gt;value in the field is accepted without validation.&lt;/enter&gt;&lt;/li&gt;
&lt;li&gt;&lt;enter&gt;Default is True.&lt;/enter&gt;&lt;/li&gt;
&lt;li&gt;&lt;enter&gt;&lt;pre&gt;public void &lt;b&gt;setValidateFromLOV&lt;/b&gt;(boolean validateFromLOV)&lt;/pre&gt;
&lt;/enter&gt;&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public boolean &lt;b&gt;isValidateFromLOV&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;code&gt;oracle.apps.mwa.beans.&lt;/code&gt;&lt;b&gt;ButtonFieldBean&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class&amp;nbsp;&lt;b&gt;&lt;pre style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;ButtonFieldBean&lt;/b&gt;&lt;/pre&gt;
&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;extends&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b style=&quot;font-family: monospace;&quot;&gt;FieldBean&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Constructor:&amp;nbsp;&lt;span style=&quot;font-family: monospace;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;b style=&quot;font-family: monospace;&quot;&gt;&lt;b&gt;&lt;pre style=&quot;display: inline !important;&quot;&gt;&lt;b&gt;ButtonFieldBean&lt;/b&gt;&lt;/pre&gt;
&lt;/b&gt;()&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Frequently used properties&amp;nbsp;and their getters and setters&amp;nbsp;inherited from FieldBean:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;name, hidden (behavior of prompt is different for buttons as it includes accelerator keys)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains button prompt property with accelerator key (protected java.lang.String&amp;nbsp;&lt;b&gt;m_prompt&lt;/b&gt;):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setPrompt&lt;/b&gt;(java.lang.String s)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setPrompt&lt;/b&gt;(java.lang.String s)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;If we call setPrompt(&quot;&amp;amp;Done&quot;), getPrompt() will return &quot;Done&quot;.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&#39;D&#39; will be the hot key for &quot;Done&quot; button&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains navigation to next page property (&lt;code&gt;protected java.lang.String&amp;nbsp;&lt;b&gt;m_nextPageName&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public java.lang.String &lt;b&gt;getNextPageName&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setNextPageName&lt;/b&gt;(java.lang.String NextPageName)&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Maintains accelerator key enable/disable property (&lt;code&gt;protected boolean&amp;nbsp;&lt;b&gt;m_enableAcceleratorKey&lt;/b&gt;&lt;/code&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;public void &lt;b&gt;setEnableAcceleratorKey&lt;/b&gt;(boolean b)&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;pre&gt;public boolean &lt;b&gt;isAcceleratorKeyEnabled&lt;/b&gt;()&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;div&gt;
Please proceed to&amp;nbsp;&lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_11.html&quot;&gt;MSCA/MWA Framework - Custom Development and Extension - Part 2&lt;/a&gt; to read more.&lt;br /&gt;
Previous Read:&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/oracle-mscamwa-framework-introduction.html&quot;&gt;Oracle MSCA/MWA Framework - Introduction&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/96592812515525041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_77.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/96592812515525041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/96592812515525041'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_77.html' title='MSCA/MWA Framework - Custom Development and Extension - Part 1'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaHHXLveeyVWhUvZ0ptF0ZzgAcJx2dxl-NhtOWAxEvGrjiipVu6eoHBthJYRakW4u8g-aytvnKIW5wJutMi2REXPH-gK81H5kEiqkWCzx7zYlJvpN58kxwtP50YWyQuhkWqThy6qhOguQ/s72-c/Mobile+Resp1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-118525719043841430</id><published>2015-07-20T13:16:00.001+05:30</published><updated>2015-07-20T13:22:49.709+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle MSCA/MWA Framework"/><title type='text'>Oracle MSCA/MWA Framework - Introduction</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
MSCA&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Stands for Mobile Supply Chain Application.&lt;/li&gt;
&lt;li&gt;MSCA is for staff in warehouse, shop floor, most of whom are always on the move.&lt;/li&gt;
&lt;li&gt;MSCA trasactions are carried out from hand-held devices.&lt;/li&gt;
&lt;li&gt;To efficiently operate and infuse visibility in the system - RFID (Radio Frequency Identification)&amp;nbsp;readers&amp;nbsp;are used by warehouse/shop floor staff to read barcodes and use them in transactions.&lt;/li&gt;
&lt;li&gt;Items, Locators, Sub-Inventories etc are barcoded and these barcodes are not entered manually but scanned with the handheld devices while performing transactions thus providing efficiency, speed as well as accuracy.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
MWA&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Stands for Mobile Web Application.&lt;/li&gt;
&lt;li&gt;MWA is telnet based application that runs on internet (WIFI and GPRS) based wireless devices.&lt;/li&gt;
&lt;li&gt;Telnet client is configured on the handheld device, for testing it is used on desktop.&lt;/li&gt;
&lt;li&gt;MWA Applications are based on Java.&lt;/li&gt;
&lt;li&gt;MWA is part of WMS (Warehouse Management System).&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;
&lt;u&gt;MWA Architecture:&lt;/u&gt;&lt;br /&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-pMwdpXtCAd_nLqVr8Zbg3ej1y6rzZNVY3FldOJ5Eoh22dvcc52xpm6_gwGY21FCljUEqFbVP2daoxRkoBBZJki9NiP7npKeIem4CVSc4rxiB8BClqSOiSEW29fFDSvY8X5Fu3naW5TA/s1600/MSCA+Architecture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-pMwdpXtCAd_nLqVr8Zbg3ej1y6rzZNVY3FldOJ5Eoh22dvcc52xpm6_gwGY21FCljUEqFbVP2daoxRkoBBZJki9NiP7npKeIem4CVSc4rxiB8BClqSOiSEW29fFDSvY8X5Fu3naW5TA/s400/MSCA+Architecture.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;
&lt;u&gt;&lt;br /&gt;&lt;/u&gt;
&lt;/div&gt;
&lt;/div&gt;
Fortunate enough to get a chance to closely observe and experience warehouse transactions using handheld devices. Typical work on MWA Applications:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Development of custom screens for handheld devices.&lt;/li&gt;
&lt;li&gt;Extend the existing MWA screens.&lt;/li&gt;
&lt;li&gt;Personalize existing MWA screens.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;u&gt;Technical Skills Required:&lt;/u&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;PLSQL&amp;nbsp;&lt;/li&gt;
&lt;li&gt;XML&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;u&gt;Softwares Required:&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;JDK to be installed in system.&lt;/li&gt;
&lt;li&gt;Mobile Wireless Applications (MWA) J2ME Telnet GUI Client.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Navigation&lt;/h3&gt;
Navigation on mobile device uses &quot;Enter&quot; key.&lt;br /&gt;
&quot;Enter&quot; key will fire fieldExited event.&lt;br /&gt;
Whenever we scan a barcode, barcode will populate the value and there is an associated &quot;Enter&quot; key for navigation to next field.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Key Mappings&lt;/u&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Key mappings are visible on mobile help screen on pressing &quot;F1&quot; (Standard key for Help).&lt;/li&gt;
&lt;/ul&gt;
Following are standard key mappings:&lt;br /&gt;
&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; border: 1px solid black; width: 70%;&quot;&gt;  &lt;tbody&gt;
&lt;tr&gt;
    &lt;th style=&quot;background-color: teal; color: white;&quot;&gt;Shortcut Key&lt;/th&gt;
    &lt;th style=&quot;background-color: teal; color: white;&quot;&gt;Purpose&lt;/th&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;F1&lt;/td&gt;
    &lt;td&gt;Help&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;F2&lt;/td&gt;
    &lt;td&gt;Menu&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;F3&lt;/td&gt;
    &lt;td&gt;Back&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;F4&lt;/td&gt;
    &lt;td&gt;Forward&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl K&lt;/td&gt;
    &lt;td&gt;Clear&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl L&lt;/td&gt;
    &lt;td&gt;LOV&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl M&lt;/td&gt;
    &lt;td&gt;Responsibility Menu&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl B&lt;/td&gt;
    &lt;td&gt;Long Description of status message&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl Z&lt;/td&gt;
    &lt;td&gt;Toggle between options in a list field&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl A&lt;/td&gt;
    &lt;td&gt;Show Current Field on page&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;ESC&lt;/td&gt;
    &lt;td&gt;For Hot Keys&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl Z&lt;/td&gt;
    &lt;td&gt;Toggle between options in a list field&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl D&lt;/td&gt;
    &lt;td&gt;Page Up&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl C&lt;/td&gt;
    &lt;td&gt;Page Down&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl G&lt;/td&gt;
    &lt;td&gt;Generate (Generate Serial Number etc)&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl S&lt;/td&gt;
    &lt;td&gt;Skip Task on Task Page&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl X&lt;/td&gt;
    &lt;td&gt;About Page&lt;/td&gt;  
  &lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;Ctrl F&lt;/td&gt;
    &lt;td&gt;Open Flexfield Window&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
MWA Configuration&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;$INST_TOP/admin/install/mwa.cfg stores the MWA configuration.&lt;/li&gt;
&lt;li&gt;Following are the key configuration variables in this file:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;mwa.DbcFolder&lt;/li&gt;
&lt;li&gt;mwa.DbcFile&lt;/li&gt;
&lt;li&gt;mwa.logdir&lt;/li&gt;
&lt;li&gt;mwa.LogLevel&lt;/li&gt;
&lt;li&gt;mwa.SystemLog&lt;/li&gt;
&lt;li&gt;mwa.EnableLogRotation&lt;/li&gt;
&lt;li&gt;mwa.MaxLogFileSize&lt;/li&gt;
&lt;li&gt;mwa.SubmenuChangeOrgResp&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Refer to MSCA&amp;nbsp;Implementation Guide&amp;gt; MWA Server Setup &amp;gt;&amp;nbsp;MWA Configuration File for more details.&lt;/li&gt;
&lt;li&gt;Key mappings can be modified for a particular device ($INST_TOP/admin/install/Device IP.ini) or all devices&amp;nbsp;($INST_TOP/admin/install/default_key.ini). (Refer to MSCA&amp;nbsp;Implementation Guide&amp;gt; MWA Server Setup &amp;gt; Key Mappings). &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;u&gt;Steps to Configure MWA Client:&lt;/u&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;MWA Client needs to confirmed&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Search for &quot;Mobile Wireless Applications (MWA) J2ME Telnet GUI Client&quot; or &quot;Latest MWA GUI Client&quot; etc on oracle support. Latest patch that I found and tried was 12780257. Patch &quot;Read me&quot; file contains details on patch installation.&lt;/li&gt;
&lt;li&gt;https://support.oracle.com/epmos/main/downloadattachmentprocessor?parent=DOCUMENT&amp;amp;sourceId=294670.1&amp;amp;attachid=294670.1:1&amp;amp;clickstream=yes&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
MWA Administrator&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Standard MWA responsibility for MWA for Mirroring and Sending message to another mobile device for communication.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;u&gt;Mirroring Mobile Session&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;MWA Administrator &amp;gt; Telnet Session Monitor can be used to mirror an active session of another user.&lt;/li&gt;
&lt;li&gt;Both users must be on the same MWA Server.&lt;/li&gt;
&lt;li&gt;This can greatly help in debugging and supporting MWA Applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;Send Message&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;MWA Administrator &amp;gt; Send Message can be used to send a brief message to another user.&lt;/li&gt;
&lt;li&gt;Both users must be on the same MWA Server.&lt;/li&gt;
&lt;li&gt;User will see the message on any key press.&lt;/li&gt;
&lt;li&gt;After pressing OK, user can continue with their transaction.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
Starting/Shutting MWA Server&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Location of Scripts -&amp;nbsp;cd $INST_TOP/admin/scripts&lt;/li&gt;
&lt;li&gt;Start Command -&amp;nbsp;mwactl.sh start [port number]&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Ex.&amp;nbsp;mwactl.sh start 6060&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Shutdown Command -&amp;nbsp;mwactl.sh-login xxx/yyy stop/stop_force [port number]&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;mwactl.sh -login cbaker/welcome stop 6060&lt;/li&gt;
&lt;li&gt;mwactl.sh -login cbaker/welcome stop_force 6060&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Hardware devices typically used:&lt;/h3&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Barcode Printer&lt;/li&gt;
&lt;li&gt;Ribbon for barcode printing&lt;/li&gt;
&lt;li&gt;Rugged/Semi-rugged mobile devices&lt;/li&gt;
&lt;li&gt;lamination labels&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Please proceed to &lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-custom-development_77.html&quot;&gt;MSCA/MWA Framework - Custom Development and Extension - Part 1&lt;/a&gt; to read more on custmization in MSCA/MWA Framework.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Please proceed to&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.com/2015/07/mscamwa-framework-mobile-personalization.html&quot;&gt;MSCA/MWA Framework - Mobile Personalization&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;to read more on Personalizing standard MSCA/MWA Screens.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/118525719043841430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/oracle-mscamwa-framework-introduction.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/118525719043841430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/118525719043841430'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2015/07/oracle-mscamwa-framework-introduction.html' title='Oracle MSCA/MWA Framework - Introduction'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-pMwdpXtCAd_nLqVr8Zbg3ej1y6rzZNVY3FldOJ5Eoh22dvcc52xpm6_gwGY21FCljUEqFbVP2daoxRkoBBZJki9NiP7npKeIem4CVSc4rxiB8BClqSOiSEW29fFDSvY8X5Fu3naW5TA/s72-c/MSCA+Architecture.PNG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-453292227798858939</id><published>2014-01-14T00:50:00.001+05:30</published><updated>2014-05-10T14:10:36.609+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><title type='text'>Responsive Web Design</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOMrtBY9FNjmf0gpoCwQ0jxHWwcRzZbvlEjDK9R9iGRC1hOk2V-5QAg5JKEZpqx_mqrV_XVAAkQEpYvf9Z_RmvDnWx2nPblUjuU3udETj8RcLR5SgSBzjYuU_End9uHza9F2IPRnrsRiI/s1600/TimeDesktop.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOMrtBY9FNjmf0gpoCwQ0jxHWwcRzZbvlEjDK9R9iGRC1hOk2V-5QAg5JKEZpqx_mqrV_XVAAkQEpYvf9Z_RmvDnWx2nPblUjuU3udETj8RcLR5SgSBzjYuU_End9uHza9F2IPRnrsRiI/s320/TimeDesktop.png&quot; height=&quot;184&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiloqfSXXuWUU1SPPzcVlD3H9ltBxWInRd8KLmnDPsnV9-8B3OWJ6izAuKwX1kmJb03b44-yvkpD7rTohsTwksbQ3w8hT6fRj5xh8_KqpbXWLG9PHOVUDd_Turcg7iIwGsWHu9uSx-reKs/s1600/Time+Mobile+Landscape.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiloqfSXXuWUU1SPPzcVlD3H9ltBxWInRd8KLmnDPsnV9-8B3OWJ6izAuKwX1kmJb03b44-yvkpD7rTohsTwksbQ3w8hT6fRj5xh8_KqpbXWLG9PHOVUDd_Turcg7iIwGsWHu9uSx-reKs/s320/Time+Mobile+Landscape.jpg&quot; height=&quot;189&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjERGcEQmUzSHrwOcrYDQfbPqu22LQE0Nx1pfMguZz-9eCjuDIfoooMzyxxieA3QBerpew8pSaxSncmvuxun7hP-YA5uwS4UmQYQ_klRhUdUFZudAgv3ThnLiQK-0tWdDuPgORpU3sKHco/s1600/Time+Mobile+Portrait.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjERGcEQmUzSHrwOcrYDQfbPqu22LQE0Nx1pfMguZz-9eCjuDIfoooMzyxxieA3QBerpew8pSaxSncmvuxun7hP-YA5uwS4UmQYQ_klRhUdUFZudAgv3ThnLiQK-0tWdDuPgORpU3sKHco/s320/Time+Mobile+Portrait.jpg&quot; height=&quot;320&quot; width=&quot;204&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Designing webpages in a way that webpage adapts to the visible area (Width and Height) of the screen.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Page layout should expand or shrink smoothly and alter itself to optimize and enhance the user experience.&lt;/li&gt;
&lt;li&gt;Term &quot;Responsive design&quot; is generally used in the context of mobile devices but responsive design also covers wide screen devices like Smart TV and Gaming Consoles.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;There is possibility of size related issued in wide screen devices, so that should also be considered.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Earlier web pages were mostly being viewed in desktops but the same is not true today. Today we don&#39;t know the size of the device where our webpage will be viewed. Thus the need for webpages to be designed for various screen sizes and browsers.&lt;/li&gt;
&lt;li&gt;Adaptability is the buzz word for Responsive Design. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Focus on more than just Phablets&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Different UI Device sizes -&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Smartphones&lt;/li&gt;
&lt;li&gt;Tablets&lt;/li&gt;
&lt;li&gt;Desktops&lt;/li&gt;
&lt;li&gt;Wide Screen Smart TVs and Gaming Console&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Mobile First Design Approach&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Its a good practice to design first for the mobile in a linear manner and then organize the widgets for wider screens.&lt;/li&gt;
&lt;li&gt;Designing for the mobile environment comes with a natural set of constraints.&lt;/li&gt;
&lt;li&gt;These constraint provides the much needed focus and are good for the overall User Experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4&gt;
Importance of Unlearning&lt;/h4&gt;
We need to forego outdated information and learn new age knowledge.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Earlier TV used to be called Radio with pictures. Radio programs are supplemented with running commentary because expressions, movement of actors was not visible.&amp;nbsp;Older TV programs also used to be supplemented with running commentory though not needed.&lt;/li&gt;
&lt;li&gt;Traditionally designing was always done for a constraint canvas whether it is -&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Cave Painting (where cave wall was our canvas)&lt;/li&gt;
&lt;li&gt;Stone sculpture (where stone was the canvas)&lt;/li&gt;
&lt;li&gt;Painting&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Newpaper Design&lt;/li&gt;
&lt;li&gt;Business Card Design&lt;/li&gt;
&lt;li&gt;Wedding Card Design (list is endless).&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Even most of the webpages were designed with desktops in mind.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
A Not that Good Solution Approach&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Device Experience&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Having different website for mobile and desktops:&lt;/li&gt;
&lt;li&gt;It&amp;nbsp;doesn&#39;t address the problem of adaptability.&lt;/li&gt;
&lt;li&gt;We are&amp;nbsp;still applying constraints on our design.&lt;/li&gt;
&lt;li&gt;URLS cannot be shared between devices.&lt;/li&gt;
&lt;li&gt;Doesn&#39;t address the landscape and portrait layouts on the mobile devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4&gt;
Related Points to remember&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Mobile Users Deserve the Same Quality of Browsing Experience.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;A simple HTML file in a web browser automatically adapts to fit the width of that browser. We have been breaking the responsiveness of the web over the years by designing to constraints.&lt;/li&gt;
&lt;li&gt;Mobile browsers have the ability to take the full-size webpage and scale it to fit on the browser&#39;s screen. This gives users the ability to pinch and zoom in order to read it.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The idea for responsive design is that user should not be doing pinch and zoom to read it, content should get rearranged for the optimal user experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Hover can&#39;t be used on Smartphones and many other devices, thus special care is needed while designing websites relying on Hovers.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Most touch devices activate the hover state on tap.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;There is a need to ensure sufficient spaces between the two actions (navigations/buttons etc), this is needed to ensure that user could easily tap with the fingers.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Font Selection, Menus, Links should also consider different devices. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;If the requirement is not to expand or shrink the image with the window size but just reducing the width of the image by hiding the overflow the image, then consider using background image. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;Steps to Responsive Design&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Responsive design uses  feature detection (mostly on the client) to determine available device  capabilities and adapt accordingly.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Responsive design is achieved with a combination of following to change layout based of the size of the viewport: &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ol type=&quot;A&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;u&gt;Flexible Grids&lt;/u&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;As much as possible use proportions for&amp;nbsp;measurement&amp;nbsp;and never design for a fixed layout.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Width, Font size also should be relative (width in percentage and Font Size in ems).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Margins, Padding should also be relative.&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ol type=&quot;A&quot;&gt;
&lt;li value=&quot;2&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;u&gt;Flexible Images and Media&lt;/u&gt;,&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Width of images should always be entered and needs to be relative.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Max-Width should be set to 100%.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;Wide images overflow out of the containing window if the size is reduced. &quot;Max-Width&quot; prevents the value of width property from becoming larger than max-width.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;With max-width property set, img element will render at whatever size it wants, as long as it’s narrower than its containing element.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;It gives us floating image.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; img,&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; embed,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 19px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;object,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 19px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 19px;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;video {&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 19px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 80px;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;max-width: 100%;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-left: 80px;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;height:auto;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-left: 80px;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;// To ensure the image is not getting distorted.&lt;/span&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 19px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;If we wish to hide the excess image data, we can also use &lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;overflow:hidden&quot;&lt;/span&gt;&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ol type=&quot;A&quot;&gt;
&lt;li value=&quot;3&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;u&gt;Media Queries&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Media Queries is a CSS3 module allowing content rendering to adapt to conditions such as screen resolution (e.g. smartphone vs. high definition screen).&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;It is cornerstone of Responsive Web Design.&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;It is an improvement on CSS2 Media Types, which allowed us to provide different CSS properties for different media types, thus allowed us to control the document presentation on different devices.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Refer to W3C specification for more details.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Different Media Types -&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;all, braille, embossed, handheld, print, projection, screen, speech, tty, and tv.&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt; &lt;/span&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Example -&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;main.css&quot; media=&quot;screen&quot; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;@media screen {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; .container {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width: 90%;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@media &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;color: blue; font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;handheld &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; body {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; font-size: 110%;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Media types were first towards in the direction of Responsive Design but not sufficient for Responsive Design thus came Media Queries.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Media Queries are used to customize CSS for specific types of media, inspecting the physical characteristics of the devices and browsers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Following are the two components of Media Queries:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Media Type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Condition comparing a feature to a value in parenthesis.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;We can have more than one condition linked with And/Or etc. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Popularly used to compare &lt;b&gt;width &lt;/b&gt;but other features like height, device-width, device-height, orientation, aspect-ratio, device-aspect-ratio, color, resolution, scan etc.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Examples:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;style_screen_wide.css&quot; media=&quot;screen and (min-width: 960px)&quot; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;@import url(&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;style_screen_wide&lt;/span&gt;&lt;/span&gt;.css&quot;) screen and (min-width: 960px);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;@media screen and (min-width: 960px) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; .container{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; width : 90%;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;@media screen and (min-device-width: 480px) and (orientation: landscape)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt; &lt;/ul&gt;
&lt;/ul&gt;
&lt;ol type=&quot;A&quot;&gt;
&lt;li value=&quot;4&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;u&gt;Viewport Meta Tag&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Term &#39;Viewport&#39; refers to window of the browser. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt; &lt;/span&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Used along with Media Queries to control the responsive design.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt; &lt;/span&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Mobile browsers have the ability to take the full-size webpage and scale  it to fit on the browser&#39;s screen. The default window size of the page is taken as 980px and then browser scales it to the mobile&#39;s width.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;This is because before responsive design became popular, the expectation was to get fix-width desktop experience on mobile device.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;   &lt;/span&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;To overcome this Apple introduced the viewport meta tag, most others adopted this but its still not a standard from w3c.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Viewport metatag is placed inside the head and is used to control the scale of the page.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Viewport tag allows us to control the size of that canvas, and override that default behavior.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Examples -&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=320&quot; /&amp;gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;span style=&quot;font-family: inherit; font-size: 19px;&quot;&gt;&amp;nbsp;&amp;nbsp; //&amp;nbsp; Bad Idea because of hardcoding width to 320px.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1.0, width=device-width&quot; /&amp;gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: inherit; font-size: 19px;&quot;&gt; //&amp;nbsp; setting the width to 100% of the width of device.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;   &lt;/span&gt;
&lt;li type=&quot;square&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;Initial scale means default view is without zoom, we could also set the max-scale if we wish to disable (value = 1) or restrict the feature of pinch and zoom to 200% or any other value.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ol type=&quot;A&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li type=&quot;A&quot; value=&quot;5&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;&lt;u&gt;Breakpoints&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;On altering the screensize(growing or shrinking), we&#39;ll reach a point where the layout design will get altered to suite this new size like rearranging of fields, shift from 3-column layout to&amp;nbsp; 2-column or stack, Font sizes will reduce etc.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;How many breakpoints and where to set them depends on the website, but there are few tools which can help in this. Ex. web developer extension from chrispederick.&lt;/span&gt;&lt;/li&gt;
&lt;li type=&quot;circle&quot;&gt;&lt;span style=&quot;color: blue; font-size: 19px;&quot;&gt;Examples - &lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;480px&amp;nbsp; - Smaller smartphone screen sizes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;768px&amp;nbsp; - Larger smartphones and smaller tablets&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;768px&amp;nbsp; - Large tablet screens and desktops screens.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;320px&amp;nbsp; - Low resolution phones and other devices like barcode reader&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 19px;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;1024px - Wide screens devices&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Cross Browser Testing Tools&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;There are many services for performing cross-browser testing, following are few examples:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;browserstack.com&lt;/li&gt;
&lt;li&gt;crossbrowsertesting.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Support for Older Browsers&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Following are helpful when it comes to support HTML5 and CSS 3 features in older browsers:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;caniuse.com&lt;/li&gt;
&lt;li&gt;modernizr&lt;/li&gt;
&lt;li&gt;html5shiv&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;There are many JS based solutions available for HTML5 and CSS3 features not available in older browsers. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Some Words of Caution&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Most responsive websites take more time to load.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A responsive website deliver large amounts of code (which is even more when a RWD framework is used) irrespective of the device.&lt;/li&gt;
&lt;li&gt;Processing power/Rendering capabilities of a smartphone are much lower than the desktop, the amount content/data/code greatly impacts the rendering time.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Compress page resources (using GZIP etc) for easier transmission across networks is a good practice.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Modular/Multiple css files are very convenient for development but not ideal scenario for deployment. Using CSS Preprocessor like SASS, LESS etc help in easy management of CSS during development as well as production.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Reducing the image sizes using tools like &lt;b&gt;tinypng&lt;/b&gt; can reduce data transmission.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Using service like &lt;b&gt;adaptive-images.com&lt;/b&gt;, which detects your visitor&#39;s screen size and automatically creates, caches, and delivers device appropriate re-scaled versions of your web page&#39;s embeded HTML images.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;A Content Delivery Network (Network of various servers to serve content at various locations to reduce network time) for Static Content can improve performance.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Using a Content Management System can also help in improving performance.&amp;nbsp;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4&gt;
Few Popular examples of Responsive Websites:&lt;/h4&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Time.com&lt;/li&gt;
&lt;li&gt;living.is &lt;/li&gt;
&lt;li&gt;Expedia.com&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpDV0ZQjQumfaaWoLvOxTIJ026N6VcdUVWyWeBSo0-a94oIKuGiLdm7RJqr4_hARzn3ec4gu81wLfFl8I9TX3cIMS-_rX8FVf37ITtzawGL_eNRDPEuGbhkNFUpdpuf-3zxl1SGFbnusc/s1600/Desktop+view+of+living.is.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpDV0ZQjQumfaaWoLvOxTIJ026N6VcdUVWyWeBSo0-a94oIKuGiLdm7RJqr4_hARzn3ec4gu81wLfFl8I9TX3cIMS-_rX8FVf37ITtzawGL_eNRDPEuGbhkNFUpdpuf-3zxl1SGFbnusc/s640/Desktop+view+of+living.is.png&quot; height=&quot;388&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyvHsxiE3fCZKokZGw2-UvDMfyNd7Q9DuacRECu9jSqp5gPtpwt_uQX6EN6-SJV1tsnrGvM1gtgdq80WGci5WLhigiwp9y5Cf6DM53qFdMsPsFkDCKKH49HNMUQSNXU37UV7CGj8yy40g/s1600/Desktop+view+of+living.is2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyvHsxiE3fCZKokZGw2-UvDMfyNd7Q9DuacRECu9jSqp5gPtpwt_uQX6EN6-SJV1tsnrGvM1gtgdq80WGci5WLhigiwp9y5Cf6DM53qFdMsPsFkDCKKH49HNMUQSNXU37UV7CGj8yy40g/s640/Desktop+view+of+living.is2.png&quot; height=&quot;384&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtzZ1CIuc999iRppUM3jwEkP3eaQgReWcmn6T25GR6E4FNu55slzEBa1s5HPPGfnGGTl1zpB6qfRm8MG4Bb3-VnghaM31EZnSO5rHMbNlm9GTBEXRBSFWcg5BHP6XTY9wptvX1DJOYUoI/s1600/Smartphone+view+of+living.is.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtzZ1CIuc999iRppUM3jwEkP3eaQgReWcmn6T25GR6E4FNu55slzEBa1s5HPPGfnGGTl1zpB6qfRm8MG4Bb3-VnghaM31EZnSO5rHMbNlm9GTBEXRBSFWcg5BHP6XTY9wptvX1DJOYUoI/s400/Smartphone+view+of+living.is.png&quot; height=&quot;400&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcLbDnzB0EMMKhOoZXfB0nufOpX1qD8lkWEh_YXYtywKGJy_E62Jppd5hVZGiIgpNT_pw9fXq4miOSW_j0MoXqaFs-qQSBiCW4uQkRo1Oe7zc5ouTfQbWoGaUGAsL9k-2529KDZ2nW92A/s1600/Smartphone+view+of+living.is2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcLbDnzB0EMMKhOoZXfB0nufOpX1qD8lkWEh_YXYtywKGJy_E62Jppd5hVZGiIgpNT_pw9fXq4miOSW_j0MoXqaFs-qQSBiCW4uQkRo1Oe7zc5ouTfQbWoGaUGAsL9k-2529KDZ2nW92A/s320/Smartphone+view+of+living.is2.png&quot; height=&quot;320&quot; width=&quot;196&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;nbsp;&lt;/h4&gt;
&lt;h4&gt;
Key Terms&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Adaptive Design&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Another term for RESS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Breakpoint&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;On altering the screensize(growing or shrinking), we&#39;ll reach a point where the layout design will get altered to suite this new size like rearranging of fields, shift from 3-column layout to &amp;nbsp;2-column or stack, Font sizes will reduce etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Device Experience&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Design strategy with different websites for each device. It is used for&amp;nbsp;maximum optimization for each type of device.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Display Area&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Browser&#39;s viewport.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Media Type&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;First Attempt at the responsive design, part of CSS2 specification.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;HTML 4 and CSS2 currently support media-dependent style sheets tailored for different media types.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;/span&gt;Created by W3C for classifing each browser or device under a broad, media-specific category.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;/span&gt;The recognized media types are: all, braille, embossed, handheld, print, projection, screen, speech, tty, and tv.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Media Query&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Media queries extend the functionality of media types by allowing more precise labeling of style sheets&lt;/li&gt;
&lt;li&gt;A media query consists of a media type and zero or more expressions that check for the conditions of particular media features. Among the media features that can be used in media queries are &#39;width&#39;, &#39;height&#39;, and &#39;color&#39;. By using media queries, presentations can be tailored to a specific range of output devices without changing the content itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Multi-Channel / Omni Channel&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;In simple terms - Multi-Device &lt;/li&gt;
&lt;li&gt;Refers to multiple channels to content delivery - Smart Phones, Tablets, Desktop, Wide Screen Devices etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Rendering Surface&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Entire display of the device.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;RWD&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Responsive Web Design&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Viewport&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Window of the browser.&lt;/li&gt;
&lt;li&gt;It has nothing to do with the device.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
What Next ? -&amp;nbsp;RESS&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Responsive Design with Server Side components.&lt;/li&gt;
&lt;li&gt;Also referred to as &quot;Adaptive Design&quot;. &lt;/li&gt;
&lt;li&gt;This is second generation of RWD which takes performance into account. [Refer to related section - Some Words of Caution]&lt;/li&gt;
&lt;li&gt;RESS can deliver the best of &quot;Responsive Design&quot; and &quot;Device Experience&quot; without the challenges that can hamper each.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Server will deliver code and content based on the client device allowing responsive website to load much faster on different devices.&lt;/li&gt;
&lt;li&gt;Server-side techniques include user agent detection, server-side breakpoints, and robust server-side feature detection.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Feature Detection vs Device Detection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Feature detection framework runs a test in the browser to get a boolean answer as output: &quot;Is X Supported?&quot; and the answer is mostly &quot;true&quot; or &quot;false&quot;. &amp;nbsp;It works on all browsers (current and future). Ex Modernizr.&lt;/li&gt;
&lt;li&gt;Device Detection framework analyses the HTTP header of the device, to get information about the device, then gets capabilities for that device from a database maintained for this purpose.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Cookie can be used to share the information between client and Server.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/453292227798858939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2014/01/responsive-web-design.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/453292227798858939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/453292227798858939'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2014/01/responsive-web-design.html' title='Responsive Web Design'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOMrtBY9FNjmf0gpoCwQ0jxHWwcRzZbvlEjDK9R9iGRC1hOk2V-5QAg5JKEZpqx_mqrV_XVAAkQEpYvf9Z_RmvDnWx2nPblUjuU3udETj8RcLR5SgSBzjYuU_End9uHza9F2IPRnrsRiI/s72-c/TimeDesktop.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-7043583005680851376</id><published>2013-12-30T16:52:00.001+05:30</published><updated>2013-12-30T16:52:51.394+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSON"/><title type='text'>A short guide to JSON - JavaScript Object Notation</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JavaScript Object Notation&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: purple;&quot;&gt;Lightweight, open standard, human-readable, language/platform independent and self-describing&lt;/span&gt; text-based designed for storing and transferring structured data.&lt;/li&gt;
&lt;li&gt;This format was specified by Douglas Crockford. &amp;lt;LINK&amp;gt;&lt;/li&gt;
&lt;li&gt;JSON Internet Media type is application/json.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Use Cases:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Serializing and transmitting structured data over network connection.&lt;/li&gt;
&lt;li&gt;Web Services and API&#39;s use JSON format to provide public data.&lt;/li&gt;
&lt;li&gt;Fetch JSON data from a web server, convert it to a JavaScript object, use it to manipulate the UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Advantages:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Easy for computers and humans to read and write.&lt;/li&gt;
&lt;li&gt;Supports tree like Hierarchies in data.&lt;/li&gt;
&lt;li&gt;Can be easily mapped to data structures used by most programming languages (numbers, strings, booleans, nulls, arrays and associative arrays).&lt;/li&gt;
&lt;li&gt;Most programming languages support JSON.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Limitations:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Capable of representing numbers, booleans, strings, null, and arrays and objects. Doesn&#39;t natively support complex data types like functions, regular expressions, dates etc.&lt;/li&gt;
&lt;li&gt;Doesn&#39;t have a widely accepted schema for defining and validating the structure of JSON data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Syntax:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;JSON defines only two data structures: objects and arrays. An object is a set of name-value pairs, and an array is a list of values. &lt;/li&gt;
&lt;li&gt;JSON defines six data types: string, number, object, array, true, false and null.&lt;/li&gt;
&lt;li&gt;Objects are enclosed in braces ({}).&lt;/li&gt;
&lt;li&gt;Name and value in a pair are separated by a colon (:).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Name-Value pairs are separated by a comma (,).&lt;/li&gt;
&lt;li&gt;Names in an object are strings, whereas values may be of any of the six data types, including another object or an array.&lt;/li&gt;
&lt;li&gt;Arrays are enclosed in brackets ([]), and their values are separated by a comma (,). &lt;/li&gt;
&lt;li&gt;Each value in an array may be of a different type, including another array or an object.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JSON Example:&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
var emptyObj = {};&lt;br /&gt;&lt;br /&gt;var empObj = {eid: &#39;7918&#39;, ename: &#39;Prince&#39;, grade: &#39;T3&#39;};&lt;br /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
{&lt;br /&gt;&quot;empObjs&quot;: [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &quot;eid&quot;:&quot;7918&quot; , &quot;ename&quot;:&quot;pkapoor&quot;, &quot;grade&quot;:&quot;T2&quot; }, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &quot;eid&quot;:&quot;709&quot; , &quot;ename&quot;:&quot;jai&quot;, &quot;grade&quot;:&quot;T4&quot; }, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &quot;eid&quot;:&quot;13386&quot; , &quot;ename&quot;:&quot;rahul&quot;, &quot;grade&quot;:&quot;T3&quot; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt;}&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Deserialize JSON&amp;nbsp;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Javascript eval() and JSON Parsor:&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;var txt = &#39;{&quot;empObjs&quot;:[&#39; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;{&quot;eid&quot;:&quot;7918&quot;,&quot;ename&quot;:&quot;pkapoor&quot; },&#39; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;{&quot;eid&quot;:&quot;709&quot;,&quot;ename&quot;:&quot;jai&quot; },&#39; +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;{&quot;eid&quot;:&quot;13386&quot;,&quot;ename&quot;:&quot;rahul&quot; }]}&#39;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var obj = JSON.parse(txt);&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;// var obj = eval (&quot;(&quot; + txt + &quot;)&quot;);&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;document.getElementById(&quot;eid&quot;).innerHTML=obj.employees[1].eid &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;document.getElementById(&quot;ename&quot;).innerHTML= obj.employees[1].ename &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Serialize JSON&amp;nbsp;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;JSON Stringify&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;JSON.stringify() outputs JSON strings with all whitespace removed. It makes it more compact for sending around the web.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;/* Put this line in above example and print the value. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var text = JSON.stringify(obj);&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JSON vs XML&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;JSON is smaller than XML, faster, easier to parse and more human readable format.&lt;/li&gt;
&lt;li&gt;XML is more verbose than JSON, so it&#39;s faster to write JSON for humans.&lt;/li&gt;
&lt;li&gt;JavaScript&#39;s eval method parses JSON. When applied to JSON, eval returns the described object.&lt;/li&gt;
&lt;li&gt;The Ajax (Asynchronous JavaScript And XML) originally used XML to transmit data between server and browser, but now JSON has become a more popular way to carry Ajax data.&lt;/li&gt;
&lt;li&gt;XML is a tried-and-tested technology and is used in a huge range of applications.&lt;/li&gt;
&lt;li&gt;Doesn&#39;t have a widely accepted schema for defining and validating the structure of JSON data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JSON and Java&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Java APIs for JSON processing are easily available and easy to use..&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
javax.json package - contains reader, writer, model builder interfaces for the object model along with other utility classes and Java types for JSON elements.&lt;br /&gt;javax.json.stream package - contains a parser interface and a generator interface for the streaming model.&lt;br /&gt;Refer to http://docs.oracle.com/javaee/7/tutorial/doc/jsonp001.htm for more details.&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JSON and AJAX&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The Ajax (Asynchronous JavaScript And XML) originally used XML to transmit data between server and browser, but now JSON has become a more popular way to carry Ajax data.&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
For Further Reading:&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
JSONPath&lt;br /&gt;JXON&lt;br /&gt;JSON-LD&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Reference&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
http://docs.oracle.com/javaee/7/tutorial/doc/jsonp001.htm#BABEECIB&lt;br /&gt;http://www.json.org/js.html&lt;br /&gt;http://www.youtube.com/watch?v=wbB3lVyUvAM&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/7043583005680851376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/12/a-short-guide-to-json-javascript-object.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7043583005680851376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7043583005680851376'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/12/a-short-guide-to-json-javascript-object.html' title='A short guide to JSON - JavaScript Object Notation'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-2706582894468762743</id><published>2013-11-22T03:08:00.000+05:30</published><updated>2014-05-10T14:12:00.467+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java Virtual Machine - Loading, Linking and Initializing</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-garbage-collection.html&quot; target=&quot;_blank&quot;&gt;Previous: Java Virtual Machine - Garbage Collection&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Loading &lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Process of finding the binary representation of a class or interface type with a particular name and creating a class or interface from that binary representation. &lt;/li&gt;
&lt;li&gt;(JVM Specification: ) Java Virtual Machine specification gives implementations flexibility in the timing of class and interface loading.&lt;/li&gt;
&lt;li&gt;Internal data structures are populated including Method area.&lt;/li&gt;
&lt;li&gt;An instance of class &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;java.lang.Class&lt;/i&gt;&lt;/span&gt; for the class being loaded is created.&lt;/li&gt;
&lt;li&gt;Information about a type that is stored in the internal data structures and accessed by invoking methods on the Class instance for that type.&lt;/li&gt;
&lt;li&gt;If Class Loader encounters a problem, it is reported during linking phase (LinkageError) on first active use of the class.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Linking&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A class or interface is completely loaded before it is linked.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Process of taking a class or interface and combining it into the run-time state of the Java Virtual Machine so that it can be executed.&lt;/li&gt;
&lt;li&gt;Linking a class or interface involves verifying and preparing that class
 or interface, its direct superclass, its direct superinterfaces. &lt;/li&gt;
&lt;li&gt;Dynamic linking involves locating classes, interfaces, 
fields, and methods referred to by symbolic references stored in the 
constant pool, and replacing the symbolic references with direct 
references.&lt;/li&gt;
&lt;li&gt;Linking is divided into three sub-steps: &lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #c27ba0;&quot;&gt;verification, preparation, and resolution&lt;/span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #c27ba0;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Verification &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;ensures the type is properly formed and fit for use by the Java Virtual Machine.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Verification ensures that the binary representation of a class or interface is structurally correct.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Verification may cause additional classes and interfaces to be loaded but need not cause them to be verified or prepared. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Final classes/methods, abstract classes/methods validations are checked here.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #c27ba0;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Preparation &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;involves allocating memory needed by the type, such as memory for any class variables.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Involves creating the static fields for a class or interface
 and initializing such fields to their default values (initializing to other values except default values is done in Initialization where explicit initializers are executed). &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #c27ba0;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Resolution &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;is the process of transforming symbolic references in the constant pool into direct references.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It is an optional part of linking.&lt;/li&gt;
&lt;li&gt;Implementations may delay the resolution step until each symbolic reference is actually used by the running program.&lt;/li&gt;
&lt;li&gt;After verification, preparation, and (optionally) resolution are completed, the type is ready for initialization. Resolution, which may optionally take place after initialization.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;(JVM Specification: ) Java Virtual Machine specification gives implementations flexibility in the timing of class and interface linking.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Initialization&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Initialization of a class or interface consists of executing the class or interface initialization method &amp;lt;clinit&amp;gt;.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;clinit&amp;gt; is static and has no arguments and is for static initialization blocks. &lt;/li&gt;
&lt;li&gt;If there is no initialization of class variables in the code, compiler will not generate &amp;lt;clinit&amp;gt; method&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Class variables are initialized during Initialization phase.&lt;/li&gt;
&lt;li&gt;Initialization of a class or interface requires careful synchronization,
 since some other thread may be trying to initialize the same class or 
interface at the same time.&lt;/li&gt;
&lt;li&gt;(JVM Specification: ) All implementations must initialize each class and interface on its first active use. &lt;/li&gt;
&lt;li&gt;Involves creating the static fields for a class or interface
 and initializing such fields to their default values (initializing to 
other values except default values is done in Initialization where 
explicit initializers are executed). &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Class-In-Use (Working with Objects)&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;For each constructor in the source code of a class, the Java compiler generates one &amp;lt;init() method.&lt;/li&gt;
&lt;li&gt;If the class declares no constructors explicitly, the compiler generates a default no-arg constructor that just invokes the superclassís no-arg constructor.&lt;/li&gt;
&lt;li&gt;For every class except Object, an &amp;lt;init() method must begin with an invocation of another &amp;lt;init() method belonging either to the same class or to the direct superclass.&lt;/li&gt;
&lt;li&gt;Instance initialization methods may be invoked only by the invokespecial
 instruction (§invokespecial), and only on uninitialized class 
instances. &lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1MCX44MzHhoEKH0NoZQolsZkkCpdFHoRt-0Onp7KWM7HZnSLME7WDcDDBzvm_sb_gclEVWp6SThtF8_9hiogXd9x8HSBzcAJ4H-N3UU9pPkJa260wP8luzOxsZ5tP3p6oi9nfFZPW3s/s1600/Lifecycle+of+class.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1MCX44MzHhoEKH0NoZQolsZkkCpdFHoRt-0Onp7KWM7HZnSLME7WDcDDBzvm_sb_gclEVWp6SThtF8_9hiogXd9x8HSBzcAJ4H-N3UU9pPkJa260wP8luzOxsZ5tP3p6oi9nfFZPW3s/s640/Lifecycle+of+class.png&quot; height=&quot;67&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Unloading Class&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Java Virtual Machine will run a class&#39;s classFinalize() method (if the class declares one) before it unloads the class.&lt;/li&gt;
&lt;li&gt;If the application has no references to the type, then the type can&#39;t affect the execution of program and it can be garbage collected.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Class Loader&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;At run time, a class or interface is determined by a its binary name and defining class loader both.&lt;/li&gt;
&lt;li&gt;Class Loader deals with file system to load the files for the JVM, no other component in JVM needs to deal with file system.&lt;/li&gt;
&lt;li&gt;All Java virtual machines include one class loader that is embedded in the virtual machine, called Primordial class loader.&lt;/li&gt;
&lt;li&gt;Every Class object contains a reference to the ClassLoader that defined it.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Class.getClassLoader()&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Class LoaderTestClass loaded by class loader A, is not the same class as the class LoaderTestClass loaded with class loader B.&lt;/li&gt;
&lt;li&gt;There are following three types of class loaders:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bootstrap Class Loader&lt;/li&gt;
&lt;li&gt;System Class Loader&lt;/li&gt;
&lt;li&gt;Extension Class Loader&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Premordial (Bootstrap) Class Loader&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;It implements the default implementation of &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;loadClass&lt;/i&gt;&lt;/span&gt;().&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Written in native language. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;JVM assumes that it has access to a repository of trusted classes which can be run by the VM without verification.&lt;/li&gt;
&lt;li&gt;Java core API classes are loaded by the bootstrap (or primordial) Class Loader.&lt;/li&gt;
&lt;li&gt;Bootstrap ClassLoader searches in the locations (directories and zip/jar files) specified in the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;sun.boot.class.path&lt;/i&gt;&lt;/span&gt; system property.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;String bootClassPath = System.getProperty(&quot;sun.boot.class.path&quot;);&lt;/span&gt;&lt;/i&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Types loaded through the primordial class loader will always be reachable and never be unloaded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Application (System) Class Loader&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Application-specific classes are loaded by the system (or application) ClassLoaders.&lt;/li&gt;
&lt;li&gt;Our application&#39;s code is loaded using this.&lt;/li&gt;
&lt;li&gt;The system ClassLoader searches for classes in the locations specified by the classpath (set as the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;java.class.path&lt;/i&gt;&lt;/span&gt; system property) command-line variable passed in when a JVM starts executing.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;String appClassPath = System.getProperty(&quot;java.class.path&quot;);&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;sun.misc.Launcher$AppClassLoader&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Extensions Class Loader&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Loads the code in the extensions directories (&amp;lt;JAVA_HOME&amp;gt;/jre/lib/ext, or any other directory specified by the java.ext.dirs system property).&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;String extClassPath = System.getProperty(&quot;java.ext.dirs&quot;);&lt;/span&gt;&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;sun.misc.Launcher$ExtClassLoader&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Custom (User-Defined) Class Loader&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Subclass of the abstract class &lt;a href=&quot;http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;Java.lang.ClassLoader&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Method &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;loadClass &lt;/i&gt;&lt;/span&gt;is to be implemented.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;loadClass should be synchronized. &lt;/li&gt;
&lt;li&gt;Call findLoadedClass to check class is already loaded.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If we have the raw bytes, call defineClass to turn them into a Class object.&lt;/li&gt;
&lt;li&gt;If the resolve parameter is true, call resolveClass to resolve the Class object.&lt;/li&gt;
&lt;li&gt;If class not found, throw a &lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;ClassNotFoundException&lt;/span&gt;&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Every loaded class needs to be linked. This is done using the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;ClassLoader.resolve()&lt;/i&gt;&lt;/span&gt; method. This method is final. &lt;/li&gt;
&lt;li&gt;Following are the steps a class loader performs:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Check if the class was already loaded.&lt;/li&gt;
&lt;li&gt;If not loaded, ask parent class loader to load the class.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If parent class loader cannot load class, attempt to load it in this class loader.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHb5jQ67IgLXCeClqSVjKN2mYHQ9urveLeN0jYZYvPPFmJG33h_KoVxjvdM7OxC3Jg27uFpccXNXuum8xK1wO7xIxoAoOE3hbBC_RBZ91K74kBCvC3HPaLCPpmOEWg5TgrJhX2zEYnc2o/s1600/ClassLoader.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHb5jQ67IgLXCeClqSVjKN2mYHQ9urveLeN0jYZYvPPFmJG33h_KoVxjvdM7OxC3Jg27uFpccXNXuum8xK1wO7xIxoAoOE3hbBC_RBZ91K74kBCvC3HPaLCPpmOEWg5TgrJhX2zEYnc2o/s400/ClassLoader.png&quot; height=&quot;283&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Examples of Class Loaders:&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;java.net.URLClassLoader,&amp;nbsp;&lt;/li&gt;
&lt;li&gt;java.security.SecureClassLoader &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Related Terms and Concepts:&lt;/span&gt;&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;JVM Startup&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The
 Java Virtual Machine starts up by creating an initial class, which is 
specified in an implementation-dependent manner, using the bootstrap 
class loader.&lt;/li&gt;
&lt;li&gt;The Java Virtual Machine then links the initial class, initializes it, and invokes the public class method void main(String[]).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;In an implementation of the Java Virtual Machine, the initial class 
could be provided as a command line argument. Alternatively, the 
implementation could provide an initial class that sets up a class 
loader which in turn loads an application.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;JVM Dynamic Linking&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The process of JVM loading your program&#39;s classes and interfaces and hooking them together.&lt;/li&gt;
&lt;li&gt;Java Virtual Machine builds an internal web of interconnected classes and interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #674ea7;&quot;&gt;Binding&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Binding is the process by which a function written in a language 
other than the Java programming language and implementing a native 
method is integrated into the Java Virtual Machine so that it can be 
executed.&lt;/li&gt;
&lt;li&gt;Although this process is traditionally referred to as 
linking, the term binding is used in the specification to avoid 
confusion with linking of classes or interfaces by the Java Virtual 
Machine.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-garbage-collection.html&quot; target=&quot;_blank&quot;&gt;Previous: Java Virtual Machine - Garbage Collection&lt;/a&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/2706582894468762743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-loading-linking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/2706582894468762743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/2706582894468762743'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-loading-linking.html' title='Java Virtual Machine - Loading, Linking and Initializing'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh1MCX44MzHhoEKH0NoZQolsZkkCpdFHoRt-0Onp7KWM7HZnSLME7WDcDDBzvm_sb_gclEVWp6SThtF8_9hiogXd9x8HSBzcAJ4H-N3UU9pPkJa260wP8luzOxsZ5tP3p6oi9nfFZPW3s/s72-c/Lifecycle+of+class.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-4556599427225177248</id><published>2013-11-12T15:02:00.000+05:30</published><updated>2014-05-14T10:16:27.510+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java Virtual Machine - Garbage Collection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-memory-structure.html&quot; target=&quot;_blank&quot;&gt;Previous: Java Virtual Machine - Memory Structure&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-loading-linking.html&quot; target=&quot;_blank&quot;&gt;Next: Java Virtual Machine - Loading, Linking and Initializing&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Garbage Collection is not restricted to Java, its a generic concept that applies to most of the programming languages.&lt;/li&gt;
&lt;li&gt;Garbage collection is the process of automatically freeing objects that are 
no longer referenced by the program.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The garbage collector must determine which objects are no longer being 
referenced by the program.&lt;/li&gt;
&lt;li&gt;Garbage collector must run any finalizers of objects being freed.&lt;/li&gt;
&lt;li&gt;Garbage collection is automatic, thus it removes the possibility of 
developer errors due to incorrectly freeing of memory.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;i&gt;Runtime.gc()&lt;/i&gt;&lt;/span&gt; and &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;i&gt;System.gc()&lt;/i&gt;&lt;/span&gt; only suggests JVM to run Garbage Collection, it is not mandatory that Garbage Collection will definitely run after call to these methods.&lt;/li&gt;
&lt;li&gt;Java virtual machine has an instruction that allocates memory on the heap for a new object (created in source coce), but has no instruction for freeing that memory.
&lt;/li&gt;
&lt;li&gt;Garbage Collection in Java is carried by JVM&#39;s &amp;nbsp;daemon threads for Garbage Collection.&lt;/li&gt;
&lt;li&gt;Garbage collection was invented by John McCarthy around 1959 to solve problems in Lisp.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Java provides many garbage collectors, following are some examples:&lt;/h4&gt;
&lt;div style=&quot;font-weight: normal;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Parallel Scavenge&lt;/li&gt;
&lt;li&gt;Serial Garbage Collector&lt;/li&gt;
&lt;li&gt;Parallel New + Serial GC&lt;/li&gt;
&lt;li&gt;CMS (Concurrent Mark and Sweep)&lt;/li&gt;
&lt;li&gt;G1 (Garbage First, available in Java7)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Regarding JVM Specification:&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;JVM specification does not specify any particular garbage collection technique, the decision to choose the garbage collection algorithm is left to the discretion of the implementors as they better know the constraints of the target device.&lt;/li&gt;
&lt;li&gt;JVM specification mentions the need of garbage collection on heap, it leaves garbage collection or compacting the method area on implementers.&lt;/li&gt;
&lt;li&gt;A garbage collector is not strictly required but heap memory should be managed.&lt;/li&gt;
&lt;li&gt;The Java language specification states that a finalizer code will be executed only once.&amp;nbsp;Finalizer are allowed to &quot;resurrect&quot; the object again, that is it&#39;ll be referenced again, but finalizer will not run next time.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4&gt;
Additional Responsibilities:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Heap Defragmentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4&gt;
Disadvantages:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Developer has no control on Garbage Collection, reducing the use the finalizers.&lt;/li&gt;
&lt;li&gt;At times, it may lead to uneven performance of the application components, as we don&#39;t know when Garbage collection will run and how much resources and time it&#39;ll consume.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Steps:&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Garbage Detection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Identification of live and garbage objects.&lt;/li&gt;
&lt;li&gt;Objects on heap which don&#39;t have any active references are available for garbage collection.&lt;/li&gt;
&lt;li&gt;This process is also called Marking.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Reclaim Memory&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Removes unreferenced objects leaving referenced objects and pointers to free space.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Optional Step: Compacting&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Defragments the memory space, compacts the remaining referenced objects. This makes new memory allocation much easier and faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Stop the World Pauses:&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Stop-the-world is term for JVM stopping the application (all threads) from running to execute a GC.&lt;/li&gt;
&lt;li&gt;The interrupted tasks will resume only after the GC task has completed.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;GC tuning often means reducing this stop-the-world time.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h4&gt;
Disruptive Garbage Collection vs Deterministic Garbage Collection:&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Garbage collection with noticable Stop the World pauses are called Disruptive Garbage collection.&lt;/li&gt;
&lt;li&gt;Disadvantages - These are not suitable for Real-time systems. For end-users noticable pauses are irritating.&lt;/li&gt;
&lt;li&gt;Solution Approach - Garbage collection should work incrementally, on small areas of heap at a time.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If each incremental collection can be completed in &amp;lt; Threashhold time, then it is suitable for Real-time system.&lt;/li&gt;
&lt;li&gt;Example - &lt;b&gt;&lt;i&gt;Generational Collector&lt;/i&gt;&lt;/b&gt; used in Hotspot JVM, discussed below.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Tracing Garbage Collector:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Tracing garbage collectors are the most common type of garbage collector. They first determine which objects are reachable (or potentially reachable), and then discard all remaining objects. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Syntactic vs Semantic Garbage:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;The reachability definition of &quot;garbage&quot; is not optimal, as there are two cases.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;CASE #1: An object variable is now reassigned thus original object doesn&#39;t have any references left.&lt;/li&gt;
&lt;li&gt;CASE #2: An object is still available in the program, but it is not used anymore.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Syntactic Garbage (Objects that a program cannot possibly reach)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It&#39;ll handle CASE #1 but not CASE #2.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Semantic Garbage (Objects that a program will never use again)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It&#39;ll handle CASE #1 and CASE #2 both. &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Weak vs Strong References:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;An object is eligible for garbage collection if there are no strong (i.e. ordinary) references to it, even though there still might be some weak references to it.&lt;/li&gt;
&lt;li&gt;Weak Reference is usually reserved for a properly managed category of special reference objects which are safe to use even after the object disappears because they lapse to a safe value.&lt;/li&gt;
&lt;li&gt;Weak References will be discussed in another post soon.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4&gt;
Precise vs Conservative:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Collectors that correctly identify all references to an object are called&lt;b&gt;&amp;nbsp;precise (also exact or accurate) collectors.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Collectors that don&#39;t identify all references to an object correctly are called&amp;nbsp;&lt;b&gt;conservative or partly conservative collector.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Conservative garbage collectors have traditionally been used in conjunction with programming languages like C and C++, which were not originally designed with a garbage collector in mind.&lt;/li&gt;
&lt;li&gt;Conservative collectors assume that any bit pattern in memory could be a pointer if, interpreted as a pointer, it would point into an allocated object.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Moving (Compacting) vs Non-Moving (Non-compacting) Garbage Collectors&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A moving GC strategy appears costly and low performance but it gives better performance. Following are details on this:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Since memory is defragmented, large contigous memory is available, new objects can be allocated very quickly.&lt;/li&gt;
&lt;li&gt;No additional work is required to reclaim the space freed by dead objects; the entire region of memory from which reachable objects were moved can be considered free space.&lt;/li&gt;
&lt;li&gt;While moving the objects special care is needed for objects passed to native methods, as there might be native pointers pointing to this.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Updating references after moving objects is made simpler by adding another layer of abstraction in between. Object references will point to a table of object handles and not directly refer to objects. Thus after de-fragmentation, only the object handle table will get updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Garbage Detection:&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;An object becomes eligible for garbage collection if its all references are null, i.e. If its not reachable from any live threads or any static references.&lt;/li&gt;
&lt;li&gt;Achieved by defining a set of roots and determining reachability from the &lt;i&gt;roots&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;A distinguished set of objects are assumed to be reachable: these are known as the &lt;i&gt;roots.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Typically, set of roots include all the objects referenced from anywhere in the call stack, and any global variables. &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Object references in Local variables and&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Operand stack frame,&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Static members of classes in method area,&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Object references passed to currently executing native methods, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;An object is reachable if there is some path of references from the roots by which the executing program can access the object. Reachability is a transitive closure.&lt;/li&gt;
&lt;li&gt;The roots are always accessible to the program. Any objects that are reachable from the roots are considered live.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Objects that are not reachable are considered garbage.&lt;/li&gt;
&lt;li&gt;Cyclic dependencies are also taken care this way.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Approaches for Garbage Detection:&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;i&gt;&lt;b&gt;Tracing&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Trace the references from roots.&lt;/li&gt;
&lt;li&gt;Mark and Swipe is basic Tracing Collector.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;&lt;i&gt;Reference Counting&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Keeps count of the references to an object.&lt;/li&gt;
&lt;li&gt;Advantage - It can run in small chunks of time closely interwoven with the execution of the program. This characteristic makes it particularly suitable for real-time environments where the program can&#39;t be interrupted for very long.&lt;/li&gt;
&lt;li&gt;Disadvantage - It does not detect cycles: two or more objects that refer to one another.&lt;/li&gt;
&lt;li&gt;This technique is currently out of favor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Approaches for Heap Fragmentation Problem:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;i&gt;&lt;b&gt;Compacting Collector&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Slide/Move live objects to defragment the heap area.&lt;/li&gt;
&lt;li&gt;Examples:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Mark and Swipe&lt;/li&gt;
&lt;li&gt;Tri-color Marking&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;i&gt;&lt;b&gt;Copying Collector&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Copying garbage collectors move all live objects to a new area.&lt;/li&gt;
&lt;li&gt;Examples:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Stop-and-Copy&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Generational Garbage Collection&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The generational collection technique can be applied to mark and sweep algorithms as well as copying algorithms.&lt;/li&gt;
&lt;li&gt;Dividing the heap into generations of objects can help improve the efficiency of the basic underlying garbage collection algorithm.&lt;/li&gt;
&lt;li&gt;The most recently created objects are most likely to become unreachable quickly (known as infant mortality or the generational hypothesis).&lt;/li&gt;
&lt;li&gt;Heap is divided into two or more sub-heaps, each of which serves one &quot;generation&quot; of objects.&lt;/li&gt;
&lt;li&gt;The younger generation is garbage collected more frequently than older generation.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once an object has survived a few garbage collections as a member of the youngest generation, the object is promoted to the next generation: it is moved to another sub-heap. &lt;/li&gt;
&lt;li&gt;Every sub-heap except the mature sub-heap can be given a maximum size.&lt;/li&gt;
&lt;li&gt;Any objects that don&#39;t fit in the sub-heaps of the younger generations must go into the mature object space, thus mature object space cannot be given a maximum size.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;It ensures that most incremental GC will be complete in less than a threshhold time. Only exception is Mature Generation.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Following image shows generational garbage collection in Hotspot JVM:&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP4CgO4GMH3mPW301nPHsKXD8_IQgqlDxBfNR4ybo4FE2am_HBgDd4VULo6ZRqJKFvGAkXLcdJEthiwzmtR0AQMPe3aBOER_4XqGHkBOQtdZxX5HRSZ9TIfo3vZwUpNFRMbokBE5HNI4/s1600/jvm+hotspot+memory+model.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP4CgO4GMH3mPW301nPHsKXD8_IQgqlDxBfNR4ybo4FE2am_HBgDd4VULo6ZRqJKFvGAkXLcdJEthiwzmtR0AQMPe3aBOER_4XqGHkBOQtdZxX5HRSZ9TIfo3vZwUpNFRMbokBE5HNI4/s640/jvm+hotspot+memory+model.png&quot; height=&quot;129&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Train Algorithm:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Specifies an organization for the mature object space of a generational collector &lt;span style=&quot;color: blue;&quot;&gt;for time bound incremental collections of the mature object space&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;The train algorithm, which was first proposed by Richard Hudson and Eliot Moss and is currently used by Sun&#39;s Hotspot virtual machine.&lt;/li&gt;
&lt;li&gt;Divides the mature object space into &lt;span style=&quot;color: #674ea7;&quot;&gt;fixed-sized blocks of memory&lt;/span&gt;, each of which is collected individually during a separate invocation of the algorithm.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Each &lt;span style=&quot;color: #674ea7;&quot;&gt;block &lt;/span&gt;belongs to one &lt;span style=&quot;color: #351c75;&quot;&gt;set&lt;/span&gt;.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;The blocks within a set are ordered, and the sets themselves are ordered.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Small number indicate an older block within a set and Set with the heap.&lt;/li&gt;
&lt;li&gt;For more details on this alogorithm, please google or refer to references section at the end of the Blog post.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Types of Garbage Collectors (Garbage Collection Approaches/Strategies/Algorithms)&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Stop-and-Copy (Semi-space) Collector&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Memory is partitioned into a &quot;from space&quot; and &quot;to space&quot;.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Initially, objects are allocated into &quot;to space&quot; until they become full and a collection is triggered.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;At the start of a collection, the &quot;to space&quot; becomes the &quot;from space&quot;, and vice versa.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The objects reachable from the root set are copied from the &quot;from space&quot; to the &quot;to space&quot;.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Mark and Sweep&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This is an example of tracing collector.&lt;/li&gt;
&lt;li&gt;Each object in memory has a flag (typically a single bit) reserved for garbage collection use only.&lt;/li&gt;
&lt;li&gt;In Garbage detection, every object that is ultimately pointed to from the root set is marked.&lt;/li&gt;
&lt;li&gt;In Memory Reclaim step, entire memory is scanned, all non-reachable objects are freed.&lt;/li&gt;
&lt;li&gt;Disadvantage - Entire system must be suspended during garbage collection; no mutation of the working set can be allowed. This will cause programs to &#39;freeze&#39; periodically (and generally unpredictab&#39;ly), making real-time and time-critical applications impossible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Tri-Color Marking:&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This is an example of tracing collector.
&lt;/li&gt;
&lt;li&gt;White-Set (Condemned Set)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Objects that are candidates for having their memory recycled.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Black-Set&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Objects that can cheaply be proven to have no references to objects in the white set, but are also not chosen to be candidates for recycling; in many implementations, the black set starts off empty.&lt;/li&gt;
&lt;li&gt;In many implementations, the black set starts off empty. &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&amp;nbsp;Grey-Set&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Objects that are reachable from root references but the objects referenced by grey objects haven&#39;t been scanned yet.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The grey state means we still need to check any objects that the object references.&lt;/li&gt;
&lt;li&gt;Grey objects will eventually end up in the black set. &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&amp;nbsp;The grey set is initialised to objects which are referenced directly at root level; typically all other objects are initially placed in the white set.&lt;/li&gt;
&lt;li&gt;Objects can move from&lt;b&gt; white to grey to black&lt;/b&gt;, never in the other direction.&lt;/li&gt;
&lt;li&gt;Advantage: it can be performed &#39;on-the-fly&#39;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Mark and Don&#39;t sweep&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This is an example of tracing collector.&lt;/li&gt;
&lt;li&gt;All reachable objects are always black.&lt;/li&gt;
&lt;li&gt;A white object is unused memory and may be allocated.&lt;/li&gt;
&lt;li&gt;The interpretation of the black/white bit can change. Initially, the black/white bit may have the sense of (0=white, 1=black).&lt;/li&gt;
&lt;li&gt;If an allocation operation ever fails to find any available memory, the sense of the black/white bit is then inverted (0=black, 1=white). Thus all objects become white. A marking phase begins immediatly to mark reachable objects black.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Adaptive Collectors&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt; An adaptive algorithm monitors the current situation on the heap and adjusts its garbage collection algorithm and configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Oracle Java 7 G1 (Garbage First) Garbage Collector:&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Compact free space without lengthy and more predictable GC induced pause times.&lt;/li&gt;
&lt;li&gt;Its still not suitable for Real-Time systems.&lt;/li&gt;
&lt;li&gt;Targetted for multi-processors with large memories.&lt;/li&gt;
&lt;li&gt;G1 is both concurrent and parallel.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It uses all available CPUs to speed up its “stop-the-world” pauses.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;It also works concurrently with running Java threads to minimize whole-heap operations during stop-the-world pauses.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-memory-structure.html&quot; target=&quot;_blank&quot;&gt;Previous: Java Virtual Machine - Memory Structure&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-loading-linking.html&quot; target=&quot;_blank&quot;&gt;Next: Java Virtual Machine - Loading, Linking and Initializing&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/4556599427225177248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-garbage-collection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/4556599427225177248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/4556599427225177248'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-garbage-collection.html' title='Java Virtual Machine - Garbage Collection'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLP4CgO4GMH3mPW301nPHsKXD8_IQgqlDxBfNR4ybo4FE2am_HBgDd4VULo6ZRqJKFvGAkXLcdJEthiwzmtR0AQMPe3aBOER_4XqGHkBOQtdZxX5HRSZ9TIfo3vZwUpNFRMbokBE5HNI4/s72-c/jvm+hotspot+memory+model.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-782697193634432886</id><published>2013-11-04T09:31:00.001+05:30</published><updated>2014-05-10T14:11:25.838+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java Virtual Machine - Introduction</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-memory-structure.html&quot; target=&quot;_blank&quot;&gt;Next: Java Virtual Machine - Memory Structure &lt;/a&gt;&lt;/div&gt;
Typical Java Environment consists of following:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;Java Programming Language&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;JDK &lt;/li&gt;
&lt;li&gt;Source code is in Java.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Java Class File Format&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bytecode&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Java API&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Standard classes and interfaces of JDK.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;JVM&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Java Virtual Machine &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
JVM: &lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The Java Virtual Machine, or JVM, is code executing component of Java platform.&lt;/li&gt;
&lt;li&gt;Abstract machine that runs compiled Java programs.&lt;/li&gt;
&lt;li&gt;The JVM is &quot;virtual&quot; because it is implemented in software on top of a &quot;real&quot; hardware platform and operating system.&lt;/li&gt;
&lt;li&gt;The Java Virtual Machine is an abstract computing machine. Like a real computing machine, it has an instruction set and manipulates various memory areas at run time.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Oracle JVM specifications specifies an abstract machine, it doesn&#39;t describe any particular implementation of JVM.&lt;/li&gt;
&lt;li&gt;Java is for platform-independence, each Java platform has different 
constraints. Java specification doesn’t give hard and fast rules about 
the design of JVM with respect to memory and other aspects.&amp;nbsp;JVM is 
implemented specifically for each platform, and implementation of JVM is
 left to jvm implementers. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Role:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Read the Class file format (Bytecode) and correctly performs the operations specified in it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Key points:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Any implementation details like memory structures, garbage-collection 
etc are not part of the Java Virtual Machine&#39;s specification would 
unnecessarily constrain the creativity of implementers.&lt;/li&gt;
&lt;li&gt;The Java Virtual Machine knows nothing of the Java programming language, it only cares for Virtual Machine instructions (or bytecodes).&lt;/li&gt;
&lt;li&gt;All Java Virtual Machine implementations must recognize the Java class file format, but individual implementations may also recognize other binary formats. &lt;/li&gt;
&lt;li&gt;Any language with functionality that can be expressed in terms of a valid class file can be hosted by the Java Virtual Machine.&lt;/li&gt;
&lt;li&gt;For the sake of security, the Java Virtual Machine imposes strong syntactic and structural constraints on the code in a class file for security concerns.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Advantages:&amp;nbsp;&amp;nbsp; &lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Hardware and operating system independence.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Small size of its compiled code.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Protect users from malicious programs.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bytecode is carefully inspected by JVM before execution. &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JVM Implementation:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Like most virtual machines, the Java virtual machine machine has a 
stack-based architecture akin to a microcontroller/microprocessor.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;JVM doesn&#39;t have registers for storing arbitrary values. All computation in the JVM centers on the stack, everything must be pushed onto the stack before it can be used in a calculation.&lt;/li&gt;
&lt;li&gt;JVM are usually coded for a particular OS but it can also be coded directly on hardware. &lt;/li&gt;
&lt;li&gt;JVM also has low level support for Java like classes and methods, which amounts to a highly idiosyncratic memory model and capability-based architecture. &lt;/li&gt;
&lt;li&gt;JVM has no built-in support for dynamically typed languages.&lt;/li&gt;
&lt;li&gt;JVM supports following 7 primitive types:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;byte &amp;nbsp; &amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;one-byte signed two&#39;s complement integer&lt;/li&gt;
&lt;li&gt;short&amp;nbsp; &amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;two-byte signed two&#39;s complement integer &lt;/li&gt;
&lt;li&gt;int &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;4-byte signed two&#39;s complement integer&lt;/li&gt;
&lt;li&gt;long &amp;nbsp; &amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;8-b yte signed two&#39;s complement integer&lt;/li&gt;
&lt;li&gt;float&amp;nbsp;&amp;nbsp; &amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;4-byte IEEE 754 single-precision float&lt;/li&gt;
&lt;li&gt;double -&amp;nbsp;&amp;nbsp; &amp;nbsp;8-byte IEEE 754 double-precision float&lt;/li&gt;
&lt;li&gt;char&amp;nbsp;&amp;nbsp; &amp;nbsp; -&amp;nbsp;&amp;nbsp; &amp;nbsp;2-byte unsigned Unicode character &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Few Examples:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Most popular JVM implementation is from Oracle and is named HotSpot, written in C++.&lt;/li&gt;
&lt;li&gt;Jinitiator is another popular JVM implementation, especially in Oracle Apps community, developed by Oracle for supporting forms on websites before they purchased Sun.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Mac OS Runtime for Java (MRJ, originally Macintosh Runtime for Java).&lt;/li&gt;
&lt;li&gt;SAPJVM (SAP) is a licensed and modified SUN JVM ported to all supported platforms of SAP NetWeaver&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
About Bytecode&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Machine language of the Java virtual machine.&lt;/li&gt;
&lt;li&gt;Each instruction consists of a one-byte opcode(represents operation) followed by zero or more operands.&lt;/li&gt;
&lt;li&gt;An opcode may optionally be followed by operands(represents parameters required by opcodes).&lt;/li&gt;
&lt;li&gt;The total number of opcodes is less (~200), each opcodes requires only one byte.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This helps in minimizing the size of class files and JVM implementation.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Java Bytecode is an intermediate language which is typically compiled from Java but it can also be compiled from other programming language, ex ADA. &lt;/li&gt;
&lt;li&gt;Class files contain bytecode and a symbol table, as well as other ancillary information.&lt;/li&gt;
&lt;li&gt;Any language with functionality that can be expressed in terms of a valid class file can be hosted by the Java Virtual Machine.&lt;/li&gt;
&lt;li&gt;JVM has instructions for Load/Store of variables, Arithmetic, Type Conversions, Stack Management, Exception management, and Monitor based concurrency control etc.&lt;/li&gt;
&lt;li&gt;Examples of Opcodes:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;iload, lload, fload,&lt;/span&gt;&lt;/i&gt; and &lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;dload&amp;nbsp;&lt;/span&gt;&lt;/i&gt; are used to load int, long, float and double operand on the stack respectively.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;i&gt;istore, fstore &lt;/i&gt;&lt;/span&gt;are used to pop int and float from the stack to a variable.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;aload, astore&lt;/span&gt;&lt;/i&gt; operates on references.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;There is no support for loops and binary logical operators (|| &amp;amp;&amp;amp;). These are implemented by compiler with jump instructions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Class File&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Each class file contains the definition of a single class or interface.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;A class file consists of a stream of 8-bit bytes. All 16-bit, 32-bit, and 64-bit quantities are constructed by reading in two, four, and eight consecutive 8-bit bytes, respectively.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Multibyte data items are always stored in big-endian.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Execution Engine:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;It consists of following:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Bytecode Interpreter&lt;/li&gt;
&lt;li&gt;JIT (Just In Time) Compiler&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Since byte code is interpreted it executes slower than compiled machine code. &lt;/li&gt;
&lt;li&gt;Just-in-time compilation (JIT) is also known as dynamic translation.&lt;/li&gt;
&lt;li&gt;JIT is used to improve the runtime performance of byte code. &lt;/li&gt;
&lt;li&gt;The program is stored in memory as byte code, but the code segment currently running is preparatively compiled to physical machine code in order to run faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Virtual Processor&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
JRE: &lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Java Execution Environment (Java Runtime Environment).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;JRE contained JVM and java class libraries that implement java API. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Other JVM Languages&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Groovy&lt;/li&gt;
&lt;li&gt;Scala&lt;/li&gt;
&lt;li&gt;Jython&lt;/li&gt;
&lt;li&gt;JRuby&lt;/li&gt;
&lt;li&gt;Kotlin&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;a href=&quot;http://princekapoor82.blogspot.in/2013/11/java-virtual-machine-memory-structure.html&quot; target=&quot;_blank&quot;&gt;Next: Java Virtual Machine - Memory Structure &lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/782697193634432886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/782697193634432886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/782697193634432886'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/11/java-virtual-machine-introduction.html' title='Java Virtual Machine - Introduction'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-1095049807476188735</id><published>2013-10-03T15:23:00.001+05:30</published><updated>2013-11-22T03:39:49.195+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><title type='text'>Dependency Injection - An Introduction</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Dependency&lt;/h4&gt;
Dependency is when a class needs instances of another class to function correctly.&lt;br /&gt;
Following is an example of dependency:&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; class X&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; Y obj = new Y(&quot;xyz&quot;, &quot;abc&quot;) ;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Dependency Problems&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Dependencies are hardcoded.&lt;/li&gt;
&lt;li&gt;Unit testing becomes difficult as well, where we need to mock the depencies to perform isolated test cases.&lt;/li&gt;
&lt;li&gt;With dependencies like above, if different implementation of Y (with same interface) is needed. Actual code needs to be changed.&lt;/li&gt;
&lt;li&gt;Also the code here is not based on interface so its even further less flexible.&lt;/li&gt;
&lt;li&gt;If dependency class has further dependencies, those will be needed as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Dependency Injection&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Injecting Dependency from
(pushed from)&amp;nbsp;outside into a class at runtime.&lt;/li&gt;
&lt;li&gt;Dependent object instead of&amp;nbsp;instantiating dependencies using &quot;new&quot; operator from inside of the class should take dependent object via constructor parameters or setters.
&lt;/li&gt;
&lt;li&gt;It decouples class&#39;s construction from the construction of its dependencies.
&lt;/li&gt;
&lt;li&gt;Code should depend upon abstractions(interfaces) rathen than implementation(class references).&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #cc0000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Dependency Injection is for&lt;span style=&quot;font-size: large;&quot;&gt; Loose Coupling&lt;/span&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;An object&#39;s dependencies should be on interfaces and not on &quot;concrete&quot; objects.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Dependencies should be less.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Loose coupling promotes greater reusability, easier maintainability.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;class X&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;InterfaceY objY = null;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;X (InterfaceY dependencyObj)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; objY =&amp;nbsp;dependencyObj ;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them, whether at run-time or compile-time&lt;/li&gt;
&lt;li&gt;Its a configuration style of prorgamming, object is configured from outside (may be a configuration file) rather than inside.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Primary ways to implement Dependency Injection:&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Constructor Injection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;These are considered better than others since at the time of the creation of the class you know what is needed to perform its job.&lt;/li&gt;
&lt;li&gt;Easier to maintain.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Setter Injection&lt;/li&gt;
&lt;li&gt;Method Injection&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
How to manage and instantiates dependencies?&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Each of our classes require dependencies, we need to figure what dependency each class needs and how to instantiate the dependencies.&lt;/li&gt;
&lt;li&gt;The answer is Dependency Injection container.&lt;/li&gt;
&lt;li&gt;Dependency Injection container contains&amp;nbsp;map of dedencies needed by a class with the logic to create instances of those dependencies if needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Related Topics:&lt;br /&gt;
Dependency Inversion Principle&lt;br /&gt;
Inversion control Principle&lt;br /&gt;
Inversion of Control Container&lt;br /&gt;
Dependency Lookup&lt;br /&gt;
DI Container Implementations&lt;br /&gt;
Butterfly container&lt;br /&gt;
factory vs container&lt;br /&gt;
factory pattern vs DI Container&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/1095049807476188735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/10/dependency-injection-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1095049807476188735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1095049807476188735'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/10/dependency-injection-introduction.html' title='Dependency Injection - An Introduction'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-526496893099878299</id><published>2013-10-02T13:19:00.003+05:30</published><updated>2014-05-10T13:47:10.186+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>NESTED CLASSES - Static Nested and Inner Classes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
Nested Class:&lt;/h2&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Introduced in version 1.1 of Java.
&lt;/li&gt;
&lt;li&gt;Class within another Class.&lt;/li&gt;
&lt;li&gt;A nested class is a class whose definition appears inside the definition of another class, as if it were a member of the enclosing class.&lt;/li&gt;
&lt;li&gt;A nested class can be declared private, public, protected, or package private.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Nested class can be hidden from all other classes using &#39;private&#39; modifier.&lt;/li&gt;
&lt;li&gt;Nested Classes are compiled as separate class files with following format:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;EnclosingClass$InnerClass.class&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/span&gt;&lt;/b&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;EnclosingClass$StaticNestedClass.class&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To run main method of nested class, use &quot;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;java EnclosingClass$StaticNestedClass&lt;/span&gt;&lt;/b&gt;&quot;.&lt;/li&gt;
&lt;li&gt;Divided into two categories - static and non-static (Inner Classes)
&lt;/li&gt;
&lt;li&gt;Nested class may be nested within another Nested class.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTKKXWe7nZGukAqNL9KTz9OSlVMf11cCMV1JKvs3USHvTQ0JYvzBP_NGMfqa6HByaIwfutO5bsiwunQ9QTqR8QmTihi_iLIDeY_HURJAwvP0v_KeLdHHRA3g76Zliy3u-qBtkGE5WHvFk/s1600/Nested+Classes.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTKKXWe7nZGukAqNL9KTz9OSlVMf11cCMV1JKvs3USHvTQ0JYvzBP_NGMfqa6HByaIwfutO5bsiwunQ9QTqR8QmTihi_iLIDeY_HURJAwvP0v_KeLdHHRA3g76Zliy3u-qBtkGE5WHvFk/s640/Nested+Classes.png&quot; height=&quot;387&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; class EnclosingClass {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt; &lt;i&gt;static &lt;/i&gt;class StaticNestedClass {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;class InnerClass {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;...&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Features of Nested Classes:&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Non-static nested classes (inner classes) have access to other members of the enclosing class, even if they are declared private.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Static nested classes do not have access to other members of the enclosing class. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Inner class is associated with an instance of enclosing instance.&lt;/span&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;A static nested class is associated with enclosing class(not object).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;The way static methods cannot access non static members, static nested class cannot refer to non-static members without object reference.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Inner Class can access non-static members.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Inner class cannot have static members (except constants) because it is linked to an instance of enclosing class.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;A static nested class is same as any top-level class just that it has been packaged in another top-level class. Only difference is static nested class can access private static members.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Inner class instance knows about the enclosing class instance, it can access its members using &quot;&amp;lt;EnclosingClassName&amp;gt;.this&quot;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.&amp;lt;member-name&amp;gt; // Inner Class&#39;s member&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EnclosingClassName&amp;gt;.this.&amp;lt;member-name&amp;gt; &amp;nbsp;// Enclosing Class&#39;s member &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Static nested classes are known as nested top-level classes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;An enclosing class can have multiple inner classes extending other classes, thus providing a way to achieve multiple inheritence.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Inner class needn&#39;t be created at the time of creation of enclosing class, it can be created any time after that.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;An enclosing class can have multiple instances of same inner class, each with its own state. (Ex. multiple iterators for a rowset).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Typical Usage:&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Inner class extends another class or implements an interface (ex. java.util.Iterator).&amp;nbsp;Inner class can access outer class members and closely perform operations on them.&lt;/div&gt;
&lt;div&gt;
Used for writing test cases, since nested classes have access to private members.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Inner classes are best used in the event handling mechanism and to implement the helper classes.&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Why we need Inner Classes:&lt;/h4&gt;
&lt;div&gt;
In the above example, if Iterator would have been a class and not interface, then design couldn&#39;t have survived without Inner class, because a class can only extend one class (in that case only Iterator).&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Miscellaneous Facts on Nested Classes:&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Java supports the concept of nested classes in interfaces, though its a teriible programming practice.&amp;nbsp;Following code will compile:&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; public interface EnclosingInterface {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; void testMethod();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;class InnerClass {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;int x = 10;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void testx() {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(x);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Java supports nested interfaces within interfaces but its also a bad programming practice.&lt;/li&gt;
&lt;li&gt;Java supports nested interfaces within classes, though they are helpful in rare scenarios. These also can be avoided&amp;nbsp;with the use of top-level interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Local Classes &lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Local classes are classes that are defined in a block, typically inside a method body, though it can be within a loop, if-else blocks etc. &lt;/li&gt;
&lt;li&gt;Local classes (since its Inner Class) are non-static because they have access to instance members of the enclosing block. &lt;/li&gt;
&lt;li&gt;A local class (since its Inner Class) has access to the members of its enclosing class. &lt;/li&gt;
&lt;li&gt;Local classes (since its Inner Class) they cannot define or declare any static members or initializers except constants. &lt;/li&gt;
&lt;li&gt;Local classes defined in static methods, can only refer to static members of the enclosing class. &lt;/li&gt;
&lt;li&gt;A local class has access to final local variables as well. &lt;/li&gt;
&lt;li&gt;local class names are in this format: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;EnclosingFormat&amp;gt;$&amp;lt;number&amp;gt;&amp;lt;LocalClassName&amp;gt;.class&lt;/li&gt;
&lt;li&gt;&amp;lt;number&amp;gt; starts with 1, gets incremented by 1 and so on. &amp;lt;number&amp;gt; is coming here because class names can be repeated in different blocks.&lt;/li&gt;
&lt;li&gt;Ex. EnclosingClass$1LocalA.class, EnclosingClass$1LocalB.class&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Anonymous Classes&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;They are like local classes except that they do not have a name. &lt;/li&gt;
&lt;li&gt;Use them if you need to use a local class only once. &lt;/li&gt;
&lt;li&gt;They enable you to declare and instantiate a class at the same time.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;It is an abbreviated notation for creating a 
simple local object &quot;in-line&quot; within any expression, simply by wrapping 
the desired code in a &quot;new&quot; expression. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;While local classes are class declarations, anonymous classes are like expressions. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Anonymous class must be part of a statement since its like an expression.&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Anonymous classes enable you to make your code more concise. &lt;/li&gt;
&lt;li&gt;The syntax of an anonymous class expression is like the invocation of a constructor, except that there is a class definition contained in a block of code. &lt;/li&gt;
&lt;li&gt;Anonymous classes have the same access to local variables of the enclosing scope as local class. &lt;/li&gt;
&lt;li&gt;Anonymous classes also have the same restrictions as local classes with respect to their members &lt;/li&gt;
&lt;li&gt;you cannot declare constructors in an anonymous class. &lt;/li&gt;
&lt;li&gt;Since anonymous classes have no names, the Java compiler uses numbers to provide anonymous class names. Ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;EnclosingClass$1.class&lt;/span&gt;&lt;/b&gt;. &lt;/li&gt;
&lt;li&gt;The anonymous class expression consists of the following: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The new operator &lt;/li&gt;
&lt;li&gt;The name of an interface to implement or a class to extend. &lt;/li&gt;
&lt;li&gt;Parentheses that contain the arguments to a constructor. In case of implementing an interface, there shouldn&#39;t be any parameters. &lt;/li&gt;
&lt;li&gt;Body of class. Method declarations are allowed in body but statements are not.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Syntax: &lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;new class-name ( [ argument-list ] ) { class-body } &lt;br /&gt;or:&lt;br /&gt;new interface-name () { class-body }&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt; // No argument list with interface.&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;These are mostly used in event handling.&lt;/li&gt;
&lt;li&gt;They are useful for writing small encapsulated &quot;callbacks,&quot; such as enumerations, iterators, visitors, etc. &lt;/li&gt;
&lt;li&gt;Like local classes, anonymous classes cannot be public, private, protected, or static.&amp;nbsp;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4&gt;
When to use Member, Local and Anonymous classes? &lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;When to use anonymous classes and when to use local classes depends on number of instances needed. If number of instances are more, its local class. &lt;/li&gt;
&lt;li&gt;When to use local classs and when to use member class depend on the availability of the new type. If wide availability is needed, its member class. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
How Inner Classes are Implemented in JVM? &lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Inner classes were introduced in Java 1.1. &lt;/li&gt;
&lt;li&gt;Introduction of inner classes did not change the Java Virtual Machine or the Java class file format. &lt;/li&gt;
&lt;li&gt;For Java interpreter and JVM all classes are normal top-level classes. &lt;/li&gt;
&lt;li&gt;Java compiler inserts hidden fields, methods (getters for instance references), and constructor arguments into the classes it generates.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Java 8 Enhancements: &lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Local class can access local variables effectively final (whose value is never changed after initialization). &lt;/li&gt;
&lt;li&gt;Local class can access parameters of the enclosing block, i.e., method parameters in case Local class is defined in a method. &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/526496893099878299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/10/nested-classes-static-nested-and-inner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/526496893099878299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/526496893099878299'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/10/nested-classes-static-nested-and-inner.html' title='NESTED CLASSES - Static Nested and Inner Classes'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTKKXWe7nZGukAqNL9KTz9OSlVMf11cCMV1JKvs3USHvTQ0JYvzBP_NGMfqa6HByaIwfutO5bsiwunQ9QTqR8QmTihi_iLIDeY_HURJAwvP0v_KeLdHHRA3g76Zliy3u-qBtkGE5WHvFk/s72-c/Nested+Classes.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-7082796392468715616</id><published>2013-09-28T22:03:00.001+05:30</published><updated>2013-11-24T13:17:15.666+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java Annotations - An Overview</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduction&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Introduced in JDK 1.5 &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;One of the biggest ever feature added in Java.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A form of syntactic metadata that can be added to Java source code. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Its basically Data about Data.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Annotations don&#39;t do anything on their own, they don&#39;t do any processing. They act like a modifier and become useful only when they are processed.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotations can be processed at compile time, run time or deployment time.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotations are tags that we insert into our code, to be processed by tools like compiler, deployment tools or other external packages. Annotations are part of the code.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Can be embedded in class files generated by the compiler and may be retained by the Java VM to be made retrievable at run-time.(Reference: Retention policy)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Prior to Annotations, Java provided only ad-hoc and non-standardized mechanism, including Serializable interface (other market interfaces), transient modifier, Javadoc comments, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@deprecated&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; tag in comments.One of the main reasons for adding annotation and metadata to the Java platform is to enable development and runtime tools to have a common infrastructure.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotations are part of java code, Java Docs are not.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;java.lang.annotations package p&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;rovides library support for the Java programming language annotation facility.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Normally a developer needn&#39;t create Annotations.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotation-based 
programming is an extensible mechanism for generating application 
artifacts, packaging the application, and readying the application for 
execution.&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotation-based 
programming offers a set of tags and a processing mechanism that allow 
you to embed additional metadata into code. Application then uses this 
additional metadata to derive the artifacts required to execute the 
application in a J2EE environment.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defining Annotations:&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;public @interface TestAnno&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String str(); // It can never has any parameters.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Implementation Key points:&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@interface&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; keyword is used to define annotations.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotation types are a form of interface.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotation elements must be compile time constant values.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;There is no restriction of the type of annotation element.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;All annotations consist solely of method declarations. These method declarations are called&amp;nbsp;&lt;b&gt;elements&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The declarations must not have any formal parameters or a throw clause.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;java.lang.annotation.Annotation is super-interface for all annotations.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotations cannot include the extends clause.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Annotations can be applied to any declaration, ex. classes, methods, fields, parameters, enum, constants or even an annotation type.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There is a default value element in the annotations.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Annotations cannot use Generics, no generic member type, no type parameters.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; public class TestClass&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;@TestAnno (str=&quot;MyFirstAnnoTest&quot;, count=1001)&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // When a element is given a value only name is used,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // paranthesis are not used.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If the annotation has no elements, then the parentheses can be omitted. Ex &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If there is just one element named value, then the name can be omitted. Ex&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;@SuppressWarnings(value = &quot;unchecked&quot;)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;@SuppressWarnings(&quot;unchecked&quot;) &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It is also possible to use multiple annotations on the same declaration:&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@TestAnno (str=&quot;MyFirstAnnoTest&quot;, count=1001)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;@SuppressWarnings(&quot;unchecked&quot;) &lt;br /&gt;class&amp;nbsp; TestClass&amp;nbsp; { ... }&lt;/span&gt;&lt;/b&gt; &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Annotation Uses:&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Annotations helps moving away redundant code, remove config xml (ex. deployment descriptor), adds extra checks (ex.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@override&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Provide information to Compiler -&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;To detect errors or suppress warnings (&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@&lt;b&gt;D&lt;/b&gt;eprecated, @&lt;b&gt;O&lt;/b&gt;verride, @&lt;b&gt;S&lt;/b&gt;uppress&lt;b&gt;W&lt;/b&gt;arning&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Compile-time and deployment-time processing -&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Software tools can process annotation information to generate code, XML files, and so forth. Ex &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@WebServlet, @WebInitParam, @WebFilter, @WebListener&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Runtime processing -&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Marker Annotations&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Default Value for Annotation elements&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;We can provide default values to annotations, that will be assigned if no value is specified.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A default value is specified by adding a default clause to a member&#39;s declaration.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;Syntax:&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;type member() default default-value&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;default-value &lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;must be type compatible with member type.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;b&gt;public @interface TestAnno&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String str() &lt;b&gt;default &lt;/b&gt;&quot;testString&quot; ;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count() &lt;b&gt;default &lt;/b&gt;-1 ;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; }&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Marker Annotations&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Similar in concept with Marker interface - no member methods with sole purpose of marking a declaration.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Single-Member Annotations&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As the name suggests, only one annotation contains only one member.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;member name should be &lt;b&gt;value&lt;/b&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Uniqueness - allows to use shorthand, no need to specify the name of the member.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;public @interface TestSingleAnno&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; String value() ; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; @TestSingleAnno(&quot;Testing Single Annotation&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(Sting[] args)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;Java SE Predefined Annotations:&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@Deprecated&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defined in java.lang package.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduced in Java 1.5&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;When @Deprecated is used, documentation (javadoc @deprecated comment) should reflect why open is deprecated and what to use instead. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@Override&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defined in java.lang package.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduced in Java 1.5&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If a method marked with @Override fails to correctly override a method, the compiler throws an error.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It helps to prevent errors.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@SuppressWarning&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defined in java.lang package.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduced in Java 1.5 &amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Instructs the compiler to suppress specific warnings that it would otherwise generate.&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Warnings like unused variables, deprecated methods will be suppressed by compiler.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Ex. @SuppressWarnings(&quot;deprecation&quot;)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;Ex. @SuppressWarnings({&quot;unchecked&quot;, &quot;deprecation&quot;})&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;@SafeVarargs&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defined in java.lang package.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduced in Java 1.7&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It asserts that the code does not perform potentially unsafe operations on its varargs parameter.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Unchecked warnings relating to varargs usage are suppressed.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@FunctionalInterface&lt;/b&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Defined in java.lang package.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Introduced in Java 1.8&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;An informative annotation type used to indicate that an interface type declaration is intended to be a functional interface as defined by the Java Language Specification.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Conceptually, a functional interface has exactly one abstract method.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;However, the compiler will treat any interface meeting the definition of a functional interface as a functional interface regardless of whether or not a FunctionalInterface annotation is present on the interface declaration.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If a type is annotated with this annotation type, compilers are required to generate an error message unless:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The type is an interface type and not an annotation type, enum, or class.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The annotated type satisfies the requirements of a functional interface.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;Meta-Annotations&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Annotations that apply to other annotations.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It is information about annotation.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are several meta-annotation types defined in java.lang.annotati&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;@Retention&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Specifies how the marked annotation is stored, at what point, its discarded.&lt;/li&gt;
&lt;li&gt;Java defines 3 such policies encapsulated in java.lang.annotation.RetentionPolicy enumeration - &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SOURCE, CLASS, RUNTIME&lt;/span&gt;&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;SOURCE &lt;/b&gt;&lt;/span&gt;- Retained only in source file and discarded during compilation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;CLASS &lt;/span&gt;&lt;/b&gt;- Stored in .class file during compilation, but its not available through JVM during runtime.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;RUNTIME &lt;/b&gt;&lt;/span&gt;- Stored in .class file during compilation, and available through JVM during runtime. It offers the greatest annotation persistence.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Default Retention level is &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;CLASS&lt;/span&gt;. &lt;/b&gt;If no Retention annotation is present on an annotation type declaration, the retention policy defaults to &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;RetentionPolicy.CLASS&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@Retention(RetentionPolicy.RUNTIME)&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;ul&gt;

&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@Documented&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Indicates whenever the specified annotation is used those elements should be documented using the Javadoc tool.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;By default, annotations are not included in Javadoc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To make the information in &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@&lt;b&gt;TestAnno&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;appear in Javadoc-generated documentation, you must annotate the&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;TestAnno&lt;/span&gt;&amp;nbsp;definition&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; with the &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@Documented&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; annotation:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // import this to use @Documented&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; import java.lang.annotation.*;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; @Documented&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; public @interface TestAnno&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; String str(); // It can never has any parameters.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; int count();&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@Target&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Indicates the kinds of program element to which an annotation type is applicable.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;If a Target meta-annotation is not present on an annotation type declaration, the declared type may be used on any program element.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A target annotation specifies one of the following element types as its value:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.ANNOTATION_TYPE&lt;/b&gt;&lt;/span&gt; can be applied to an annotation type.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.CONSTRUCTOR&lt;/b&gt;&lt;/span&gt; can be applied to a constructor.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.FIELD&lt;/b&gt;&lt;/span&gt; can be applied to a field or property.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.LOCAL_VARIABLE&lt;/b&gt;&lt;/span&gt; can be applied to a local variable.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.METHOD&lt;/b&gt;&lt;/span&gt; can be applied to a method-level annotation.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.PACKAGE&lt;/b&gt;&lt;/span&gt; can be applied to a package declaration.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;ElementType.PARAMETER&lt;/b&gt;&lt;/span&gt; can be applied to the parameters of a method.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;ElementType.TYPE&lt;/span&gt;&lt;/b&gt; can be applied to any element of a class.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ex. @Target({ElementType.FIELD, ElementType.METHOD,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ElementType.FIELD})&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;public @interface TestAnno {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;}&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;@Target(ElementType.ANNOTATION_TYPE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; public @interface TestAnno {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@Inherited&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Indicates that the annotation type is automatically inherited from the super class.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;This annotation applies only to class declarations.&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;By Default a class doesn&#39;t inherit annotations of its super class.&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;When the user queries the annotation type and the class has no annotation for this type, the class&#39; superclass is queried for the annotation type.&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;u&gt;Java 8 Enhancements&lt;/u&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;

&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Type Annotations and Pluggable Type Systems&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Before the Java SE 8 release, annotations could only be applied to declarations. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As of the Java SE 8 release, annotations can also be applied to any type use. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A few examples of where types are used are class instance creation expressions (new), casts, implements clauses, and throws clauses.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;This form of annotation is called a type annotation, following are few examples:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new @Interned MyObject(); //Class instance creation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;myString = (@NonNull String) str; //Type cast&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;@NonNull String str;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;class UnmodifiableList&amp;lt;T&amp;gt; implements&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;@Readonly List&amp;lt;@Readonly T&amp;gt; { ... } //implements clause&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;void monitorTemperature() throws&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Critical TemperatureException { ... } //Thrown exception declaration&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Type annotations were created to support improved analysis of Java programs way of ensuring stronger type checking.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The Java SE 8 release does not provide a type checking framework.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;It allows you to write (or download) a type checking framework that is implemented as one or more pluggable modules that are used in conjunction with the Java compiler.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;@Repeatable&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Indicates that the marked annotation can be applied more than once to the same declaration or type use.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;There are situations where you want to apply same annotation multiple times to a declaration or type use. Following are few examples:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A Project could fall under several project categories.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A process needs to be scheduled for multiple time.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;An event could be observed by multiple roles.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;//custom annotation without repeatable&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;public @interface Schedule { ... }&lt;br /&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;//container annotation for repeatable&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public @interface Schedules {&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Schedule[] value;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //custom annotation with repeatable&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp; &lt;/b&gt;//The value of @Repeatable meta-annotation is container annotation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;@Repeatable(&lt;b&gt;Schedules&lt;/b&gt;.class)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;public @interface Schedule { ... }&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/7082796392468715616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/09/java-annotations-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7082796392468715616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7082796392468715616'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/09/java-annotations-overview.html' title='Java Annotations - An Overview'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-1509272876198486513</id><published>2013-08-31T22:19:00.000+05:30</published><updated>2014-05-10T13:48:16.729+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java - Confusing Terms</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Iterable vs Iterator&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;Implementing &lt;i&gt;&lt;b&gt;Iterable&lt;/b&gt;&lt;/i&gt; allows an object to be the target of the &quot;foreach&quot; statement. It is in&lt;i&gt;&lt;b&gt; java.lang&lt;/b&gt;&lt;/i&gt; package. It has one method - &lt;i&gt;Iterator&amp;lt;T&amp;gt; iterator().&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;b&gt;&lt;i&gt;Iterator&lt;/i&gt;&lt;/b&gt; represents iterator over a collection. It is in &lt;i&gt;&lt;b&gt;java.util &lt;/b&gt;&lt;/i&gt;package. It has three methods - hasNext, Next and remove.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Collection vs Collections&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;i&gt;Collection &lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;is &lt;/span&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;t&lt;/span&gt;he root interface in the collection hierarchy. It is in package &lt;i&gt;&lt;b&gt;java.util&lt;/b&gt;&lt;/i&gt;. This interface is typically used to pass collections around and manipulate them where maximum generality is desired. It implements &lt;i&gt;java.util.Iterable&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;i&gt;&lt;b&gt;Collections&lt;/b&gt;&lt;/i&gt; class consists exclusively of static methods that operate on or return collections. It doesn&#39;t extend/implement any class/interface from collections hierarchy.&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Comparator vs Comparable&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;&lt;i&gt;&lt;b&gt;Comparable &lt;/b&gt;&lt;/i&gt;interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class&#39;s natural ordering, and the class&#39;s &lt;i&gt;&lt;b&gt;compareTo &lt;/b&gt;&lt;/i&gt;method is referred to as its natural comparison method. Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this interface can be used as keys in a sorted map or as elements in a sorted set, without the need to specify a comparator.&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;Comparable has&lt;i&gt; &lt;b&gt;int compareTo(T o)&lt;/b&gt;&lt;/i&gt; method. It is in &lt;b&gt;&lt;i&gt;java.lang&lt;/i&gt;&lt;/b&gt; package.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;
A &lt;i&gt;&lt;b&gt;comparator &lt;/b&gt;&lt;/i&gt;object (a class that implements Comparator interface) can compare any two objects and these two objects are passed as parameters to compare() method.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Comparator is used to sort objects in other than its natural ordering.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;Comparator has &lt;b&gt;&lt;i&gt;int compare(T o1, T o2) &lt;/i&gt;&lt;/b&gt;and &lt;b&gt;&lt;i&gt;equals &lt;/i&gt;&lt;/b&gt;method. It is in &lt;b&gt;&lt;i&gt;java.util &lt;/i&gt;&lt;/b&gt;package.&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;&quot;&gt;Following is the result of the compare methods:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) A positive integer value if obj1 is greater than obj2. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) 0 value if obj1 and obj2 are equal. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) A negative integer value if obj1 is less than obj2.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #353833; display: inline !important; float: none; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Hashmap vs Hashtable&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;HashMap is non-synchronized whereas Hashtable is synchronized.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Java 5 introduced ConcurrentHashMap which is an alternative of Hashtable and provides better scalability than Hashtable in Java.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;HashMap allows null values as key and value whereas Hashtable doesn’t allow nulls&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;HashMap does not guarantee that the order of the map will remain constant over time.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;HashMap can be synchronized by:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Map m = Collections.synchronizeMap(hashMap);&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Iterator vs Enumeration&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Iterator has a remove() method while Enumeration doesn&#39;t.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Enumeration is very basic and twice as fast as Iterator and uses very less memory.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Iterator
 is more secure and safe as compared to Enumeration because it&amp;nbsp; does not
 allow other thread to modify the collection object while some thread is
 iterating over it and throws ConcurrentModificationException.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Enumeration has two methods and both are available in iterator. Method names for both of them are shortened.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&amp;nbsp;Fail Fast vs Fail Safe&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Fail fast means not concealing the error, bringing it out as soon as its detected. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Business is obstructed, but we get a chance to rectify. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Fail-Fast results in interrupted availability, over a period it results in a robust system.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Fail ensures system doesn&#39;t continue after a failure and creates data corruption and irreversible changes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Fail Fast is a better approach in most scenarios but for life critical, mission critical applications we need fail safe programs and not fail fast. Fail-Safe is Achieved with Exception Handling.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Fail Fast Iterator vs Fail Safe Iterator&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Difference between Fail Safe Iterator and Fail Fast Iterator is same as discussed above. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Iterator of CopyOnWriteArrayList is an example of fail-safe Iterator also iterator written by ConcurrentHashMap keySet is also fail-safe iterator and never throw ConcurrentModificationException in Java.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;ConcurrentHashMap vs Collections.synchronizedMap vs Hashtable vs Hashmap&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Collections.synchronizedMap provide a basic thread-safe implementation of Map.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Collections.synchronizedMap has fail-fast iterator and single collection-wide lock, which at times is obstruction to scalability and concurrency.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Collections.synchronizedMap and Hashtable give poor performance if the size is large due to single collection-wide lock.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;ConcurrentHashMap implementations provide much higher concurrency while preserving thread safety.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;ConcurrentHashMap introduced concept of segmentation , ConcurrentHashMap only locked certain portion of Map to provide thread safety so many other readers can still access map without waiting for iteration to complete.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;ConcurrentHashMap do not allow null keys or null values while HashMap allows null keys.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Interfaces vs Abstract Classes&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Interface in Java can only contains declaration.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Abstract class may contain both abstract and concrete methods, which makes abstract class an ideal place to provide common or default functionality.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;A class can inherit multiple interfaces, but it can inherit only one abstract class.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;By extending abstract class, a class can only participate in one Type hierarchy but by using interface it can be part of multiple type hierarchies.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Methods in an abstract class can be protected, private, static etc. But, all items in an interface are implicitly public.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Abstract classes can contain fields that are not static and final. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Interface defines a CAN-DO relationship, Classes (including Abstract) than IS-A relationship.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;In comparison with java abstract classes, java interfaces are slow as it requires extra indirection. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Vector vs ArrayList&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Vector and ArrayList are derived from AbstractList and implements List interface, which means both of them are ordered collection and allows duplicates.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Vector vs ArrayList is that both are index based Collection and you can use get(index) method to retrieve objects from Vector and ArrayList. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;All the methods of Vector are synchronized and methods of ArrayList are not synchronized.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Both the ArrayList and Vector hold onto their contents using an Array.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;A Vector defaults to doubling the size of its array, while the ArrayList increases its array size by 50 percent.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Vector vs ArrayList vs LinkedList&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;LinkedList is implemented as a double linked list. Its performance on add and remove is better than Arraylist, but worse on get and set methods.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;LinkedList also implements Queue interface which adds more methods than ArrayList and Vector, such as offer(), peek(), poll(), etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;i&gt;While an ArrayList uses an array internally to store the data, a LinkedList uses nodes to hold the elements.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;&lt;i&gt;LinkList is a series of instances of a private nested class Entry, which has next, previous and element references.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Dictionary &amp;amp; Properties&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Dictionary is an abstract class. Map is an interface.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Dictionary is parent class of Hashtable.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties is child class of Hashtable.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties represents a persistent set of properties. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Each key and its corresponding value in the property list is a string, while in hashtable it can be any object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties is thread safe.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties
 is a very specialized class that&#39;s designed to hold configuration 
and/or resources that are usually stored in some file.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties supports reading and writing its content to a well-defined plain-text format (using load()/store())&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Properties supports reading and writing its content to a well-defined XML-based format (using loadFromXML()/storeToXML())&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;The Dictionary class is the abstract parent of any class, such as Hashtable, which maps keys to values.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Wait vs Sleep&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;sleep() allows the thread to go to sleep state for x milliseconds. When a thread goes into sleep state it doesn’t release the lock.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;wait() allows thread to release the lock and goes to suspended state. The thread is only active when a notify() or notifAll() method is called for the same object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;Notity vs Notify All&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;notify( ) wakes up the first thread that called wait( ) on the same object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;&quot;&gt;notifyAll( ) wakes up all the threads that called wait( ) on the same object. The highest priority thread will run first.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Java SE(Standard Edition) vs Java EE(Enterprise Edition) vs Java ME(Micro Edition)&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Java SE - Plain vanilla version of Java. Java SE has a large library of code which includes many utilities, algorithms, data structures etc. Java EE and Java ME are built on top of Java SE.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Java EE - Builds on Java SE. Java EE contains additional libraries of code and development tools that are uniquely useful in developing web-based business applications.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;Java ME - A reduced version of Java SE and an associated library of software that addresses the unique needs of Java applications that should run on limited capability devices like mobile phones and PDAs.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;br /&gt;
The list will continue, please contribute. &lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/1509272876198486513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/08/java-confusing-terms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1509272876198486513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1509272876198486513'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/08/java-confusing-terms.html' title='Java - Confusing Terms'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-8748465010788756516</id><published>2013-06-26T12:03:00.001+05:30</published><updated>2014-05-10T13:48:48.712+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="OAF"/><title type='text'>Session Values - putSessionValue vs putSessionValueDirect</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Values set with putSessionValue function are cleared when redirected to homepage, but values set by putSessionValueDirect are cleared by logout, session invalidation and manual removal only.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;putSessionValue can store only String, Number or Date but putSessionValueDirect can store any object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Use of&amp;nbsp;putSessionValueDirect&amp;nbsp;is not recommended.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;putSessionValueDirect is typically for passing information between self-service pages and non self-service pages.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Puts a value on the servlet session directly (through HttpSession.putValue(String name, Object value)) without associating it with a specific transaction ID.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Note: putSessionValueDirect&amp;nbsp;has been used in&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222; text-align: -webkit-auto;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.in/2012/04/multple-transactions-in-one-oaf-page.html&quot; target=&quot;_blank&quot;&gt;Multple Transactions in One OAF Page&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #222222; text-align: -webkit-auto;&quot;&gt;Note: Session is not preferred place to store and pass values between pages. Refer to &lt;a href=&quot;http://princekapoor82.blogspot.in/2013/05/oaf-passing-parameters-encryption.html&quot; target=&quot;_blank&quot;&gt;OAF: Passing Parameters, Encryption, Encoding&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/8748465010788756516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/06/session-values-putsessionvalue-vs.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8748465010788756516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8748465010788756516'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/06/session-values-putsessionvalue-vs.html' title='Session Values - putSessionValue vs putSessionValueDirect'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-7130918685235557469</id><published>2013-05-19T16:11:00.001+05:30</published><updated>2014-05-10T13:49:24.624+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="OAF"/><title type='text'>OAF: Passing Parameters, encryption, encoding</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;color: #0c343d; text-align: left;&quot;&gt;
OAF: Passing Parameters between pages&lt;/h2&gt;
&lt;div&gt;
Following are three common means of passing parameters between pages:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Request&lt;/li&gt;
&lt;li&gt;Transaction&lt;/li&gt;
&lt;li&gt;Session&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
In addition the values set in the View Attributes are available to all pages participating in the transaction.&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Request :&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Short-lived object created for each HTTP request.&lt;/li&gt;
&lt;li&gt;It contains following application state:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;URL Parameters&lt;/li&gt;
&lt;li&gt;Updatable Field values (Message Text Input etc) and Hidden Field Values (form values) in case of post&lt;/li&gt;
&lt;li&gt;Event trigggering bean and the action in case of post.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Request values are accessed using OAPageContext.getParameter() methods.&lt;/li&gt;
&lt;li&gt;In OAF, we don&#39;t interact with Request directly, we interact with Request through PageContext.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Ways to pass parameters in Request:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Adding in URL: &lt;/u&gt;We can specify parameters as literal values or token substituted values (mapped to VO Attributes). Following are the examples:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;OA.jsp?page=/xxabc/oracle/apps/xxabc/custommodule/webui/CustomPG&amp;amp;order={@OrderNum}&lt;/li&gt;
&lt;li&gt;OA.jsp?OAFunc=XXABC_ADM_SUPP_ENGR&amp;amp;asset=123&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;OAPageContext.putParameter()&lt;/u&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Values are not technically added to request, but are stored in a special page cache.&lt;/li&gt;
&lt;li&gt;Equivalent to HttpServletRequest.setAttribute()&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Hidden fields (form values)&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;u&gt;Passing parameters in Hashmap&lt;/u&gt; using setForwardUrl().&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;u&gt;Passing parameters in Hashmap is the better approach for following reasons&lt;/u&gt;:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;URL has size restrictions.&lt;/li&gt;
&lt;li&gt;URL is visible to users.&lt;/li&gt;
&lt;li&gt;putParamater() and hidden fields are not stored in Request as parameters, thus if we navigate with Breadcrumbs or for other reasons in case the webBean hierarchy needs to be reconstructed, these will not be available.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Transaction:&lt;/h3&gt;
&lt;div&gt;
Transaction has wider scope than Request thus its not preferred approach.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;OAPageContext.putTransactionValue()&lt;/li&gt;
&lt;li&gt;OAPageContext.getTransactionValue()&lt;/li&gt;
&lt;li&gt;((OADBTransactionImpl)getTransaction()).putValue()&lt;/li&gt;
&lt;li&gt;((OADBTransactionImpl)getTransaction()).getValue()&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3&gt;
Session:&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Again, a wider scope than Transaction and not recommended.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;pageContext.putSessionValue();&lt;/li&gt;
&lt;li&gt;pageContext.getSessionValue();&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;color: #134f5c; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;color: black;&quot;&gt;
&lt;div style=&quot;font-size: medium; font-weight: normal;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;
Using VO Attributes for passing values&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Values stored in VO attributes are available in all pages within the transaction with same Root AM.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: medium; font-weight: normal;&quot;&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/div&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
URL Parameters : Encryption and Encoding&lt;/h3&gt;
&lt;div&gt;
When we are passing parameters in URL, following need to be considered:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #134f5c; text-align: left;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;{@Attr} - encodes. Changes Prince Kapoor to Prince%20Kapoor&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;{!Attr} - encrypts. Encrypts sensitive information.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;{$Attr} - plain token substitution (no encoding or encryption)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;{@@RETURN_TO_MENU} - Used for E-Business Suite Personal Home Page. Same as OAWebBeanConstants.RETURN_TO_MENU_URL.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;{@@RETURN_TO_PORTAL} - Return the user to a launching Portal page. Same as &lt;span style=&quot;color: black;&quot;&gt;OAWebBeanConstants.RETURN_TO_PORTAL_URL.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/7130918685235557469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/05/oaf-passing-parameters-encryption.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7130918685235557469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7130918685235557469'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/05/oaf-passing-parameters-encryption.html' title='OAF: Passing Parameters, encryption, encoding'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-7324163956440642923</id><published>2013-02-14T18:14:00.003+05:30</published><updated>2014-05-10T13:49:51.959+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><title type='text'>Oracle 11g Memory Structure</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
11g Memory Structure&lt;/h3&gt;
Oracle has many different memory structures for the various parts of the software&#39;s operation.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;System Global Area&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;Shared memory structures for data and sql. It is shared by both background processes and server processes. SGA is Oracle&#39;s structural memory area that facilitates the transfer of data and information between clients and the Oracle database. The size of the SGA is controlled by the DB_CACHE_SIZE parameter. Oracle 11g allows users to tune both PGA and SGA areas with a single parameter, called MEMORY_TARGET.&lt;/ul&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;show parameter memory_target&lt;/span&gt;&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Shared Pool - &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Library Cache - A library of ready-to-go SQL statements.&lt;/li&gt;
&lt;li&gt;Dictionary Cache - For storing the most recently used data   definitions in the Oracle DB. These data definitions may include   information about: database files, tables, indexes, privileges, users,   etc. &lt;/li&gt;
&lt;li&gt;Quickest Result Cache&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SQL Result Cache - Stores sql query result. Oracle skips execution next time.&lt;/li&gt;
&lt;li&gt;PLSQL Function Result Cache - Cache contains the result from a   previous call to the function with the same parameter values, the system   returns the cached result to the invoker and does not re-execute the   function body.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Database Buffer Cache -&amp;nbsp;&lt;/li&gt;
Largest portion of SGA. To cache data in memory for quicker access.   Buffer refers to database block. A block in buffer cache could be in any   of the three states: Free, Pinned and Dirty.
&lt;li&gt;Redo Log Buffer -&amp;nbsp;&lt;/li&gt;
Buffer that records every sql statement that changes data. The statement   itself and any information required to reconstruct it is called Redo   Entry. This buffer protects against loss of dirty blocks.
&lt;li&gt;Large Pool - &lt;/li&gt;
Optional component. It relieves shared pool of sometimes-transient   memory requirements. Features using the Large Pool - Oracle Recovery   Manager, Oracle Shared Server, Parallel Processing, I/O-related server   processes.Without large pool configured, these processes share the   memory from shared pool&#39;s SQL area.
&lt;li&gt;Java Pool -&amp;nbsp;&lt;/li&gt;
Optional component. This area handles the memory for Java methods, class   definitions, etc.&amp;nbsp; The java_pool_size&amp;nbsp; parameter controls the amount  of  memory for this area.&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;Following are key SQL Queries related to SGA:&amp;nbsp;&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SHOW SGA&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SELECT * FROM v$sga;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;select * from v$sgainfo;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;select * from v$sga_dynamic_components;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Program Global Area&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;A program global area (PGA) is a memory region that contains data and  control information for a server process. It is a nonshared memory  created by Oracle when a server process is started. Access to it is  exclusive to that server process and is read and written only by Oracle  code acting on behalf of it.&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;When you  start a user process, that process has a private RAM area, used for  sorting SQL results and managing special joins called “hash” joins.&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;The  PGA can be critical to performance, particularly if your application is  doing a large number of sorts.&amp;nbsp; Sort operations occur if you use ORDER  by and GROUP BY commands in your SQL statements.&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Private SQL Area - &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Variables that might be assigned values during SQL execution&lt;/li&gt;
&lt;li&gt;Work areas for processing specific SQL needs: sorting, hash-joins, bitmap operations&lt;/li&gt;
&lt;li&gt;Cursors&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Session memory -&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;login information&lt;/li&gt;
&lt;li&gt;session variables and settings &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;Following are key SQL Queries related to PGA: &lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;select * from v$pgastat;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;select * from v$pga_target_advice order by pga_target_for_estimate;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;select max(pga_used_mem), max(pga_alloc_mem), max(pga_max_mem) from v$process;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/7324163956440642923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/02/oracle-11g-memory-structure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7324163956440642923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7324163956440642923'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/02/oracle-11g-memory-structure.html' title='Oracle 11g Memory Structure'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-5162077978003116866</id><published>2013-01-21T12:13:00.000+05:30</published><updated>2014-05-10T13:50:53.007+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java Versions, Features and History</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Came across following excellent blog on Java language:&lt;br /&gt;
http://javapapers.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Liked following post on Java Versions, Features and History:&lt;br /&gt;
&amp;nbsp;http://javapapers.com/core-java/java-features-and-history/&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/5162077978003116866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2013/01/java-versions-features-and-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/5162077978003116866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/5162077978003116866'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2013/01/java-versions-features-and-history.html' title='Java Versions, Features and History'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-9123757087222454679</id><published>2012-12-18T15:28:00.003+05:30</published><updated>2014-08-21T13:25:07.306+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Key Internet Terms"/><title type='text'>Key Internet Terms</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;APACHE:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Apache is world&#39;s most popular Web server (HTTP server).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Apache Web server(Apache HTTP Server) often referred to as simply Apache.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The first version of Apache was based on the NCSA httpd Web server and was developed in 1995.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The Apache server has been developed by an open source community - Apache Software Foundation.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The  original version of Apache was written for UNIX, but there are now  versions that run under OS/2, Windows and other platforms.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Apache  has various modules for supporting CGI, SSI, user authentication, URL  redirection, anonymous user access, automatic directory listings,  support for HTTP header metafiles, support for loading modules, content  negotiation, caching proxy abilities, server status display, user home  directories, etc.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;APPLICATION SERVER:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Provides method/business logic for client applications.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;An Application Server can support other protocols apart from HTTP.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Application  server is based on 3-tier architecture (separation of business logic  from the presentation logic and the database logic).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Application servers usually take care of most of technical issues and allow developers to concentrate on the business need.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB APPLICATION SERVER:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The application server combines or works with a web Server and is called a Web Application Server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;When we don&#39;t need Application &amp;nbsp;Server?&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;- For non critical and small application, there is no need to invest in an application server.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;-  A web browser which supports a Html-based front end communicates with a  web server. The Web server provides several different ways to service a  request band to forward back a modified or new Web page to the user.  These approaches include the Common Gateway Interface (CGI), Microsoft&#39;s  Active Server Page (ASP), and the Java Server Page (JSP).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;COOKIE:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Also known as browser cookies or tracking cookies.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Originally designed to help support session state, though custom cookies can be used for other things as well.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A cookie stores a single piece of data under unique name.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Cookie name have to be unique within a given webpage/website (just like a variable).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Cookies are stored w.r.t. the page that created them.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A  cookie comes with an expiration date, when expiration date arrives  cookie is destroyed. If cookie is created without any expiration date,  it gets erased when browser is closes.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Cookie size is limited to 4Kb.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Cookie number is limited to 20 per web server.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Max number of cookies allowed is 300.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A  cookie is  piece of information that is issued by a server in an HTTP  response and stored for future use by the HTTP client (Browser).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Browser will send it back to server with each request.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;User doesn’t get involved in cookie exchange it&#39;s managed by the server and cookie enabled client.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Format of the cookie -&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;cookieName=&lt;span style=&quot;color: blue;&quot;&gt;cookieValue&lt;/span&gt;;expires=&lt;span style=&quot;color: blue;&quot;&gt;expirationDateGMT&lt;/span&gt;;path=&lt;span style=&quot;color: blue;&quot;&gt;URLpath&lt;/span&gt;;domain=&lt;span style=&quot;color: blue;&quot;&gt;siteDomain&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;DEPLOYMENT DESCRIPTOR:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Describes how a component, module or application (such as a web application or enterprise application) should be deployed. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Configuration file for an artifact that is deployed to some container/engine.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Java web applications use a deployment descriptor file to determine how URLs map to servlets, which URLs require authentication, and other information.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Describes the classes, resources and configuration of the application and how the web server uses them to serve web requests.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;XML based.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;One DD per web application. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;JSP compilation and URL mappings are automatically taken care of, but in case more control is required, use&amp;nbsp; &amp;lt;jsp-file&amp;gt; element instead of &amp;lt;servlet-class&amp;gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;For web applications, the deployment descriptor must be called web.xml and must reside in the WEB-INF directory in the web application root.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;For Java EE applications, the deployment descriptor must be named application.xml and must be placed directly in the META-INF directory at the top level of the application .ear file.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;you can use the DD to customize other aspects of your web application including security roles, error pages, tag libraries, initial configuration information, and if it’s a full J2EE server, you can even declare that you’ll be accessing specific enterprise javabeans.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;FORM (HTML FORM):&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTML forms are used to pass data to a server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Part of web page that includes areas where readers can enter information to be sent back to web server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A form can contain input elements like text fields, checkboxes, radio-buttons, submit buttons and more.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;When the user submit a form, browser issues a POST request, which sends the form&#39;s data to the server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It&#39;s agreed opon method (protocol) for transferring hypertext documents around the web.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Protocol used by web browser(client) to interact with the Application (server).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP  is called a stateless protocol because each request is processed  independently, without any knowledge of the requests that came before  it.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP protocol doesn’t have any mechanism for the server to know that the client is gone. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP is the network protocol of the Web used to deliver virtually all files and other resources.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Usually HTTP takes place through TCP/IP sockets. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It is both simple and powerful. Knowing HTTP enables you to write Web browsers, Web servers, automatic page downloaders, link-checkers, and other useful tools.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Default port for HTTP servers to listen is 80.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP 0.9&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;HTTP was initially a very simple protocol used to request pages from a server.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;There were no request headers.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Only one method - GET.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Response had to be a HTML document.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;The browser would connect to the server and send a GET command (example below), &amp;nbsp; and the server would respond with the contents of the requested file:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;GET /welcome.html&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP 1.0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;
&lt;li&gt;HTTP/1.0 evolved from the original &#39;0.9&#39; version of HTTP.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By any reasonable standard, the HTTP/1.0 protocol has been stunningly successful inspite of numerous flows.&lt;/li&gt;
&lt;li&gt;The process leading to HTTP/1.0 involved significant debate and experimentation, but never produced a formal specification.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The HTTP Working Group (HTTP-WG) of the Internet Engineering Task Force (IETF) produced a document (RFC1945) that described the &#39;common usage&#39; of HTTP/1.0, but did not attempt to create a formal standard out of the many variant implementations.&lt;/li&gt;
&lt;li&gt;HTTP 1.0 defines 16 headers, none of them is mandatory. &lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP 1.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;The basic operation of HTTP/1.1 remains the same as for HTTP/1.0, and the protocol ensures that browsers and servers of different versions can all interoperate correctly.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;If the browser is compatible with version 1.1, it uses HTTP/1.1 on the request line instead of HTTP/1.0.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;When the server sees this is knows it can make use of new 1.1 features, else server will respond to older standard.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;The HTTP/1.1 specification states the various requirements for clients, proxies, and servers.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;HTTP 1.1 defines 46 headers, and one (&quot;Host&quot;) is required in all requests.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;Major Changes:&lt;/li&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;Hostname Identification - Every request sent using HTTP/1.1 must identify the hostname (from URL) of the request. Before HTTP 1.1, each host name required a unique IP Address.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;Content Negotiation - Ability to have a number of different versions of a single resource (difference in language, file format etc). Negotiation is done between browser and server.&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Persistent connection - (Most Important feature)&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;In HTTP 1.0, a connection between the client and server is closed after a single request/response cycle.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;In HTTP 1.1, a connection between the client and server is kept alive and reused for multiple requests.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;HTTP 1.1 is fast because of persistent connections, because client doesn&#39;t need to renegociate the TCP connection after each request.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Persistent connections is default behavior, &amp;nbsp;unless browser explicitly tells the server not to use it, i.e., server assumes multiple requests from each connection.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Persistent connections are controlled by the Connection header. Unless a &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;i&gt;&lt;b&gt;Connection: close&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt; header is given, the connection will remain open. Connection also gets closed on &amp;nbsp;server-configurable time out (typically 15 secs).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Pages today include inlined documents, images and other multimedia content. These pages can be slow to download because each item needs to be requested separately from the server, each on a separate connection. With Persistent connection it gets faster.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Byte Ranges&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;Byte ranges allow browsers to request parts of documents.&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;This can be used to continue an interrupted transfer, or to obtain just part of a long document (say, a single page).&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Byte ranges are implemented by the Range header. For example, to request just the second 500-bytes of a document, the request would include - &lt;/span&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Range: bytes=500-999&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Helvetica Neue&#39;,Arial,Helvetica,sans-serif;&quot;&gt;A single request can also ask for more than one range at once (for example, first 500 bytes and the last 500 bytes of a file). When the server replies, it will send back each part in a single response, using MIME multipart encoding to distinguish the parts.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Chunked Transfers - Encoding&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Normally when sending back a response the sever has to know everything about the response it is about to send. For instance, servers should set the Content-Length header on each response to the length of the response itself.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;This can be difficult for the server to do if the content is dynamically created. So in practice servers (including Apache) often do not send a Content-Length with dynamic documents. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;For HTTP/1.1, the Content-Length must be known in advance, if a server wants to start sending a response before knowing its total length, it might use the simple chunked transfer-encoding.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;With chunked transfer-encoding, entire document is broken into smaller chunks and sent in series.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;transfer-encoding: chunked&quot; header identifies chunked transfer-encoding.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Why HTTP is Stateless despite proxies, cookies and persistent connections?&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Even though multiple requests can be sent over the same HTTP connection, the server does not attach any special meaning to their arriving over the same socket. That is solely a performance thing, intended to minimize the time/bandwidth that&#39;d otherwise be spent reestablishing a connection for each request.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;As far as HTTP is concerned, they are all still separate requests and must contain enough information on their own to fulfill the request. That is the essence of &quot;statelessness&quot;. Requests will not be associated with each other absent some shared info the server knows about, which in most cases is a session ID in a cookie.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP is considered stateless because the browser sends all the information the server works (cookies, referrer, etc) with in the HTTP Request Headers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;While there might a database involved which does store state, HTTP is stateless, because it doesn&#39;t store anything. And even if the socket is kept open, as long as it doesn&#39;t store anything it is still considered stateless.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP persistent connections relate to TCP connection being left open. HTTP operates on top of TCP - so TCP can be connected and/or stateful whereas HTTP would not. TCP is just the transport for HTTP.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTPS&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP + SSL&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Default port is 443&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP REQUEST:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Request that browser sends to the web server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Request could be to get some file from the web server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Request could be to submit the data to be processed.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP RESPONSE:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Reply  from a web server to the web browser&#39;s request to fetch and transmit  the requested web page, image, script and other in the http response. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Normally  consists of a status line, one or more header parameters, a blank line,  and optionally from a content received in the http response.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;An HTTP response can contain HTML. HTTP adds header &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;information to the top of whatever content is in the response (in &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;other words, the thing coming back from the server).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; HTTP/1&lt;span style=&quot;font-size: small;&quot;&gt;.1 200 &lt;span style=&quot;font-size: small;&quot;&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; Date: T&lt;span style=&quot;font-size: small;&quot;&gt;ue 14 Sep &lt;span style=&quot;font-size: small;&quot;&gt;1982 01:40 GMT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; Content-Type&lt;span style=&quot;font-size: small;&quot;&gt;: text/html&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; Content-length: &lt;span style=&quot;font-size: small;&quot;&gt;52&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;body&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;h1&amp;gt;&lt;span style=&quot;font-size: small;&quot;&gt;Hello&lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style=&quot;font-size: small;&quot;&gt;/&lt;/span&gt;html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;Initial line contains HTTP version, response code and English reason phrase.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;HTTP response codes:&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;1XX - Informational messages.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;2XX - success messages.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;3XX - redirects the client to another URL.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;4XX - error on the client&#39;s part.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;5XX - Server is aware that it has erred or is incapable of performing the request.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP GET:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;G&lt;span style=&quot;font-size: small;&quot;&gt;et is the default and most common HTTP method&lt;span style=&quot;font-size: small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&quot;GET&quot; is basically for just getting (retrieving) data.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Its  main job is to ask the server for the resource. If the resource is   available then then it will given back to the user on your browser. That  resource may be a HTML page, a sound file, a picture file (JPEG) etc.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Get  is for getting something from the Server. You can send parameters to  the server in Get, but the total amount of characters in a GET is really  limited.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GE&lt;span style=&quot;font-size: small;&quot;&gt;T&lt;/span&gt; /servlet/&lt;span style=&quot;font-size: small;&quot;&gt;WelcomePG?&lt;/span&gt;u&lt;span style=&quot;font-size: small;&quot;&gt;serName=prince HTTP/1.1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP POST:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Used for Form Submissions.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;By  using Post we can request as well as send some data to the server. We  use post method when we have to send a big chunk of data to the server,  like when we have to send a long enquiry form then we can send it by  using the post method.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Data from the POST method is sent by the client as a part of the request body.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;P&lt;span style=&quot;font-size: small;&quot;&gt;OST&lt;/span&gt; /servlet/&lt;span style=&quot;font-size: small;&quot;&gt;WelcomePG?&lt;/span&gt;u&lt;span style=&quot;font-size: small;&quot;&gt;serName=prince HTTP/1.1&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; User-Agent: MOZILLA/1/0&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; Content-Type: application/x&lt;span style=&quot;font-size: small;&quot;&gt;-www-form-encoded&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&lt;span style=&quot;font-size: small;&quot;&gt;ontentLength: 11 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; userName&lt;span style=&quot;font-size: small;&quot;&gt;=jo&lt;span style=&quot;font-size: small;&quot;&gt;hn&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP &lt;span style=&quot;font-size: small;&quot;&gt;H&lt;/span&gt;EAD:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;To retrieve the meta&lt;span style=&quot;font-size: small;&quot;&gt;-information about a resource&lt;span style=&quot;font-size: small;&quot;&gt;,&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;to check the time when the resource wa&lt;span style=&quot;font-size: small;&quot;&gt;s last modified&lt;span style=&quot;font-size: small;&quot;&gt; on &lt;span style=&quot;font-size: small;&quot;&gt;the server&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Struct&lt;span style=&quot;font-size: small;&quot;&gt;ure o&lt;span style=&quot;font-size: small;&quot;&gt;f HEAD request is same as GET.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Gives you info about the requested resource without actually getting &lt;span style=&quot;font-size: small;&quot;&gt;the reso&lt;span style=&quot;font-size: small;&quot;&gt;urce&lt;/span&gt;&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP PUT:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&quot;&lt;span style=&quot;font-size: small;&quot;&gt;PUT&lt;/span&gt;&quot; is&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; us&lt;span style=&quot;font-size: small;&quot;&gt;ed to add a resource to the server. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP TRACE:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Asks for a loop-back of the request message, so that the client can see what’s being received on the other end, for testing or troubleshooting.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing or diagnostic information.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It &lt;span style=&quot;font-size: small;&quot;&gt;is not used in prod&lt;span style=&quot;font-size: small;&quot;&gt;uctio&lt;span style=&quot;font-size: small;&quot;&gt;n, only used for troublesh&lt;span style=&quot;font-size: small;&quot;&gt;ooting.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP OPTION&lt;span style=&quot;font-size: small;&quot;&gt;S&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Asks for a list of the HTTP methods to which the thing at the requested URL can respond. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Introduced in HTTP 1.1 version.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Almost no one uses it. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP DELETE:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&quot;&lt;span style=&quot;font-size: small;&quot;&gt;DELETE&lt;/span&gt;&quot; is&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; us&lt;span style=&quot;font-size: small;&quot;&gt;ed to delete a resource to the server. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP &lt;span style=&quot;font-size: small;&quot;&gt;CONNECT&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a SSL/TCP tunnel (to pass servlet through firewall).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;i&gt;HTTP&lt;span style=&quot;font-size: small;&quot;&gt; GET&lt;span style=&quot;font-size: small;&quot;&gt;, HEAD and PUT are idempotent.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HTTP PROXY:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; program that acts as an intermediary between a client and server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It receives requests from client, and forwards those requests to the intended servers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A proxy has functions of both a client and server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Proxies are commonly used in firewalls, for LAN-wide caches etc. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HYPERLINK:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Hyperlink (or link) is a reference to data that the reader can directly follow, or that is followed automatically. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;A hyperlink points to a whole document or to a specific element within a document. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HYPERTEXT:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Hypertext is text which is not constrained to be linear.&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Hypertext  is text displayed on a computer or other electronic  device with  references (hyperlinks) to other text that the reader can  immediately  access.&lt;/li&gt;
&lt;li&gt;Hypertext is text with Hyperlink.&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Apart from running text, hypertext may contain tables, images and other presentational devices.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;HYPERMEDIA:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;HyperMedia is a term used for hypertext which is not constrained to be text: it can include graphics, video and sound.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;INTERNET:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Internet is a massive network of networks, a networking infrastructure.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It connects millions of computers together globally, forming a network in which any computer can communicate with any other computer as long as they are both connected to the Internet. Information that travels over the Internet does so via a variety of languages known as protocols.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;JAVA BEAN:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A  JavaBean (or &quot;bean&quot; for short) is simply a reusable component that  implements specific design patterns to make it easy for programmers and  development tools to discover the object&#39;s properties and behavior.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Reusable  component that implements specific design patterns to make it easy for  programmers and development tools to discover the object&#39;s properties  and behavior.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;JSP:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;File  with some HTML and Java code that executes top to bottom. At runtime,  it is compiled into a Java class, which is actually a servlet.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A JSP page looks just like an HTML page, except you can put Java and Java-related things inside the page.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Your JSP eventually becomes a full-fledged servlet running in your web app.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Major limitation with JSP - The UI is only as good as the programmer&#39;s ability to generate the proper HTML. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;JSP FORWARD:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Passes the request object within the server to either a servlet or a JSP page.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The URL shown in the browser stays unchanged when you do forward.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It  allows the next Java Servlet/JSP to access the same request object. In  OAF request parameters of one page are accessible in PFR in its CO on  form submit and also in next page when we navigate using setForwardUrl  or forwardImmediatly.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A client browser will never realize whether its request is forwarded since the forwarding happens in the server side.&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Forwarding is useful when it is necessary to continue processing the current request with different Java Servlet/JSP. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;     &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;JSP REDIRECT:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Creates a new request object which doesn&#39;t carry any of old requests. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The first request handler JSP page tells the browser to make a new request to the target servlet or JSP page. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The URL shown in the browser therefore changes to the URL of the new page when you redirect.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Client  browser with redirection enabled will refresh its address bar to the  next Java Servlet/JSP address, which means that a redirection address  must be client access-able address.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;MI&lt;span style=&quot;font-size: small;&quot;&gt;ME&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Multipurpose Internet Mail Extensions&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;S&lt;/span&gt;ometimes referred to as Content-types &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Instead of term &quot;MIME type&quot;, &lt;span style=&quot;font-size: small;&quot;&gt;&quot;&lt;i&gt;&lt;b&gt;Internet media type&lt;/b&gt;&lt;/i&gt;&quot; sh&lt;span style=&quot;font-size: small;&quot;&gt;ould be &lt;span style=&quot;font-size: small;&quot;&gt;preferred today.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Standard internet protocol that extends the format of email to support:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Text in character sets other than ASCII&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Non-text attachments&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Message bodies with multiple parts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Header information in non-ASCII character sets&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;MIME types form a  standard way of classifying file types on the Internet.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Internet   programs such as Web servers and browsers all have a list of MIME  types,  so that they can transfer files of the same type in the same  way, no  matter what operating system they are working in.  &lt;/span&gt;&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;M&lt;span style=&quot;font-size: small;&quot;&gt;IME &lt;/span&gt;TY&lt;span style=&quot;font-size: small;&quot;&gt;PE:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;S&lt;/span&gt;ometimes referred to as Content-types &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Instead of term &quot;MIME type&quot;, &lt;span style=&quot;font-size: small;&quot;&gt;&quot;&lt;i&gt;&lt;b&gt;Internet media type&lt;/b&gt;&lt;/i&gt;&quot; sh&lt;span style=&quot;font-size: small;&quot;&gt;ould be &lt;span style=&quot;font-size: small;&quot;&gt;preferred today.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A media type is composed of two or more parts: A type, a subtype, and zero or more optional parameters.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;e.g. text/html; charset=UTF-8&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;te&lt;span style=&quot;font-size: small;&quot;&gt;xt is type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;html is s&lt;span style=&quot;font-size: small;&quot;&gt;ubty&lt;span style=&quot;font-size: small;&quot;&gt;pe&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;char&lt;span style=&quot;font-size: small;&quot;&gt;set is parameter.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MI&lt;span style=&quot;font-size: small;&quot;&gt;ME types are &lt;span style=&quot;font-size: small;&quot;&gt;also used in HTT&lt;span style=&quot;font-size: small;&quot;&gt;P response&lt;span style=&quot;font-size: small;&quot;&gt; to specify content-type.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Typical content types are “text/html”, “application/pdf”, and “image/jpeg”&lt;span style=&quot;font-size: small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SERVLETS:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Java-based web application server extension program that implements a standard API.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Servlets  are modules of Java code that run in a server application (hence the  name &quot;Servlets&quot;, similar to &quot;Applets&quot; on the client side) to answer  client requests. Servlets are not tied to a specific client-server  protocol but they are most commonly used with HTTP and the word  &quot;Servlet&quot; is often used in the meaning of &quot;HTTP Servlet&quot;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SERVLET CONTAINER:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Als&lt;span style=&quot;font-size: small;&quot;&gt;o &lt;span style=&quot;font-size: small;&quot;&gt;know&lt;span style=&quot;font-size: small;&quot;&gt;n as &lt;i&gt;&lt;b&gt;WEB CON&lt;span style=&quot;font-size: small;&quot;&gt;TAINE&lt;span style=&quot;font-size: small;&quot;&gt;R, J2EE WEB CONTAINER, SERVLET ENG&lt;span style=&quot;font-size: small;&quot;&gt;INE &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;(older name)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It is the component of a web server that interacts with Java servlets. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A servlet container is nothing but a compiled, executable program which &lt;/span&gt;&lt;/span&gt;takes the responsibility of instantiating, initializing and invoking the components.&lt;/li&gt;
&lt;li&gt;Container  calls the service() method and handles the Request and Response parameters.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In order to be managed by container components must follow certain contract.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;J2EE specification&lt;/b&gt;&lt;/u&gt; defines contract between components and container, and specifies the deployment model for components.&lt;/li&gt;
&lt;li&gt; When developing applications with &lt;u&gt;&lt;b&gt;J2EE&lt;/b&gt;&lt;/u&gt;, we develop components that follow the contract defined in the specification.&lt;/li&gt;
&lt;li&gt;The web container implements Servlet and JSP API and provide infrastructure for deploying and managing web components.&lt;/li&gt;
&lt;li&gt;As per the specification, all web containers must support HTTP protocol however it may support addition protocols like HTTPS.&lt;/li&gt;
&lt;li&gt;There are three types of Servlet Containers: &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Standalone&lt;/u&gt; - Java-based web servers where the two modules -- main web server and the servlet container are integral part of a single program. Ex. Tomcat running all by itself.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;In-process&lt;/u&gt; - Main web server and the servlet container are different programs, but the container runs within the address space of the main as a plug-in. Ex. Tomcat running inside Apache Web Server. Apache loads JVM that runs Tomcat. Webserver handles the static content by itself and Tomcat handles the servlets and jsp.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Out-of-process&lt;/u&gt; - Web server and Container both run as separate programs. Web server will use a plug-in to communicate with servlet container. Usually the plug-in will be provided by the servlet container vendor. Ex. Tomcat, Apache and mod_jk (plus-in).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SERVLET INVOKER:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;As defined by Apache Tomcat specification, the purpose of Invoker Servlet is to allow a web application to dynamically register new servlet definitions that correspond with a &amp;lt;servlet&amp;gt; element in the /WEB-INF/web.xml deployment descriptor.By enabling servlet invoker the servlet mapping need not be specified for servlets. Servlet ‘invoker’ is used to dispatch servlets by class name.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Enabling the servlet invoker can create a security hole in web application. Because, Any servlet in classpath even also inside a .jar could be invoked directly.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;The application will also become not portable.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;In Tomcat 3.x, by default the servlet invoker is enabled.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;In Tomcat 4.x, by default the servlet invoker id disabled. The &amp;lt;servlet-mapping&amp;gt; tag is commented inside the default web application descriptor (web.xml), located under $CATALINA_HOME/conf.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Deprecated in version 6 and totally removed in 7.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SERVLET SESSION:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Mechanism  for maintaining state between HTTP requests during a period of  continuous interaction between a browser and a web application. A  session may be initiated at any time by the application and terminated  by the application, by the user closing the browser, or by a period of  user inactivity. A session usually corresponds to an application  login/logout cycle.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SSL&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Secured Sockets Layer.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Security Protocol used to secure data between two machines using encryption&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&amp;nbsp; &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Allows private and secured access over internet by providing Authentication, Encryption and Integrity checks.&lt;/li&gt;
&lt;li&gt;If
 SSL detects that the connection is not secure, it&#39;ll disconnect the 
connection and client and server establishes a new secured connection.&lt;/li&gt;
&lt;li&gt;SSL sits above communication protocol like TCP/IP and below Application protocol like HTTP/SMTP etc.&lt;/li&gt;
&lt;li&gt;Differnt types of SSL - DomainSSL, OrganizationalSSL, and ExtendedSSL (Highest trust level).&lt;/li&gt;
&lt;li&gt;SSL Certificate assures that user is on legitimate website. &lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;URI&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Uniform Resource Identifier.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Specific character string that identifies a name or a resource. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;URIs can be classified as locators (URLs), as names (URNs).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;A resource is some chunk of information, commonly a file, but it could also be a dynamically generated query result, output of a program or script output or something else.&lt;/span&gt;&lt;/i&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;  &lt;/div&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      URL&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Uniform Resource Locator.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Specific character string that constitutes a reference to an Internet resource.&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;      URN&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Uniform Resource Name.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;URN is a URI that identifies a resource by name. It doesn&#39;t provide its location or how to access it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Ex. ISBN 0-486-27557-4 uniquely identifies a book but doesn&#39;t tell anything of its location. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;A  URN functions like a person&#39;s name, while a URL resembles that person&#39;s  street address. In other words: the URN defines an item&#39;s identity,  while the URL provides a method for finding it. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The World Wide Web (abbreviated as WWW or W3, commonly known as the Web), is a system of interlinked hypertext documents accessed via the Internet.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The World Wide Web, or simply Web, is a way of accessing information over the medium of the Internet. It is an information-sharing model that is built on top of the Internet.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The Web uses the HTTP protocol, only one of the languages spoken over the Internet, to transmit data&lt;span style=&quot;font-size: small;&quot;&gt;.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, clean, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;Web or World Wide Web and Internet are used as if they are synonyms, but they are different terms. Please check Internet&amp;nbsp;definition&amp;nbsp;above for details. Web is the system we use to access the Internet. The Web isn&#39;t the only system used to access internet but it&#39;s the most popular and widely used.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;b&gt;WEB 1.0:&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Web 1.0 provided one way communication from Website to visitors. It was primarily in early 1990.&lt;/span&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;b&gt;WEB 2.0:&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Its a marketing term referring to different way of building application. Ajax is considered to be part of Web 2.0.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Web 2.0 provides two way communication, allow user generated context. It came in late 1990s.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Web 2.0 has made users to be the creator of content.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Ajax, Social networking, mash-ups, media sharing, online commerce, Wikis, &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Web 2.0 encourages participation, collaboration, and information sharing. Examples of Web 2.0 applications are Youtube, Orkut, Wiki, Flickr, Facebook, and so on.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;b&gt;WEB 3.0:&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Computers can interpret information like humans and intelligently generate and distribute useful content tailored to the needs of users.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Intelligent Web - Machine facilitated understanding of information.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Ex. Recommendor System&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;JavaScript, JSON, XML, AJAX, Web Services, SAAS, Cloud Computing, Mobile (ubiquitous) Computing.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;SOCIAL MEDIA:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Social Media refers to next step after Web 2.0. In addition to two way communication, it allows visitors to communicate to each other. Thus it provides 3-Way communication.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB APPLICATION:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;Application available from web, composed on web components.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB BROWSER:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The  World Wide Web (abbreviated as WWW or W3, commonly known as the Web),  is a system of interlinked hypertext documents accessed via the  Internet.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The browser is the piece of software (like Netscape or Mozilla) that knows how to communicate with the server.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The browser’s other big job is interpreting the HTML code and rendering the web page for the user.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Browser works on HTTP, responsible for creating request, interpreting response. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB COMPONENTS:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;li&gt;Software component that services  an incoming HTTP request and provides some kind of (hopefully valid)  response.&lt;/li&gt;
&lt;li&gt;Server-side object used by a Web-based client (browsers) to interact with J2EE applications.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Servlets and JSP pages are collectively called web components. &lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;WEB SERVER:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Web servers tirelessly wait for web requests; on getting a request for a resource, server finds the resource and sends it back.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Web servers are combinations of hardware and softwares that deliver (serves up) Web pages.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It uses Client-Server model and HTTP protocol.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;It  delivers the web pages to the client and to an application by using the  web browser and  the HTTP protocols respectively.Web server interacts  with the client through a web browser.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;Web Server passes the request to&amp;nbsp; Web Container.&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;Helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span class=&quot;postbody&quot;&gt;A Web application runs within a Web container of a Web server. &lt;/span&gt;The servlet container together with the web server (or application server) provides the HTTP interface to the world.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/9123757087222454679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/12/key-internet-terms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/9123757087222454679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/9123757087222454679'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/12/key-internet-terms.html' title='Key Internet Terms'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-7397618866285472932</id><published>2012-11-10T12:15:00.002+05:30</published><updated>2013-12-30T14:58:16.882+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="JAVASCRIPT"/><title type='text'>A short guide to Java Script</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Java Script&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Also referred to as JS or Js.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript is the scripting language of the Web. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Major Aim was to energize and enhance the user&#39;s web experience.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Inspired by SELF programming language.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Object based, Interpreted,
 scripting language. The part of the web browser that runs the java 
script is called JavaScript Interpreter.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript is object based
 and not object oriented because it doesn&#39;t support Inheritance and 
Polymorphism. It have built-in objects like windows etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript does not use classes. JavaScript is prototype based, not class based. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Created by Brendan Eich at Netscape in December 1995. (Earlier it was called &quot;LiveScript&quot; before that it was called &quot;Mocha&quot;).&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;European Computer Manufacturer&#39;s Association (ECMA) standardized the script and named it as ECMAScript.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript can be divided into three parts -&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Core Language (language fundamentals and syntax),&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Client-side (provides access to DOM and various browser objects) and&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Server-side (to code for server side standalone components of web application, access to server side objects).&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Client-side JavaScript is 
interpreted on the fly by the browser while Server-side JavaScript is 
first compiled into bytecode like Java.&amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Server-side JavaScript is not covered here.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Features&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript provides client
 side validations, so we are saved from passing data to server and 
reloading the page.&amp;nbsp;Prior to JavaScript dynamic behavior was achieved 
with Server-side scripting.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript is case-sensitive.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;A script can get the height and width of the browser window, client date as well as history of visited pages.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Alternate text can be provided, for occasions when JavaScript &amp;nbsp;support is absent or disabled with &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;noscript&amp;gt; &amp;lt;/noscript&amp;gt;&lt;/span&gt;&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Cookie data is stored in 
the DOM document object&#39;s cookie property as one or more &quot;name=value&quot; 
pairs, in which the values may not contain any whitespace, commas, or 
semi-colon characters.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Cookies can be set using document.cookie as well as &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;readCookie &lt;/span&gt;&lt;/b&gt;and &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;writeCookie &lt;/span&gt;&lt;/b&gt;method.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;escape() &lt;/b&gt;and &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;unescape() &lt;/span&gt;&lt;/b&gt;methods are used to encode/decode the strings - remove whitespace, etc other characters.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript and Security Concerns:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript 
doesn&#39;t allow you to read/write files on the user&#39;s hard drive. This 
limitation wipes out the potential for a lot of viruses. JavaScript 
doesn&#39;t support File Handling.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript 
doesn&#39;t support Network programming. It cannot establish a direct 
connection to any other hosts on the network. JavaScript program cannot 
use a client&#39;s machine as an attack platform from which to attempt to 
crack passwords on another machine.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Most browsers don&#39;t allow scripts to open or close windows without the user&#39;s approval.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;A JavaScript program cannot close a browser window without user confirmation unless it opened the window itself.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Access to cookies is restricted by owning websites.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript cannot
 be used to set the value attribute of a file input, and will not be 
allowed to use them to upload files without permission.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript cannot
 read what locations a user has visited by reading them from the 
location object, although it can tell the browser to jump back or 
forward any number of steps through the browser history. It cannot see 
what other Web pages the user has open.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It cannot see when the user interacts with other programs, or other parts of the browser window.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It cannot open 
windows out of sight from the user or too small for the user to see. 
JavaScript doesn&#39;t allow to open or resize the window to less than 
100px.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A script may not cause a 
window or frame to display an about: URL, such as about:cache, because 
these URLs can expose system information, such as the contents of the 
browser&#39;s cache.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;JavaScript is used as a &quot;script engine&quot; for other software 
components, such as ActiveX controls in Internet Explorer and plugins in
 Netscape. These may have file access and networking access.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;lt;Script&amp;gt; Tag&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Can be added anywhere in HTML, but its best to put it in&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &amp;lt;head&amp;gt;&lt;/span&gt;&lt;/b&gt; tag.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&quot;type&quot;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
 attribute identifies the type of scripting language. Other scripting 
language examples are VBScript, ASP.Net AJAX etc. It actually specifies 
MIME type.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;In addition to 
&amp;lt;script&amp;gt; tag, JavaScript code can be put directly into event 
handlers as well, its not a good practice and is done normally in case 
of a single line of code like an alert.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; function ...&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ....&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;script type=&quot;text/javascript&quot; src=&quot;myCustomJS.js&quot;&amp;gt; &amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Event&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript mechanism that allows you to trigger a piece of JavaScript when something of interest happens to the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Events are initiated by users but they come from browser.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;lt;h1 onclick=&quot;alert(&#39;Hello&#39;);&quot;&amp;gt;Click Here&amp;lt;/h1&amp;gt;&lt;/b&gt; //executing JS code&lt;br /&gt;&lt;b&gt;&amp;lt;h1 onmouseover=&quot;change()&quot;&amp;gt;Hello&amp;lt;/h1&amp;gt;&lt;/b&gt; // calling JS function&lt;br /&gt;&lt;b&gt;document.getElementById(&quot;submitButton&quot;).onclick=displayName();&lt;/b&gt;&lt;br /&gt;&lt;b&gt;document.getElementById(&quot;submitButton&quot;).onclick=function(){ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; changeName(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; displayName()&lt;br /&gt;};&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;JavaScript event object has properties for type, target, altKey/shiftKey/ctrlKey gives true/false based on if for alt/shift/ctrl key was pressed, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;charCode/keyCode provides &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ascii code in case of KEY-related events etc&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Event - Standard Event Model&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;With
 events defined in above section, we cannot Add and Remove Event 
listeners, Standard Event Model provides us ways to add/remove 
(attach/detach) event listeners.&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;element.addEventListener(&amp;lt;type&amp;gt;, &amp;lt;JSFunction&amp;gt;, &amp;lt;use Capture&amp;gt;);&lt;br /&gt;element.removeEventListener(&amp;lt;type&amp;gt;, &amp;lt;JSFunction&amp;gt;, &amp;lt;use Capture&amp;gt;);&lt;br /&gt;element.attachEvent(&amp;lt;type&amp;gt;, &amp;lt;JSFunction&amp;gt;); // Old IE browser&lt;br /&gt;element.detachEvent(&amp;lt;type&amp;gt;, &amp;lt;JSFunction&amp;gt;); // Old IE browser&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Bubbling is default behavior. (Google Bubbling and Capture for more information).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript variables, constants and data types&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Three basic data types: string, number and boolean.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are two other data types: function and object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Data type are assigned to variables automatically depending on the value assigned, it changes with the change in value.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;All numbers in JavaScript 
are stored as 64-bit (8-bytes) base 10, floating point numbers. There is
 no concept of int, long, and float.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;false &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;isn&#39;t exactly same as 0, but it converts to 0 when used where a number is expected.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The current variable type can be revealed by the &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;typeof&lt;/b&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;keyword.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;returns a value of &quot;undefined&quot; for uninitialized variables.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;Number.NaN, Number.POSITIVE_INFINITY, NUMBER.NEGATIVE_INFINITY, isNaN(), isFinite() &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;are some key properties and methods.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript Functions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;There are two ways to define functions -&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; A.&lt;/span&gt;&lt;/b&gt; Using Function declaration:&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;function test()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; alert(test function);&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; B.&lt;/span&gt;&lt;/b&gt; Using Function expression (Assigning anonymous function to a variable):&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var test2 = function()&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; alert(test function);&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Approach B demonstrate that functions are variables in JavaScript. This approach is revisited in JavaScript objects. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Approach A on using 
function declaration are loaded first in the programs. Java script 
engines hosts function declaration to the top. It is possible to call 
the function before its declaration. It is not the case with function 
expression, it&#39;ll throw error.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;t&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;est();&amp;nbsp; // This will not error out and work normally.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; test2(); // This will error out&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; // &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;because function expressions are not loaded first.&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;function test()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; alert(test function);&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;var test2 = function()&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; alert(test function);&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;A function can return another function.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;function testFunc(name)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;return&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; function()&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; var message = &quot;Hello &quot;+ name;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; alert(&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;message&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; };&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;var func = testFunc(&quot;Prince&quot;);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;func();&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To have variable &lt;b&gt;arguments &lt;/b&gt;functions - use arguments keyword.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;function sum()&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; total = 0;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; for (i=0; i &amp;lt; arguments.length;&amp;nbsp; i++)&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total += arguments[i];&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;var sumTotal = sum(100, 1, 2, 4);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;document.write(total);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Objects&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Memory area created by browser which represents an entity.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Almost everything is object in JavaScript in Java Script, ex Forms, Text field etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are three ways to create objects:-&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Define and create a direct instance of an object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;function customToString()&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;{&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp; return this.firstname+&quot; &quot;+this.lastname;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;};&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var emp=new Object();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; emp.firstname=&quot;Prince&quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; emp.lastname=&quot;Kapoor&quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; emp.ID=7918;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;emp.customToStr = customToString;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; document.write(emp.customToStr());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/script&amp;gt;&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Using JSON to define an object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;JSON Ex 1:&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;var emp={firstname:&quot;Prince&quot;,lastname:&quot;Kapoor&quot;,ID:7918};&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;document.write(&quot;Employee ID of &quot;+emp.firstname + &quot; is &quot; + emp.ID); &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;JSON Ex 2:&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;var emp=&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;{&amp;nbsp; firstname:&quot;Prince&quot;,&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;lastname:&quot;Kapoor&quot;,&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;ID:7918,&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getOutputText: function() {&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;return &quot;Employee ID of &quot;+this.firstname + &quot; is &quot; +this.ID;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;};&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;document.write(emp.getOutputText());&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Using a &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;prototype &lt;/span&gt;function to define an object, then create new object instances. &lt;span style=&quot;color: purple;&quot;&gt;&lt;b&gt;(MOST PREFERRED)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: purple;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;By naming conventions, functions starts with small letter and constructors start with Capital letter.&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Syntax: &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;function object-name (param1, param2, param3)&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; this.property1 = param1;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; this.property2 = param2;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;this.property3 = param3;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.method1 = function1;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; this.method2 = function2;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Ex:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;function Emp(firstname,lastname,id)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;// Above declaration could also be written as:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; // var Emp = function(firstname, lastname, id)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;{&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;this.firstname=firstname;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;this.lastname=lastname;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;this.ID=id;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;this.getFullName = function ()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.firstname+&quot; &quot;+ this.lastname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;/b&gt; &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; var prince = new Emp(&quot;Prince&quot;, &quot;Kapoor&quot;, 7918);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;When we need multiple objects, then we can also use factory functions, but using constructors are a better idea.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;With Factory methods also,
 in case we need to modify an object interface, we need to make changes 
at one place, like adding a new function to the object. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; function createEmp(firstName, lastName) {&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return {&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; firstName : firstName,&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; lastName : lastName,&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;getFullName : function () {&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;return this.firstName+&quot; &quot;+ this.lastName;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; var prince = createEmp (&quot;Prince&quot;, &quot;Kapoor&quot;);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The way we have defined 
functions above, including defining in the constructor is not the best 
way as it stores function definition in the memory separately for each 
object.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If we define it using the prototype then function definition will be stored only once.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Functions defined for Date, String etc JavaScript objects are also defined in the same way.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Ex.&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;function Emp(firstname,lastname,id)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;{&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;this.firstname=firstname;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;this.lastname=lastname;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;this.ID=id;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; Emp.prototype&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;.getFullName = function ()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.firstname+&quot; &quot;+ this.lastname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/b&gt;&lt;/b&gt; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;By using &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;apply(newObject)&lt;/b&gt;&lt;/span&gt; on function method, function can be executed as if it is part of another object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Emp (firstname,lastname,id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.firstname=firstname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lastname=lastname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ID=id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.getFullName = function (salutation)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return salutation+&quot; &quot;+this.firstname+&quot; &quot;+ this.lastname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function Person(firstname,lastname)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.firstname=firstname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lastname=lastname;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var emp1 = new Emp(&quot;Prince&quot;, &quot;Kapoor&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var person1 = new Person (&quot;Jai&quot;, &quot;Bhaskar&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&lt;span style=&quot;color: blue;&quot;&gt;emp1.getFullName.&lt;span style=&quot;color: purple;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;apply&lt;/span&gt;(person1, [&quot;Mr.&quot;])&lt;/span&gt;&lt;/span&gt;);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;In Apply we pass arguments as array and there is call() method, in which we pass arguments directly without any array.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&lt;span style=&quot;color: blue;&quot;&gt;emp1.getFullName.&lt;span style=&quot;color: purple;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;call&lt;/span&gt;(person1, &quot;Mr.&quot;)&lt;/span&gt;&lt;/span&gt;);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Following is practical example of apply/call - &lt;/span&gt;using methods of Array on arguments object.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.prototype.pop.apply(arguments);&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Objects are very flexible and can be extended using&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;b&gt;prototype&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;property&amp;nbsp;to add more object properties or methods.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&quot; &lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;prototype&lt;/b&gt;&amp;nbsp;&quot; extends object definition using its name, not instance name.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;DOM: &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Is an API for accessing and changing content, style document structure.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The
 W3C Document Object Model (DOM) is a platform and language-neutral 
interface that allows programs and scripts to dynamically access and 
update the content, structure, and style of a document. DOM is separated
 into 3 parts - Core DOM, XML DOM, HTML DOM. HTML DOM is standard object
 model for HTML.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The HTML DOM is a standard for how to get, change, add, or delete HTML elements.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;When a web page is 
loaded, the browser creates a Document Object Model of the page. The 
HTML DOM model is constructed as a tree of Objects.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJnqII3SlQrSbdhR62oQCQnFRcJha4Lkvr_GcckrDBang6mdfCrv86CpzxmjdBru_CuUYe8lvdD9kRJnV-msTuuH7kd1NRyEJ3EWpN2eJtfGS4lAP73SO53n0wNskzEDHJvvkxDnC3juw/s1600/HTML+DOM.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;369&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJnqII3SlQrSbdhR62oQCQnFRcJha4Lkvr_GcckrDBang6mdfCrv86CpzxmjdBru_CuUYe8lvdD9kRJnV-msTuuH7kd1NRyEJ3EWpN2eJtfGS4lAP73SO53n0wNskzEDHJvvkxDnC3juw/s640/HTML+DOM.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Window&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Represents content area of the browser.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are three types of dialog message communications: &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;window.alert(), window.confirm(), &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;and &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;window.prompt()&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;window.open()&lt;/span&gt;&lt;span style=&quot;font-family: inherit; font-weight: bold;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;is used to open a new window object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.moveTo()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;to move the current window.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.document&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt; &lt;/b&gt;represents HTML&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Object Type is &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;DOMWindow&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Window object has two self-referential properties, &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;window &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;and &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;self&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Either of these global variable to refer directly to the Window object. Ex.&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;self.close()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;window.top &lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;refers to the top-most window in case of multiple frames.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;window.self&lt;/b&gt;&amp;nbsp;is mostly used in comparisons like:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;parent&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;frames&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt; window&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;self&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;window.self != windpow.top&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Navigator&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Accesses browser program, version etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.navigator.appCodeName,window.navigator.appName, window.navigator.platform,&amp;nbsp;window.navigator.appVersion&lt;/span&gt;&lt;/b&gt;&amp;nbsp;(in  some cases&amp;nbsp;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;appMinorVersion&amp;nbsp;&lt;/b&gt;as well),&amp;nbsp;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.navigator.userAgent, navigator.systemLanguage, navigator.cookieEnabled&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;navigator.javaEnabled()&lt;/span&gt;&lt;/b&gt; for checking if java is enabled.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Screen&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Updates about physical environment in which browser is running, pixels height width etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Some key properties related to client screen are :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;window.screen.width, &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.screen.height, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.innerWidth, window.innerHeight, &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;window.screen.availWidth, window.screen.availHeight, &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;and &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;window.screen.colorDepth&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;History&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;For accessing browser history information. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;window.history&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;stores history information as an array.&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;history.back(), history.forward(), history.go()&lt;/span&gt;&lt;/b&gt; &lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;are key methods in history object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Location&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Maintains URL information of the page.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;window.location &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;object has 5 properties containing the components of full URL:&lt;b&gt; &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;location.href, location.protocol, location.host, location.pathname, location.hash&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Assigning a new URL to the &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;location &lt;/span&gt;&lt;/b&gt;property will cause the browser to load new page.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;reload()&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; method will cause the page to be reloaded.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;replace() method replaces the history entry.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;location.assign()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; method loads a new document. &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;window.location.assign(&quot;http://www.princekapoor82.blogspot.com&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Document&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Represents the HTML document.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Some key properties related to browser screen size are: &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;document.body.clientWidth, document.body.clientHeight&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;document.title, document.URL&lt;/span&gt;&lt;/b&gt;(shows same information as &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;location.href&lt;/span&gt;&lt;/b&gt; but not used for navigation),&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; document.domain&lt;/span&gt;&lt;/b&gt; (similar to &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;location.host&lt;/span&gt;&lt;/b&gt;),&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; document.lastModified&lt;/span&gt;&lt;/b&gt; and&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; document.referrer&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; are some of the key properties.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;document.write(), &lt;span style=&quot;color: blue;&quot;&gt;document.getElementById()&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;getElementByTagName()&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;getElementsByClassName(&lt;/span&gt;)&lt;/b&gt; are some of the most frequently used methods.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;write()&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; vs &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-weight: bold;&quot;&gt;CreateElement()&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;write &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;cannot
 be used to add new components once the page has been loaded as write 
will remove the page content and then write its content.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;write&amp;nbsp;&lt;/b&gt;is mostly used during page load.&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;document object has properties (arrays) for child objects for &lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;forms&lt;/b&gt;, &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;anchors&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;images&lt;/span&gt;&lt;/b&gt;, and &lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;links&lt;/b&gt;.
 Each of these objects is an array and contains items in the order in 
which they appear in the document. Please note: Images that are 
incorporated as part of the CSS Style are not part of &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;images &lt;/span&gt;&lt;/b&gt;array, only images defines with &lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;img&amp;gt;&lt;/b&gt; will constitute the array. These arrays are older ways of accessing the components, now &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;getElementBy*()&lt;/span&gt;&lt;/b&gt; methods are supposed to be used.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;form &lt;/span&gt;&lt;/b&gt;object has its own child &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;elements &lt;/span&gt;&lt;/b&gt;for all the form elements.&lt;/li&gt;
&lt;li style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Every form field has a form object that can be passed along to a function.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;onClick=&quot;validateDate(this.form)&quot;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;function validateDate(form)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Value of any field can be accessed using syntax:&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;form[&quot;StartDate&quot;].value&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;}&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;ul&gt;
&lt;li&gt;This approach of accessing data is same as getElementById() - It just makes code more readable.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Just like passing form object using this.form, you can pass form field object with this keyword. Ex&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;onClick=&quot;validateDate(this)&quot;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;All the presentational DOM properties are contained within a parent style property, which is a child of the object. For ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;obj.style.textAlign&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;To add/remove elements following methods can be used: &lt;b style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;document.createElement,
 document.createTextNode, &amp;lt;dom object reference&amp;gt;.appendChild, 
&amp;lt;parent dom object reference&amp;gt;.removeChild(&amp;lt;child dom object 
reference&amp;gt;);&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Form Validation&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Forms are used to collect information from websites checkboxes, textboxes, Buttons, dropdowns etc.&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;JavaScript can be used to validate data in HTML forms before sending off the content to a server.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Number &amp;amp; String&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;JavaScript numbers are stored as double precision floating point numbers.&lt;/span&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;parseInt(&quot;4 Apples&quot;) &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;returns 4. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&quot;10&quot; == 10.0&lt;/b&gt;&lt;/span&gt; returns true.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;String (aNumber)&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;converts number to string.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Number (aString)&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;converts string to number.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;Prince&quot; &amp;gt; &quot;Kapoor&quot;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;returns true because it evaluates based on ASCII.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To convert decimal to binary, octal, hexa-decimal, use toString method with appropriate base as parameter:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;var myNumber=16;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;document.write(myNumber.toString(16))&amp;nbsp;&amp;nbsp; // prints 1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;document.write(myNumber.toString(8))&amp;nbsp;&amp;nbsp;&amp;nbsp; // prints 2&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;document.write(myNumber.toString(2))&amp;nbsp;&amp;nbsp;&amp;nbsp; // returns 10000&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Auto type casting of numbers to text happens when we use then in Alert (Alert expects text).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Text Strings must be enclosed within double quote, nested inner string should be enclosed within single qoute.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There is a discrepancy in 
floating point calculations in Java and JavaScript. Check the result of 
15 * 81.66 or 0.7 * 5000 or 0.2 + 0.1.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;Infinity &lt;/b&gt;&lt;/span&gt;is a special number, 1/0 is Infinity. (Infinity == var) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;NaN&lt;/span&gt; &lt;/b&gt;- 1/&quot;abc&quot; is NaN&lt;b&gt;, &lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;isNan()&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;is used to check if parameter is a number or not.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Key Properties of Number - &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;MAX_VALUE, MIN_VALUE, NEGATIVE_INFINITY, POSITIVE_INFINITY, NaN&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Key Methods of Number&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; - &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;toExponential(), toFixed(), toPrecision(), toString(), valueOf()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;String Key Property - length&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;String Key Methods - &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;charAt(),
 charCodeAt(), concat(), fromCharCode(), indexOf(), lastIndexOf(), 
localeCompare(), match(), replace(), search(), slice(), split(), 
substr(), substring(), toLowerCase(), toUpperCase(), toString(), trim(),
 valueOf().&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Image&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Refers to images on the HTML screen (&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;img&amp;gt;&lt;/span&gt;&lt;/b&gt; tag).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Primarily used to pre-cache/pre-loading images based on some action/event. This helps in getting better response time.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To&amp;nbsp;pre-load&amp;nbsp;an image, we create a new &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Image()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; object in JavaScript and pass the URL of the&amp;nbsp;image.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Array&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;There are three ways to create an array:&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; 1.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var fruits = new Array(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;fruits&lt;/span&gt;&lt;/b&gt;[0]=&quot;Orange&quot;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;fruits&lt;/span&gt;&lt;/b&gt;[1]=&quot;Apple&quot;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;fruits&lt;/span&gt;&lt;/b&gt;[2]=&quot;Banana&quot;; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; 2.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var fruits = new Array(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Orange&quot;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Apple&quot;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Banana&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;);&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; 3.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var fruits = [&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Orange&quot;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Apple&quot;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;Banana&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;]&lt;/b&gt;;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var productList = []; // will create empty array.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Commonly used methods - length(), indexOf(), lastIndexOf(), concat().&lt;/li&gt;
&lt;li&gt;Other operations methods - toString(), join(), slice(), splice(), reverse(), sort(), push(), pop(), shift(), &lt;/li&gt;
&lt;li&gt;Array object has some interesting methods - every(), some(), filter(), forEach(), map()&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;These methods are passed callback function as parameter.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;every()&lt;/span&gt;&lt;/b&gt; is equivalent of for all.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;some()&lt;/span&gt;&lt;/b&gt; is for atleast one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;filter()&lt;/span&gt;&lt;/b&gt; creates a new array with items that match the criteria.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;forEach() &lt;/span&gt;&lt;/b&gt;doesn&#39;t return anything, just executes the function on every element withing an array.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;map() &lt;/span&gt;&lt;/b&gt;similar to forEach but returns the updated elements in a new array.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;arrayVar.every(arrayOfEvenNumbersTestFunc); &lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;signature of callback function -&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;arrayOfEvenNumbersTestFunc(value, index, array);&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Operators&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;= = = and ! = = should be 
used to check equality and inequality. = = &amp;nbsp;and ! = may produce 
unexpected results. For Example - (true = = 1) will return true while 
(true = = = 1) will return false. = = = and ! = = doesn&#39;t perform type 
coercion.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Switch works fine for number, string, as well as boolean.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;typeof&lt;/span&gt;&lt;/b&gt;
 operator can be used to get the type of the operand. Ex of types - 
&quot;object&quot;, &quot;boolean&quot;, &quot;function&quot;, &quot;number&quot;, &quot;string&quot;, &quot;undefined&quot;.&lt;ul&gt;
&lt;li&gt;Ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;typeof var == &quot;string&quot;&lt;/span&gt;&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;instanceOf &lt;/b&gt;&lt;/span&gt;operator is used to if a variable is an instance of a Object&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Ex. prince instanceOf Emp&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Cookie&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Distinct information delivered by web server to browser when they interact for the first time. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;For basics of Cookie - refer to &lt;a href=&quot;http://princekapoor82.blogspot.in/2012/12/key-internet-terms.html&quot; target=&quot;_blank&quot;&gt;Key Internet Terms&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;document.cookie &lt;/span&gt;&lt;/b&gt;is the cookie property.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;DOM and CSS&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;All the presentational DOM properties are contained within a parent style property, which is a child of the object. For ex. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;obj.style.textAlign&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;style.visibility &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;is used to toggle visibility (&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;hidden&quot;/&quot;visible&quot;&lt;/span&gt;&lt;/b&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Variable declared without a value will have the value &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;undefined&lt;/span&gt;&lt;/b&gt;. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;null&lt;/span&gt;&lt;/b&gt; and &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;undefined &lt;/span&gt;&lt;/b&gt;are different&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Timers and Animation&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;There are following methods related to timer event&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;setInterval() &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Executes a function repeatedly after a specified time interval.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;myTimerVar=setInterval(&amp;lt;javascript function&amp;gt;,milliseconds);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;setTimeOut() &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Executes a function once after a specified time interval.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;myTimerVar=setTimeOut(&amp;lt;javascript function&amp;gt;,milliseconds);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;clearInterval()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Clears interval set with setInterval() to stop further executions.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;clearInterval(myTimerVar);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;clearTimeOut()&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Same as clearInterval() to stop timer set with setTimeOut().&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;clearTimeOut(myTimerVar);&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;JavaScript Local Storage&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Designed to hold key/value pairs.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Can only be accessed by JS window object.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localStorage.userName = &quot;Prince&quot;; // stores userName.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; localStorage.setItem(&quot;LastName&quot;, &quot;Kapoor&quot;); // works same as above.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; localStorage.removeItem(&quot;userName&quot;); // removes userName.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localStorage.clear(); // clears all properties&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Values stored in LocalStorage are always of type string&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;JSON can also be used to store/retieve objects in LocalStorage.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;LocalStorage is restricted to a domain.&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Important Notes:&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;Alert()&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; is technically method of windows object, it can also be called as windows.alert()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Script data gets refreshed on refreshing the web page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To encode URI parameter (remove spaces and special characters), we have &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;b&gt;encodeURIComponent()&lt;/b&gt;&lt;/span&gt;. We normally encode for parameter and value.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;obj.innerHTML !== &quot;undefined&quot; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;can be used to test if obj is a DOM object.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;new&quot;&lt;/span&gt;&lt;/b&gt; keyword is missing in object creation, then object properties defined with &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;this&quot;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; will be created in window object.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;You can redeclare a variable, it&#39;ll not loose its value.&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var name=&quot;Prince&quot;;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var name;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt;To
 prevent links from refreshing or loading another page, we can use the 
JavaScript void() function and pass a parameter of 0 (zero)&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt; an&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt;d #&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href=&quot;JavaScript:void(0);&quot; onClick=&quot;alert(&#39;Testing Void(0)&#39;)&quot;&amp;gt;Click&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There is a special &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;for in&quot;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
 loop that can be used to list all the initialized properties and 
methods of an object (including DOM objects like windows etc). It can 
also be used for arrays (since arrays are also objects).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;RegExp - Object to support regular expression. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; \n &lt;/span&gt;&lt;/b&gt;escape sequence is used to specify a newline character in the alert dialog text.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;KEYPRESS &lt;/span&gt;&lt;/b&gt;event doesn&#39;t capture modifier keys like Shift, Ctrl etc. &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;KEYDOWN &lt;/span&gt;&lt;/b&gt;and &lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;KEYUP&lt;/span&gt;&lt;/b&gt; does capture.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Callback Functions&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Inline JavaScript code and JavaScript functions can be assigned to any HTML event attribute, such as onClick, onLoad etc.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&amp;lt;img id=&quot;update&quot; src=&quot;updateImg.jpg&quot; onClick=&quot;updateNavigation(3);&quot;&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Above
 approach mixes HTML and JavaScript, which intrudes structural nature of
 the HTML elements and increases maintainance and debugging efforts&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;We should keep the intergation of JavaScript and HTML to JavaScript itself. Following are some examples:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;b&gt;&amp;lt;body onload=&quot;initDetails();&quot;&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;can be&amp;nbsp;written in JavaScript as&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;b&gt;windows.onload=initDetails;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;in the&lt;/span&gt;&lt;b&gt;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;lt;HEAD&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;section.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;&amp;lt;body onload=&quot;initDetails(&quot;read_only&quot;);&quot;&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;can be&amp;nbsp;written in JavaScript as&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;windows.onload = function(evt) { initDetails(&quot;read_only&quot;);&amp;nbsp;}&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;AJAX and JavaScript&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;AJAX can write script that request information from the server and then process and display that information on the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;AJAX is not a technology but simply a new approach towards dynamic user interface combining other technologies. &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript Object Reference&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;JavaScript Object 
Reference will be helpful for coding in JavaScript. Reference will 
provide all the methods and properties available in an object.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Some Javascript examples:-&lt;/b&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;u&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Restricting users with what keys can be entered -&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 Check on key press event with the ascii code of the key pressed, if key
 is one of the restricted keys, then prevents default action.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;Implement Hot Keys -&amp;nbsp;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; event -&amp;gt; keyDown&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; event.ctrlKey should be true.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compare ascii code to check if the key down is the key which we need to capture for hot keys.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/7397618866285472932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/11/a-short-guide-to-java-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7397618866285472932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/7397618866285472932'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/11/a-short-guide-to-java-script.html' title='A short guide to Java Script'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJnqII3SlQrSbdhR62oQCQnFRcJha4Lkvr_GcckrDBang6mdfCrv86CpzxmjdBru_CuUYe8lvdD9kRJnV-msTuuH7kd1NRyEJ3EWpN2eJtfGS4lAP73SO53n0wNskzEDHJvvkxDnC3juw/s72-c/HTML+DOM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-2159588611637413734</id><published>2012-10-25T19:45:00.000+05:30</published><updated>2014-05-10T14:12:22.854+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><title type='text'>A Short Guide to CSS</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
Oracle Applications allows creation of Custom Look and Feel. All these custom look and feel creates a new CSS. We also define CSS property for many UI Widgets like OraDataText etc. All the existing skins defined in the profile option &lt;b&gt;&lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;Oracle Applications Look and Feel&lt;/span&gt; &lt;/b&gt;also maintain their own style and thus their own css. You can find all the CSS at &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;$OA_HTML/cabo/styles/cache&lt;/span&gt; in your file server. We&#39;ll learn basics of CSS here.&lt;/div&gt;
&lt;dl style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;dt&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;CSS&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;CSS stands for Cascading Style Sheets.&lt;/li&gt;
&lt;li&gt;External Style Sheets are stored in CSS files.&lt;/li&gt;
&lt;li&gt;Allows to separate HTML content from it’s style. Use your HTML file to arrange the content, and CSS for all of the presentation.&lt;/li&gt;
&lt;li&gt;External CSS are shared and thus allows us to change Look and Feel of entire website by modifying one CSS file.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;CSS improves performance because style sheet only needs to be downloaded to client machine and then it&#39;s used from cache.&lt;/li&gt;
&lt;li&gt;A nested element will inherit the properties assigned to the containing element.&lt;/li&gt;
&lt;li&gt;In case if same style is mentioned multiple times in same CSS/HTML file, the effect is cascaded. Following are the rules:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If same style is defined multiple times in a file, then the one defined at the end will take preference in case if same property is defined.&lt;/li&gt;
&lt;li&gt;Inline Style - Highest Priority&lt;/li&gt;
&lt;li&gt;Internal Style Sheet - High Priority&lt;/li&gt;
&lt;li&gt;External Style Sheet - Normal  Priority&lt;/li&gt;
&lt;li&gt;Browser Default - Low  Priority&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Divisions(&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;&lt;/span&gt;) are a block level (X)HTML element used to define sections of an (X)HTML file.&lt;/li&gt;
&lt;li&gt;Spans(&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt;) are very similar to divisions except they are an inline element versus a block level element. &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;width:40% &lt;/span&gt;will work with&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt; &amp;lt;div&amp;gt; &lt;/span&gt;and not with&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt; &amp;lt;span&amp;gt;&lt;/span&gt;, as div is block level while span is inline.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;b&gt;&amp;nbsp; Sample CSS Syntax&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;i&gt;selector {property:value;} &lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p {color:red;text-align:center;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Below is syntax in more readable form */&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color:red;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; text-align:center;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;P&lt;/span&gt; is called Selector.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;color:red;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot; &lt;/span&gt;and&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;text-align:center;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&quot;&lt;/span&gt; are called declaration.&lt;/li&gt;
&lt;li&gt;Every declaration ends with semi colon, and contains a property and value.&lt;/li&gt;
&lt;li&gt;Every declaration group is surrounded by curly brackets.&lt;/li&gt;
&lt;li&gt;/* .. */ is used for comments.&lt;/li&gt;
&lt;li&gt;We can combine multiple selectors together while defining CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; h1, h2, h3, h4, h5, h6&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color: #009900;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; font-family: Georgia, sans-serif;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;b&gt;&amp;nbsp; Inline Style&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Uses HTML attribute&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; style &lt;/span&gt;for this.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;pre&gt;&lt;code&gt;&lt;b&gt;&amp;lt;body style=&quot;background-color: #FF0000;&quot;&amp;gt;&lt;/b&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;b&gt;&amp;nbsp; Internal Stylesheet&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;Placing CSS code directly into the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;HEAD&amp;gt;&lt;/span&gt; section&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;title&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;style type=”text/css”&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;// &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;CSS Content Goes Here&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; body&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background-color:#d0e4fe;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;style&amp;gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;tag is used to define style information for a HTML document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;style&amp;gt; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;tag can appear multiple times in a HTML document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;b&gt;&amp;nbsp; External Stylesheet&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Created as external file and linked to the HTML document.&lt;/li&gt;
&lt;li&gt;We can link to the file externally by using either &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;link&amp;gt;&lt;/span&gt; or &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;style&amp;gt;&lt;/span&gt; with &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@import&lt;/span&gt;&lt;/span&gt; in the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt; section.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;link rel=”stylesheet” type=”text/css” href=“Path To stylesheet.css” /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;style type=&quot;text/css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @import url(&quot;import3.css&quot;);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; p { color : #f00; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/style&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;link&amp;gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &lt;/span&gt;is intended to link together your Web page with your style sheet.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;link&amp;gt; &lt;/span&gt;tag defines the relationship between a document and an external resource.&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;link&amp;gt; &lt;/span&gt;element is an empty element, it contains attributes only.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;link&amp;gt; &lt;/span&gt;element can appear any number of times in &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;HEAD&amp;gt;&lt;/span&gt; section.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@import &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;allows you to import one style sheet into another.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@import &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;is a way of creating a style sheet within your document, and then importing additional rules into the document.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;@import &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;rule must always be the first in the document. Even comments shouldn&#39;t come before this.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;lt;link&amp;gt; &lt;/span&gt;element gives better performance and more readable code compared to&lt;code&gt; @import.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Selector Type&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&amp;nbsp; HTML Selector&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;To redefine the general look for an entire HTML tag.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; p&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; font-family:verdana;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; text-align:left;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color:blue;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&amp;nbsp; Id Selector&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;The id selector is used to specify a style for a single, unique element.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #book&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; text-align:left;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color:blue;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&quot;book&quot;&amp;gt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is my first book. I wis&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;h to write a technical book once...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&amp;nbsp; Class Selector&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Used to specify a style for a group of elements.&lt;/li&gt;
&lt;li&gt;Can specify specific HTML elements which should be affected by a class. &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .red{&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;color:red&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;;}&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p.red{&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;color:red&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;;} &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp; Context Dependent Selector or Nested Selector or&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp;D&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-size: 16px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;ecendant&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Selector&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Used to specify a style for a selector when its used in conjunction with another one.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;p b{color:red;font-weight:bold;}&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; innerClassSelector {color:pink;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outerClassSelector {color:red;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;i&gt;.outerClassSelector .innerClassSelector{color:blue;} &lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;When&lt;/span&gt; &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;innerClassSelector &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;is used inside&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;outerClassSelector &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;then this style will be applicable, else the default of innerClassSelector will be applicable.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;innerClassSelector&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;needn&#39;t be the immediate child, but it should be in the same hierarchy.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Context dependent is specified by separating two classes with a space.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; Immediate Child Selector or&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;child combinator selector&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Similar to Context Dependent Selector but&lt;i&gt; it looks for immediate child only.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It impacts only the first child.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;i&gt;p &amp;gt; b{color:red;font-weight:bold;}&lt;/i&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;div style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;&quot;&gt;
&lt;b&gt;&amp;nbsp; Adjacent Sibling Selector&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It will style only the element that is immediately preceded by the former element.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #MAN + p {color:green;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;
&lt;b&gt;&amp;nbsp; General Sibling Selector&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;It will style only the element that is preceded by the former element, may not be immediatly.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #MAN ~ p {color:green;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp; Attribute Selector&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Style HTML elements that have specific attributes.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;[title]{color:green;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;b&gt;&amp;nbsp; Attribute&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp;and Value Selector&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Below Styles all elements with title=&quot;Custom Product Branding&quot;:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;[title=&quot;Custom Product Branding&quot;]&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{color:green;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Below styles all elements with a title attribute that contains word &quot;Hello&quot;:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;[title~=Hello]&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{color:green;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It&#39;ll work for &quot;Hello World&quot;, &quot;World Hello&quot; but will not work with &quot;Hello-world&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;[title~=&quot;Hello&quot;] &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;is same as&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt; [title~=Hello]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;[title~=&quot;Hello World&quot;] &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;[title~=&quot;Hello &quot;]&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;will not select anything for Styling.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;Below works if the attribute has hyphen ( - ) separated values:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [title|=Hello]&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{color:green;}&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It&#39;ll work for&amp;nbsp;&quot;Hello&quot;, &quot;Hello-World&quot; but will not work with &quot;Hello World&quot;, &amp;nbsp;&quot;World Hello&quot; or &quot;Hello!&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Mostly used for specifying languages.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;Below works if the attribute contains word &quot;Hello&quot; anywhere in value:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [title*=Hello]&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{color:green;}&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Below works if the attribute begins with &quot;&lt;/span&gt; &lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;http&quot; anywhere in value:&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;a[href^=&quot;http&quot;] {color:green;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Below works if the attribute ends with &quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.jpg&quot; anywhere in value:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;a[href$=&quot;.jpg&quot;] {color:green;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
The CSS Box Model&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, sans-serif; line-height: 28px; text-align: -webkit-auto;&quot;&gt;Every element in web design is a rectangular box.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; color: #333333; font-family: &#39;Whitney SSm A&#39;, &#39;Whitney SSm B&#39;, ff-meta-web-pro, sans-serif; font-size: 20px; font-weight: bold; line-height: 28px; text-align: center;&quot;&gt;
&lt;b style=&quot;background-color: white; box-sizing: border-box; text-align: -webkit-auto;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDeAqBYhiED3iIxuIR5pwqEruULU_VJGegoWwbXU_lCzr03HAUrQQwWtVsIwmXVChvPNVpeZYMjym24Ustqkee5PoPt3Dbl1gb3wgxtiOuR0Uiepg9UGNmR1dIMhxHgmweI7FNAHa95P8/s1600/CSS+Box+Model.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDeAqBYhiED3iIxuIR5pwqEruULU_VJGegoWwbXU_lCzr03HAUrQQwWtVsIwmXVChvPNVpeZYMjym24Ustqkee5PoPt3Dbl1gb3wgxtiOuR0Uiepg9UGNmR1dIMhxHgmweI7FNAHa95P8/s320/CSS+Box+Model.gif&quot; height=&quot;216&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Calculate Dimensions as follows:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZnxdBEzFdO3HT6fK7vEjdSvgqiL82sc8tXWLfwr-0VYwVzBux_2Jsl30KZEJ7RBvBP3HuB1As1G-1M70GfScYGc6lVfVe0mjcuI8L5UoAMEfEkFB2ThqkCcNoTvUriW-ptgY9iFcN1E/s1600/Calculate+Dimensions.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZnxdBEzFdO3HT6fK7vEjdSvgqiL82sc8tXWLfwr-0VYwVzBux_2Jsl30KZEJ7RBvBP3HuB1As1G-1M70GfScYGc6lVfVe0mjcuI8L5UoAMEfEkFB2ThqkCcNoTvUriW-ptgY9iFcN1E/s1600/Calculate+Dimensions.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Some Key Style Properties:&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;text-decoration&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Set or remove decorations from text, mostly used to remove underlines from link&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;h1 {text-decoration:overline;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;h2 {text-decoration:line-through;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;h3 {text-decoration:underline;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;h4 {text-decoration:blink;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;text-transform&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To specify uppercase and lowercase letters  in a text. &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;p.uppercase {text-transform:uppercase;} &amp;lt;!-- All Upper case --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;p.lowercase {text-transform:lowercase;} &amp;lt;!-- All Lower case --&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;p.capitalize {text-transform:capitalize;} &amp;lt;!-- Camel case --&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;text-indentation&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To specify the indentation of the first line  of a text, like we have in paragraphs in book.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;list-style-image:url(&#39;listImage.gif&#39;);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;To specify image to be used for lists (instead of default square or circle etc)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;list-style-type:none;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Will display list without any circle or square.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;i&gt;display:inline&lt;/i&gt;;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; when used within the list, will display horizontal list.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Display and Visibility&lt;/b&gt; &lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.hide{visibility:hidden;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;courier new&#39;; font-size: 13px; text-align: -webkit-auto;&quot;&gt;.hide{display:none;}&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;visibility:hidden hides an element, but it will still take up the same space as before.&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;display:none doesn&#39;t take up any space.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;:first-child Pseudo-class&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Styles a specified element that is the first child of another element.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;p:first-child{color:blue;}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Style the first p element&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.outerClass &amp;gt; .innerClass:first-child&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Styles first .innerClass element in all .outerClass elements.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.outerClass:&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;first-child&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp;.innerClass&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Styles all .innerClass elements in first .outerClass element.&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;:first-letter and :first-line&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;Pseudo-element&lt;/b&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;:first-letter&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;selector is used to add a style to the first letter of the specified selector.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;&quot;&gt;:first-line&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Styles the first line of text in a block level element.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;p:first-letter, div:first-letter {font-size:medium; color:#ff0000;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;p:first-line,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;div:first-&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;line&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;{font-size:medium; color: #00ff00;}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;p.intro:first-line,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;div:first-&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;line&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;{font-size:medium; color: #00ff00;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;opacity&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Create a transparent images and text with CSS.&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;img&lt;/span&gt;&lt;br style=&quot;background-color: white; text-align: -webkit-auto;&quot; /&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;{&lt;/span&gt;&lt;br style=&quot;background-color: white; text-align: -webkit-auto;&quot; /&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;opacity:0.5;&lt;/span&gt;&lt;br style=&quot;background-color: white; text-align: -webkit-auto;&quot; /&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;filter:alpha(opacity=50); /* For IE8 and earlier */&lt;/span&gt;&lt;br style=&quot;background-color: white; text-align: -webkit-auto;&quot; /&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;b style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;@media Rule&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Media Types allow you to specify how documents will be presented in different media.&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;@media screen&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; p {color:red;}&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;@media print&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; p {color:green;}&lt;/span&gt;&lt;br style=&quot;background-color: white;&quot; /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Tips:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Adding a border on hover makes images look coming out on mouse hover in Page.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Few New Features in CSS3:&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Border-radius&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;@font-face&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Box-shadow&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;2D Transforms&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Multi-Column Layout&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Multiple Backgrounds&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Opacity &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/2159588611637413734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/10/a-short-guide-to-css.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/2159588611637413734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/2159588611637413734'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/10/a-short-guide-to-css.html' title='A Short Guide to CSS'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDeAqBYhiED3iIxuIR5pwqEruULU_VJGegoWwbXU_lCzr03HAUrQQwWtVsIwmXVChvPNVpeZYMjym24Ustqkee5PoPt3Dbl1gb3wgxtiOuR0Uiepg9UGNmR1dIMhxHgmweI7FNAHa95P8/s72-c/CSS+Box+Model.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-1816223919229250360</id><published>2012-10-16T18:59:00.002+05:30</published><updated>2014-05-10T14:13:19.672+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web Design"/><title type='text'>A short guide on HTML</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot; trbidi=&quot;on&quot;&gt;
We all are working on Web Developments, and underneath all webpages is good old HTML. It helps to understand HTML a bit. I realized it more while working on new OAF CLAF. The challenge was to match the new Oracle Apps skin with the corporate website built on .net. Along with HTML, knowledge of UIX, CSS, and JAVASCRIPT is required for CLAF. Hope to cover it all, starting with HTML.  &lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Every web page you create must include the&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &amp;lt;HTML&amp;gt;, &amp;lt;HEAD&amp;gt;, &amp;lt;TITLE&amp;gt;&lt;/span&gt; and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;BODY&amp;gt;&lt;/span&gt; tags.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;TITLE&amp;gt;&lt;/span&gt; is used to identify the page on Bookmarks and Favorites list.&lt;/li&gt;
&lt;li&gt;The web addresses contained in a web page are of two types - Absolute (complete address) and relative (address of the resource from current page).&lt;/li&gt;
&lt;li&gt;File Extension (.JSP, .jsp) and (.HTM, .htm) could refer to same file on windows server but different on unix server. Its better to be uniform in the use of extension.&lt;/li&gt;
&lt;li&gt;HTML to download a file:&lt;/li&gt;
&lt;/ul&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;A HREF=&quot;Prince_Kapoor2012.docx&quot;&amp;gt; Click here to download my resume&amp;lt;/A&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;While testing your application it&#39;ll be a nice idea to test your pages in less color and less resolution mode.&lt;/li&gt;
&lt;li&gt;There are actually two ways of making text display as bold: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;b&amp;gt;&lt;/span&gt; and&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; &amp;lt;Strong&amp;gt;&lt;/span&gt; and Italics: &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;I&amp;gt;, &amp;lt;EM&amp;gt;&lt;/span&gt;. Purists prefer to use &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;Strong&amp;gt;&lt;/span&gt; and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;EM&amp;gt;&lt;/span&gt; because they imply that the text should receive special emphasis, rather than dictating exactly how that effect should be achieved. &amp;lt;B&amp;gt; and &amp;lt;I&amp;gt; remain the more popular of the two options.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Every form must begin with a form tag, which can be located anywhere in the body of the HTML document. The &amp;lt;Form&amp;gt; tag normally has two attributes, &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;METHOD &lt;/span&gt;and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;ACTION&lt;/span&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form action=&quot;mailto:princekapoor82@gmail.com&quot; method=&quot;post&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!--&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;/span&gt; indicates comments.&lt;/li&gt;
&lt;li&gt;The format of color code is&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt; #RRGGBB&lt;/span&gt;, where &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;rr&lt;/span&gt;, &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;gg &lt;/span&gt;and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;bb &lt;/span&gt;are two digit hexadecimal values for the red, green and blue.&lt;/li&gt;
&lt;li&gt;Please be aware that different computer monitors may display colors in very different hues. A shade of blue on one monitor may look purple in another. Sticking to named colors is preferred choice.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Spacer component of OAF and empty space in others is created as a small transparent images used in Img tag with width and height attributes. (&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;/OA_HTML/cabo/images/t.gif&lt;/span&gt;)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;An HTML table is an orderly arrangement of text and/or graphics into vertical columns and rows.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;OAF Table, AdvanceTable and TableLayout both are rendered as HTML table.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Even the MessageTextInput is rendered as an HTML table with prompts as separate column (right aligned) and values as separate (left aligned).&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Closing &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;/TD&amp;gt;&lt;/span&gt; is optional, since one cell of the table must end before the next one begins.&lt;/li&gt;
&lt;li&gt;Tags used in one cell are not carried over to other cells and tags from outside the table don&#39;t apply within the table.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;A &lt;b&gt;Search Engine&lt;/b&gt; is an automated computer program that looks in a database index for pages that contain specific words and phrases.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A &lt;b&gt;Robot&lt;/b&gt; (also called a &lt;b&gt;Spider&lt;/b&gt;) is an automated computer program that spends all day looking at the web pages all over the internet and building a database of the contents of all the pages it visits. They work for building the database of the Search Engine.&lt;/li&gt;
&lt;li&gt;The &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;meta&amp;gt;&lt;/span&gt; tag provides metadata about the HTML document. Metadata will not be displayed on the page, but will be machine parsable.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Meta elements are typically used to specify page description, keywords, author of the document, last modified, and other metadata.&lt;/li&gt;
&lt;li&gt;The metadata can be used by browsers (how to display content or reload page), search engines (keywords), or other web services.&lt;/li&gt;
&lt;li&gt;It is put in &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;Head&amp;gt; &lt;/span&gt;portion of a document.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;code&gt;&amp;lt;META NAME =&quot;description&quot; CONTENT=&quot;Prince Kapoor OAF Blog.&quot;&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;code&gt;&amp;lt;META NAME=&quot;keywords&quot; CONTENT=&quot;OAF, ADF, Oracle Apps Framework, Oracle Apps Technical, Oracle Application Framework&quot;&amp;gt; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The first tag gives search engine accurate information about your web page and second slightly increases page&#39;s ranking on the result based of the keywords.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;NAME -&amp;nbsp; &lt;/span&gt;Specifies a name for the metadata. Values for this attribute are &lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;application-name, author, description, generator, keywords.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Following is usually the first line in the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;Head&amp;gt;&lt;/span&gt; section:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;u style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;HTML 4.01: &lt;/u&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;u style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;HTML5: &lt;/u&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;http-equiv - &lt;/span&gt;Provides an HTTP header for the information/value of the content attribute. Values for this attribute are &lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;content-type, default-style, refresh&lt;/span&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;content - &lt;/span&gt;Gives the value associated with the http-equiv or name attribute.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;charset - &lt;/span&gt;Specifies the character encoding for the HTML document.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Following will refresh the document every 30 secs &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;lt;meta http-equiv=&quot;refresh&quot; content=&quot;30&quot;&amp;gt; &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;Frames &lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Way of arranging and presenting several web pages at once.&lt;/li&gt;
&lt;li&gt;Rectangular region within the browser window that displays a page, alongside other pages in other frames. &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Frameset&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Frameset document is an HTML page that instructs the Web Browser to split its window into multiple frames and specifies which web page should be displayed in each frame. &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;IFrame&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The Iframe (Inline Frame - Inline with the data on text/graphics on the page) is set up as a rigid size window frame that scrolls along with the rest of the page and it can exist without having a frameset defined.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Designed to insert interactive applications in Web pages.&lt;/li&gt;
&lt;li&gt;Frameset is not required for IFrame. &lt;/li&gt;
&lt;li&gt;One can alter an IFrame’s sections without requiring the user to reload the surrounding page.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;PPRs in OAF are implemented using IFRAMEs&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In the HTML source of any OAF page, you&#39;ll see &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt; and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt; used very frequently with the &lt;span style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;CSS&lt;/span&gt;. The difference between them is - div is a block element and comes with line breaks, span is inline. &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;DHTML is Dynamic HTML.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;DHTML is a way for you to change the way your pages look. You can instantly change the color of a page with the click of the mouse or without the click of a mouse. You can cause things to happen just by moving the mouse around the page.&lt;/li&gt;
&lt;li&gt;Combination of HTML and Client side scripting like Java Script.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Title attribute is used for showing tip text/extra information. Following are some example:&lt;/li&gt;
&lt;/ul&gt;
&lt;code&gt; &amp;lt;a href=&quot;http://princekapoor82.blogspot.com&quot; title=&quot;OAF Blog&quot;&amp;gt;Prince Kapoor Blog&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;abbr title=&quot;Oracle Applications Self Service Framework&quot;&amp;gt;OAF&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;p title=&quot;Oracle Applications Self Service Framework Training&quot;&amp;gt;OAF Training&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;IMG&amp;gt;&lt;/span&gt; tag should contain &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;alt&lt;/span&gt;, &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;width &lt;/span&gt;and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;height &lt;/span&gt;attribute. Text in &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;alt &lt;/span&gt;will be displayed if image can&#39;t be displayed. &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;width &lt;/span&gt;and &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;height &lt;/span&gt;attribute make the page render faster on the browser.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE&amp;gt;&lt;/span&gt; declaration must be the very first thing in your HTML document, before the &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt; tag.&lt;/li&gt;
&lt;li&gt;The &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE&amp;gt;&lt;/span&gt; declaration is not an HTML tag; it is an instruction to the web browser about what version of HTML the page is written in.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Following are the examples:&lt;br /&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;u style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;For HTML 5:-&lt;/u&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;For HTML 4.1 Strict:-&lt;/u&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&amp;gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;HTML 4.01 Transitional:-&lt;/u&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;DOCTYPE &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;indicates we are specifying the document type.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;HTML &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;means HTML is the root(first) element in your page.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PUBLIC &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;means standard is publicly available.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;indicates the exact version of that HTML.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&quot;http://www.w3.org/TR/html4/loose.dtd&quot; &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;indicates the file that identifies the particular standard.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;http://princekapoor82.blogspot.com&lt;/code&gt; or&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;http://princekapoor82.blogspot.com/&lt;/code&gt; will cause the server to look for a default file. The URL will change to &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;http://princekapoor82.blogspot.com/index.html&lt;/code&gt; or &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;http://princekapoor82.blogspot.com/default.htm&lt;/code&gt; depending on the web server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/1816223919229250360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/10/a-small-guide-on-html.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1816223919229250360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1816223919229250360'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/10/a-small-guide-on-html.html' title='A short guide on HTML'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-1199355389997489192</id><published>2012-08-01T21:24:00.001+05:30</published><updated>2014-05-10T13:52:23.411+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="OAF"/><title type='text'>Show OA References</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #741b47;&quot;&gt;OAF Tip:&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;color: #a64d79;&quot;&gt;Right click on any page layout region in structure window, and click on &quot;Show OA References&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #a64d79;&quot;&gt;Details of all OA Components being used in the page will be shown including the VO attributes, and Attribute sets.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/1199355389997489192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/08/show-oa-references.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1199355389997489192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/1199355389997489192'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/08/show-oa-references.html' title='Show OA References'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-3490085528322639068</id><published>2012-07-28T15:18:00.003+05:30</published><updated>2014-05-10T13:52:45.059+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><title type='text'>Oracle Locking</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;Lock&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;M&lt;/span&gt;ultiuser databases use some form of data locking to solve the problems 
associated with data concurrency, consistency, and integrity.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Prevent destructive interaction between transactions accessing the same resource, Data corruption, Inconsistent Read etc.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;All locks acquired by statements are held for the duration of the transaction.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Only transactions not waiting for the previously locked resources can acquire locks on now available resources.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Oracle Lock Modes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Exclusive Lock&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Prevents the associates resource from being shared.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;This lock mode is obtained to modify data.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;The first transaction to lock a resource exclusively is the only transaction that can alter the&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/b&gt;resource until the exclusive lock is released&lt;span style=&quot;font-size: small;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Other Transactions can read &lt;span style=&quot;font-size: small;&quot;&gt;the data&lt;span style=&quot;font-size: small;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;Share&lt;span style=&quot;font-size: small;&quot;&gt;d&lt;/span&gt; Lock&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Allows the associated resource to be shared for read access by multiple transactions.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Multiple transactions can acquire share locks on the same resource.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Shared Lock prevents write access by a transaction(who needs an exclusive lock).&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Oracle Lock Types&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Locks are used for shared resources. Resources in general are of two types:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;User objects, such as tables and rows (structures and data)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;System objects not visible to users, such as shared data structures in the memory and data dictionary rows&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Following are &lt;span style=&quot;font-size: small;&quot;&gt;Oracle&lt;span style=&quot;font-size: small;&quot;&gt; Lock Types:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DML locks (data locks)&lt;span style=&quot;font-size: small;&quot;&gt; - Applica&lt;span style=&quot;font-size: small;&quot;&gt;ble on resource type &lt;span style=&quot;font-size: small;&quot;&gt;1&lt;span style=&quot;font-size: small;&quot;&gt; described above&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DDL locks (dictionary locks)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Oracle Internal Locks/Latches&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Oracle Distributed Locks&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Oracle Parallell Cache Management Locks&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DML Locks&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt; (Data Locks)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;DML locks protect data. For example, table locks lock entire tables, row locks lock selected rows.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;DML operations can acquire data locks at two different levels: for specific rows and for entire tables.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Row Level Locks&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;All DML locks Oracle acquires automatically are row-level locks.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Both
 read committed and serializable transactions use row-level locking, and
 both will wait if they try to change a row updated by an uncommitted 
concurrent transaction. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;There is no limit to the number of row locks held by a transaction.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Readers of data do not wait for writers of the same data rows.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Row locking provides the lowest level of locking possible provides the best possible transaction concurrency.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A modified row is always locked exclusively so that other users cannot modify the row until the transaction holding the lock is committed or rolled back. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If a transaction obtains a row lock for a row, the transaction also acquires a table lock for the corresponding table. The table lock prevents conflicting DDL operations that would override data changes in a current transaction. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A transaction gets an exclusive DML lock for each row modified by any of the following statements: INSERT, UPDATE, DELETE, and SELECT with the FOR UPDATE clause.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #8e7cc3;&quot;&gt;Table Level Locks&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;A transaction acquires a table lock for DML statements such as INSERT/UPDATE/DELETE, SELECT with the FOR UPDATE, and LOCK TABLE.&amp;nbsp; Reasons are to reserve DML access to the table on behalf of a transaction and prevent DDL operations&lt;span style=&quot;font-size: x-small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Table locks prevent the an exclusive DDL lock on the same table which prevents DDL operations.&amp;nbsp; Example, a table cannot be altered or dropped if any uncommitted transaction holds a table lock for it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;* &lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Remember: INSERT, UPDATE, DELETE first scan and query the rows that they affect.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;








&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;DEADL&lt;span style=&quot;font-size: large;&quot;&gt;OC&lt;span style=&quot;font-size: large;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;S&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Oracle automatically detects deadlock situations and resolves them by rolling back one of the statements involved in the deadlock.&amp;nbsp; This releases one set of the conflicting row locks. A corresponding message also is returned to the transaction that undergoes the rollback. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Deadlocks often occur when transactions override Oracle default locking. Oracle itself does no lock escalation and does not use read locks for queries and does not use page-level locking, deadlocks rarely occur in Oracle.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Deadlocks can usually be avoided if transactions accessing the same tables lock those tables in the same order, either through implicit or explicit locks and when a sequence of locks for one transaction are required, you should consider acquiring the most exclusive (least compatible) lock first&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;color: #6fa8dc;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Always close explicit cursors when finished to free locks.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;




&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;Queries to identify the Locks and Kill Sessions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&amp;nbsp; l.inst_id,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTR(L.ORACLE_USERNAME,1,8) ORA_USER,&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTR(L.SESSION_ID,1,3) SID,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S.serial#,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTR(O.OWNER||&#39;.&#39;||O.OBJECT_NAME,1,40) OBJECT, P.SPID OS_PID,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECODE(L.LOCKED_MODE,&amp;nbsp;&amp;nbsp; 0,&#39;NONE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,&#39;NULL&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,&#39;ROW SHARE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,&#39;ROW EXCLUSIVE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,&#39;SHARE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5,&#39;SHARE ROW EXCLUSIVE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6,&#39;EXCLUSIVE&#39;,&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL) LOCK_MODE&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.GV_$LOCKED_OBJECT L&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , DBA_OBJECTS O&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , sys.GV_$SESSION S&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , sys.GV_$PROCESS P&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L.OBJECT_ID = O.OBJECT_ID&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l.inst_id = s.inst_id&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L.SESSION_ID = S.SID&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.inst_id = p.inst_id&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S.PADDR = P.ADDR(+)&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by l.inst_id&amp;nbsp; ;&lt;br /&gt;----------------------------------------------------&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select lobj.* from v$locked_object lobj, all_objects obj where obj.object_id = lobj.object_id and obj.object_name = &#39;EMPLOYEES&#39;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;----------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: black; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;select * from v$session where sid = 568&lt;br /&gt;serial num = 1190&lt;br /&gt;&lt;br /&gt;alter system&lt;br /&gt;kill session &#39;568,1190&#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: blue; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.com/2012/07/database-transaction-isolation.html&quot;&gt;Database Transaction - Isolation, Consistency, Concurrency, Locks, and more&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;




&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Reference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;http://docs.oracle.com/cd/B12037_01/server.101/b10743/consist.htm&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #674ea7;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/3490085528322639068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/oracle-locking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/3490085528322639068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/3490085528322639068'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/oracle-locking.html' title='Oracle Locking'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-8789540918090545298</id><published>2012-07-27T16:00:00.002+05:30</published><updated>2014-05-10T13:53:20.156+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Database 11g"/><title type='text'>Database Transaction - Isolation, Consistency, Concurrency, Locks, and more</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;   &lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;Database Transaction&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 1pt; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 1pt; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;Set of one or more statements that are executed as a unit.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;Logical, atomic unit of work that contains one or more SQL statements.&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;When a connection is created, it is in auto-commit mode, individual SQL statements are treated as a transaction.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The default is for a SQL statement to be committed when it is completed, not when it is executed. A statement is completed when all of its result sets and update counts have been retrieved.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Transactions can help to preserve the integrity of the data in a table, providing some level of protection against conflicts that arise when two users access data at the same time.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;Acid Properties of Transaction&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Heading3Char&quot;&gt;ATOMICITY&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;All tasks of a transaction are performed or none of them are.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4 style=&quot;color: #6fa8dc; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;CONSISTENCY&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The transaction takes the database from one consistent state to another consistent state.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4 style=&quot;color: #6fa8dc; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;ISOLATION&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;The effect of a transaction is not visible to other transactions until the transaction is committed.&lt;/span&gt;&lt;/div&gt;
&lt;h4 style=&quot;color: #6fa8dc; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;DURABILITY&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Changes made by committed transactions are permanent. &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;/h2&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;Data Consistency and Data Concurrency&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Multiple transactions executing at the same time need to produce meaningful and consistent results, that’s why Data Consistency and Data Concurrency are important.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;Data concurrency&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Many users should be able to access data at the same time. &lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=670204724030310473&quot; name=&quot;5903&quot;&gt;&lt;/a&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;Data consistency&lt;/span&gt;&lt;/span&gt; &lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Each user sees a consistent view of the data, including visible changes made by the user&#39;s own transactions and transactions of other users.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 5.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 5.0pt; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The ANSI/ISO standard SQL 92 speaks of three different &lt;i&gt;phenomena&lt;/i&gt; when a transaction reads data that another transaction might have changed: &lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Dirty read &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Non-repeatable read &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Phantom read&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Heading3Char&quot;&gt;DIRTY READ&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Occurs when a transaction is allowed to read data from a row that has been modified by another running transaction and not yet committed.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/jpeg;base64,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&quot; /&gt;&amp;nbsp; &lt;img alt=&quot;&quot; src=&quot;data:image/jpeg;base64,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&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4 class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;NON-REPEATABLE READ&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 5.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 5.0pt; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Occurs when transaction A retrieves a row, transaction B subsequently updates the row, and transaction A later retrieves the same row again. Transaction A retrieves the same row twice but sees different data.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 5.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 5.0pt; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/jpeg;base64,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&quot; /&gt;&lt;/span&gt; &lt;/div&gt;
&lt;h4 class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 5pt 0cm; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;PHANTOM READ&lt;/span&gt;&lt;i&gt; &lt;/i&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 5.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 5.0pt; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Occurs when transaction A retrieves a set of rows satisfying a given condition, transaction B subsequently inserts or updates a row such that the row now meets the condition in transaction A, and transaction A later repeats the conditional retrieval. Transaction A now sees an additional row. This row is referred to as a phantom.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: 5.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 5.0pt; mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/jpeg;base64,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&quot; /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;Isolation Levels&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The ANSI/ISO SQL standard (SQL92) defines four levels of transaction isolation with differing degrees of impact on transaction processing throughput.These isolation levels are defined in terms of three phenomena discussed above.&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Read Uncommitted&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Read Committed &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Repeatable Read &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Serializable&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;Read Uncommitted&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Each query can see only data last updated before the query, uncommitted data changes are also visible.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4 class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;Read Committed&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Each query can see only data committed before the query, not the transaction, began.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;h4 class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;Repeatable Read&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Retains locks on every row it touches until the end of the transaction. Even the rows that are not part of the query results are locked. Phantom Read can come because there is no range lock on table (Only insert with values that satisfy the criteria can introduce Phantom Rows).&lt;/span&gt;&lt;/div&gt;
&lt;h4 class=&quot;MsoNoSpacing&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;color: #6fa8dc;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;Serializable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;S&lt;/span&gt;erializable is similar to Repeatable Read but it also acquires a &lt;i&gt;key range lock &lt;/i&gt;which prevents the insertion of any new rows anywhere within the range.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;i&gt;Please note &lt;u&gt;Seriaizable are not usable in Distributed Transactions&lt;/u&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/jpeg;base64,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&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The &lt;i&gt;default isolation level&lt;/i&gt; of different DBMS varies quite widely. Most databases that feature transactions allow the user to set any isolation level. Some DBMS&#39;s also require additional syntax when performing a SELECT statement to acquire locks (e.g. &lt;b&gt;SELECT ... FOR UPDATE&lt;/b&gt; to acquire exclusive write locks on accessed rows).&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;According to SQL 92 (but not to Oracle), a transaction is always in exactly one of these isolation levels. Further: the isolation level cannot change within a transaction.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;The Oracle database uses the &lt;i&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Read Committed&lt;/b&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;and&lt;i&gt; Serializable &lt;/i&gt;isolation levels in addition to a read-only mode. By default, Oracle uses the read committed isolation level for database transactions. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNoSpacing&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span class=&quot;MsoIntenseEmphasis&quot;&gt;Read-Only transaction isolation level &lt;/span&gt;- Only data that was committed at the start of the transaction can be accessed by a query.&amp;nbsp; No modification to the data is allowed.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Difference &lt;span style=&quot;font-size: small;&quot;&gt;between Read Commit&lt;span style=&quot;font-size: small;&quot;&gt;ted Transactions and &lt;span style=&quot;font-size: small;&quot;&gt;Serial&lt;span style=&quot;font-size: small;&quot;&gt;izable Transaction&lt;span style=&quot;font-size: small;&quot;&gt;s:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Se&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;rializa&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;ble transactions acq&lt;span style=&quot;font-size: small;&quot;&gt;uires a range &lt;span style=&quot;font-size: small;&quot;&gt;l&lt;span style=&quot;font-size: small;&quot;&gt;oc&lt;span style=&quot;font-size: small;&quot;&gt;k so that no new rows can be ins&lt;span style=&quot;font-size: small;&quot;&gt;er&lt;span style=&quot;font-size: small;&quot;&gt;ted that satisfy the quer&lt;span style=&quot;font-size: small;&quot;&gt;y criteri&lt;span style=&quot;font-size: small;&quot;&gt;a &lt;span style=&quot;font-size: small;&quot;&gt;of Se&lt;span style=&quot;font-size: small;&quot;&gt;lecte&lt;span style=&quot;font-size: small;&quot;&gt;d rows.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;if the blocking transaction commits and releases its locks, a read  committed transaction proceeds with its intended update. A serializable  transaction, however, fails with the error &quot;Cannot serialize access&quot;,  because the other transaction has committed a change that was made since  the serializable transaction began.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #0b5394; font-size: large;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Setting Oracle Isolation Level&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;u&gt;Setting at Transaction Level:&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SET TRANSACTION ISOLATION LEVEL READ COMMITTED; &lt;br /&gt;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; &lt;br /&gt;
SET TRANSACTION ISOLATION LEVEL READ ONLY; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Setting at Session Level:&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED; &lt;br /&gt;
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;&lt;br /&gt;
ALTER SESSION SET ISOLATION_LEVEL READ ONLY; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://princekapoor82.blogspot.com/2012/07/oracle-locking.html&quot;&gt;Next Topic - Oracle Locking&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/8789540918090545298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/database-transaction-isolation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8789540918090545298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8789540918090545298'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/database-transaction-isolation.html' title='Database Transaction - Isolation, Consistency, Concurrency, Locks, and more'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-670204724030310473.post-8812927322268160361</id><published>2012-07-18T14:04:00.000+05:30</published><updated>2014-05-10T13:54:05.833+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="OAF"/><title type='text'>ValidateEntity, NewRowState and Commit</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Below is stated from Developer&#39;s Guide:&lt;/span&gt;&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Entity Object Initial / New State&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;By default, entity objects are created with the row state of STATUS_NEW, and BC4J adds them to its validation and post listener lists. In this case, any event that triggers a validation or database post sequence includes these entity objects.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;As stated in the OA Framework Model Coding Standards, always circumvent this behavior by explicitly calling the setNewRowState(STATUS_INITIALIZED) method on its containing ViewRowImpl immediately after you insert the newly created row. This sets the state of any associated entity objects to STATUS_INITIALIZED.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;When you do this, BC4J removes the corresponding entity objects from the transaction and validation listener lists, so they will not be validated or posted to the database. As soon as the user makes a change (an attribute &quot;setter&quot; is called), the entity object&#39;s state changes to STATUS_NEW, and BC4J returns it to the validation/post lists. You can also call setNewRowState(STATUS_NEW) on the ViewRowImpl to change the state manually at any time. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Code Behaviour:&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Case 1: Row has been modified in the UI before submit. Row State could be anything.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The RowState becomes &lt;span id=&quot;goog_1120525927&quot;&gt;&lt;/span&gt;New. &lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;ValidateEntity will get called before &lt;span id=&quot;goog_1120525928&quot;&gt;&lt;/span&gt;processFormRequest().&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Case 2: Called row.setNewRowState(Row.STATUS_NEW) after inserting a new row. Row has not been modified from UI.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;ValidateEntity will not get called before processFormRequest() but will get called on commit and postChanges.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Case 3: Called row.setNewRowState(Row.STATUS_INITIALISED) after inserting a new row. &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Row has not been modified from UI. &lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;ValidateEntity will not get called before processFormRequest() or on commit or postChanges.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The Row will be ignored by the Framework and removed from the Cache.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;Even the mandatory fields in the Entity Object are not checked.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Please note setting the row state (row.setNewRowState) should be done after adding the row to VO as recommended in the OAF Standard.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Though if you set the row state before adding it to the VO, it&#39;ll also work fine as long as you don&#39;t call any setter. The moment any setter is called row state changes to NEW.&lt;/span&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://princekapoor82.blogspot.com/feeds/8812927322268160361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/validateentity-newrowstate-and-commit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8812927322268160361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/670204724030310473/posts/default/8812927322268160361'/><link rel='alternate' type='text/html' href='http://princekapoor82.blogspot.com/2012/07/validateentity-newrowstate-and-commit.html' title='ValidateEntity, NewRowState and Commit'/><author><name>Prince Kapoor</name><uri>http://www.blogger.com/profile/14055861933669947196</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>