<?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: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-33537335</id><updated>2011-12-14T21:42:59.093-05:00</updated><category term='response.setContentType'/><category term='Clustered Indexes Non-clustered Indexes Indexing Database'/><category term='Document'/><category term='GWT'/><category term='Struts2'/><category term='JSP'/><category term='W3C'/><category term='struts.xml'/><category term='XMLHttpRequest'/><category term='AJAX'/><category term='reponse'/><category term='Struts2 Demo'/><category term='IBM RAD'/><category term='responseXML'/><category term='Web'/><category term='form'/><category term='HTTP'/><category term='responseText'/><category term='MyEclipse'/><category term='Slideshow'/><category term='IFRAME'/><category term='Presentation'/><category term='Struts2.0'/><category term='file'/><category term='action class'/><category term='My Eclipse Blue'/><category term='Struts'/><category term='innerHTML'/><category term='Internet'/><category term='src'/><category term='Powerpoint Presentation'/><category term='response.getWriter().write'/><category term='XML'/><category term='Java'/><category term='Struts 1'/><category term='Google'/><category term='DocumentBuilderFactory'/><category term='multipart/form-data'/><category term='Apache Tomcat'/><category term='html'/><category term='Eclipse'/><category term='server'/><category term='Upload'/><category term='Toolkit'/><category term='web.xml'/><category term='DocumentBuilder'/><category term='J2EE'/><category term='request'/><category term='Demo'/><category term='ENCTYPE'/><title type='text'>Techie Baba</title><subtitle type='html'>Purpose of this blog is to post technology related stuffs. You can find post related to:
- Problem scenarios.
- Some do's and don't.
- Introducing new tech.
- Discussions.
- Log of problems we faced; so that it can be referred in future. Generally we miss doing the same and end up in re-inventing the wheel.

NOTE: Mail to shashank.singh@gmail.com to contribute as a member.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33537335.post-1883434219730867429</id><published>2009-07-12T12:36:00.000-04:00</published><updated>2009-07-12T12:36:10.541-04:00</updated><title type='text'>Official Google Blog: Google accounts on Twitter</title><content type='html'>&lt;a href="http://googleblog.blogspot.com/2009/07/google-accounts-on-twitter.html"&gt;Official Google Blog: Google accounts on Twitter&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-1883434219730867429?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleblog.blogspot.com/2009/07/google-accounts-on-twitter.html' title='Official Google Blog: Google accounts on Twitter'/><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/1883434219730867429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=1883434219730867429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/1883434219730867429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/1883434219730867429'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2009/07/official-google-blog-google-accounts-on.html' title='Official Google Blog: Google accounts on Twitter'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-7141120581217640653</id><published>2008-09-22T11:38:00.003-04:00</published><updated>2009-05-15T10:20:22.145-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='struts.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='action class'/><category scheme='http://www.blogger.com/atom/ns#' term='web.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts2'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache Tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts2 Demo'/><title type='text'>HelloWorld in Struts 2.0</title><content type='html'>IDE: Eclipse (Version: 3.4.0)&lt;br /&gt;Struts2: Version 2.0.11.2&lt;br /&gt;Web Server: Apache Tomcat 6.0.18&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 1) Create a new "Dynamic Web Project" using File -&gt; New -&gt; Dynamic Web Project.&lt;/span&gt;&lt;br /&gt;        Project Name: Struts2Demo&lt;br /&gt;        Context Root: Struts2Demo&lt;br /&gt;        Content Directory: WebContent&lt;br /&gt;        Java Source Directory: src&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 2) Copy the following jars from Struts' lib[C:\struts-2.0.11.2\lib] to the Web-Project's lib directory (WebContent/WEB_INF/lib)&lt;/span&gt; [Minimum required set]&lt;br /&gt;        commons-logging-&lt;version&gt;.jar&lt;br /&gt;        freemarker-&lt;version&gt;.jar&lt;br /&gt;        ognl-&lt;version&gt;.jar&lt;br /&gt;        struts2-core-&lt;version&gt;.jar&lt;br /&gt;        xwork-&lt;version&gt;.jar&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 3) Create a new JSP file (HelloWorld.jsp):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&amp;lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"&lt;br /&gt;    pageEncoding="ISO-8859-1"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;%@ taglib prefix="s" uri="/struts-tags" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;Hello World!&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;h1&amp;gt;This is a test!&amp;lt;/h1&amp;gt;&lt;br /&gt;  &amp;lt;h2&amp;gt;&amp;lt;s:property value="message" /&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 4) Create the action class (HelloWorld):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;package com.struts2demo.action;&lt;br /&gt;&lt;br /&gt;import com.opensymphony.xwork2.ActionSupport;&lt;br /&gt;&lt;br /&gt;public class HelloWorld extends ActionSupport {&lt;br /&gt;    public static final String MESSAGE = "Struts is up and running ...";&lt;br /&gt;&lt;br /&gt;    public String execute() throws Exception {&lt;br /&gt;        setMessage(MESSAGE);&lt;br /&gt;        return SUCCESS;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private String message;&lt;br /&gt;&lt;br /&gt;    public void setMessage(String message){&lt;br /&gt;        this.message = message;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getMessage() {&lt;br /&gt;        return message;&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 5) Modify web.xml:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"&lt;br /&gt;"http://java.sun.com/dtd/web-app_2_3.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;web-app&amp;gt;&lt;br /&gt;  &amp;lt;display-name&amp;gt;Struts2Demo&amp;lt;/display-name&amp;gt;&lt;br /&gt;  &amp;lt;filter&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;filter-class&amp;gt;org.apache.struts2.dispatcher.FilterDispatcher&amp;lt;/filter-class&amp;gt;&lt;br /&gt;  &amp;lt;/filter&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;    &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;  &amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;welcome-file-list&amp;gt;&lt;br /&gt;   &amp;lt;welcome-file&amp;gt;HelloWorld.jsp&amp;lt;/welcome-file&amp;gt;&lt;br /&gt;  &amp;lt;/welcome-file-list&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 6) Create struts.xml in classpath (here in java source "src" folder):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE struts PUBLIC&lt;br /&gt;    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"&lt;br /&gt;    "http://struts.apache.org/dtds/struts-2.0.dtd"&amp;gt;&lt;br /&gt;&amp;lt;struts&amp;gt;&lt;br /&gt;    &amp;lt;package name="struts2demo" extends="struts-default"&amp;gt;&lt;br /&gt;        &amp;lt;action name="HelloWorld" class="com.struts2demo.action.HelloWorld"&amp;gt;&lt;br /&gt;            &amp;lt;result&amp;gt;/HelloWorld.jsp&amp;lt;/result&amp;gt;&lt;br /&gt;        &amp;lt;/action&amp;gt;&lt;br /&gt;        &amp;lt;!-- Add your actions here --&amp;gt;&lt;br /&gt;    &amp;lt;/package&amp;gt;&lt;br /&gt;&amp;lt;/struts&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 7) Deploy the application to tomcat and start the server:&lt;/span&gt;&lt;br /&gt;   http://localhost:8080/Struts2Demo/ : you can see HelloWorld.jsp (with no message from server)&lt;br /&gt;   Now try,&lt;br /&gt;   http://localhost:8080/Struts2Demo/HelloWorld.action&lt;br /&gt;   you can see message "Struts is up and running ..." which was set in HelloWorld.java&lt;br /&gt;&lt;br /&gt;This article has moved now to new my new &lt;a href="http://bawaal.com/blog/?p=156"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-7141120581217640653?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/7141120581217640653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=7141120581217640653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/7141120581217640653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/7141120581217640653'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2008/09/helloworld-in-struts-20.html' title='HelloWorld in Struts 2.0'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-6902999399024123814</id><published>2008-09-11T16:18:00.003-04:00</published><updated>2009-05-15T10:21:22.400-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Slideshow'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='IBM RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='Powerpoint Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='MyEclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='My Eclipse Blue'/><title type='text'>MyEclipse Blue vs IBM RAD</title><content type='html'>I was exploring whether we can replace IBM RAD with MyEclipse Blue.&lt;br /&gt;&lt;br /&gt;&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dfvqrvgj_62cmh8nbgw' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/Presentation?id=dfvqrvgj_62cmh8nbgw"&gt;To see the presentation click here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=155"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-6902999399024123814?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://docs.google.com/Presentation?id=dfvqrvgj_62cmh8nbgw' title='MyEclipse Blue vs IBM RAD'/><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/6902999399024123814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=6902999399024123814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6902999399024123814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6902999399024123814'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2008/09/myeclipse-blue-vs-ibm-rad.html' title='MyEclipse Blue vs IBM RAD'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-1269702105632882723</id><published>2008-08-20T16:20:00.001-04:00</published><updated>2009-05-15T10:26:12.157-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clustered Indexes Non-clustered Indexes Indexing Database'/><title type='text'>Clustered Index Vs Non-clustered Index</title><content type='html'>A database index is a data structure that is used for faster retrieval of data from a database table.&lt;br /&gt;&lt;br /&gt;Clustered Indexing: Indexing is done on physical storage. Therefore you can have only one clustered index per table. Generally clustered index is built using Primary Key.&lt;br /&gt;&lt;br /&gt;Non-clustered Indexing: Indexing is done logically. Therefore you can have multiple non-clustered indexes per table.&lt;br /&gt;&lt;br /&gt;Since, a table can have just one Clustered Index, indexing need to be done carefully. In general scenario apply clustered index unique (PK), most queried column.&lt;br /&gt;&lt;br /&gt;Sometime, you may need to work with other non-sorted columns such as Name, Description ( especially , varchar/char typed columns ). Then your physical data store cannot be ordered physically. In this case, you should use Non-Clustered Index for these columns. Because Non-Clustered Indexes can have logical sorting order.&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=154"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-1269702105632882723?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/1269702105632882723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=1269702105632882723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/1269702105632882723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/1269702105632882723'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2008/08/clustered-index-vs-non-clustered-index.html' title='Clustered Index Vs Non-clustered Index'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-5990690314285763912</id><published>2008-04-07T17:58:00.003-04:00</published><updated>2009-05-15T10:22:53.862-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DocumentBuilderFactory'/><category scheme='http://www.blogger.com/atom/ns#' term='Document'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='W3C'/><category scheme='http://www.blogger.com/atom/ns#' term='DocumentBuilder'/><title type='text'>How to convert Java String to DOM document Object?</title><content type='html'>&lt;pre style="color: rgb(0, 0, 0);" class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;It's a simple thing to do.&lt;br /&gt;Just provide String Object as an InputSource or&lt;br /&gt;InputStream to DocumentBuilder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;String xmlString; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DocumentBuilderFactory factory =&lt;br /&gt;  DocumentBuilderFactory.newInstance();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;DocumentBuilder builder = factory.newDocumentBuilder();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Document document =&lt;br /&gt; builder.parse(&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; InputSource(&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; StringReader(xmlString)));&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This article has moved to my new &lt;a href="http://bawaal.com/blog/?p=153"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-5990690314285763912?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/5990690314285763912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=5990690314285763912' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5990690314285763912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5990690314285763912'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2008/04/how-to-convert-java-string-to-dom.html' title='How to convert Java String to DOM document Object?'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-2799847187784286944</id><published>2008-03-04T10:27:00.000-05:00</published><updated>2008-03-04T10:28:52.162-05:00</updated><title type='text'>My wikipedia post</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Output_display_data_unit"&gt;http://en.wikipedia.org/wiki/Output_display_data_unit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-2799847187784286944?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/2799847187784286944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=2799847187784286944' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/2799847187784286944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/2799847187784286944'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2008/03/my-wikipedia-post.html' title='My wikipedia post'/><author><name>Adil</name><uri>http://www.blogger.com/profile/00720784141137020437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/702/1272/1600/ad.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-5711089507730215851</id><published>2007-12-19T18:05:00.001-05:00</published><updated>2009-05-15T10:24:05.486-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Struts 1'/><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts2'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts'/><title type='text'>Struts 2.0 Explained in Brief!</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;HighLights of Struts 2.0:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Action classes&lt;/span&gt; are simplified POJOs (Plain Old Java Objects). Any Java class with execute() method can be used as an Action class.&lt;/li&gt;&lt;li&gt;Struts 2 doesn't supports the &lt;span style="font-weight: bold; font-style: italic;"&gt;ActionForm&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Most of the configuration elements in the Struts 2 &lt;span style="font-weight: bold;"&gt;configuration&lt;/span&gt; have default values, so there is no need to set values unless you need to change the default value. This helps reducing the configuration requirement.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Interceptors&lt;/span&gt;: Struts 2 introduces a new concept in the framework i.e. interceptors. Interceptors can be executed before and after an &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; class is executed. Interceptors are configured to apply common functionality to a request like validation, checking session, etc. All the request pass through a set of interceptors before they are sent to an &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; class and after the execution of Action class request passes through the interceptors again in the reverse order.&lt;/li&gt;&lt;li&gt;Struts 2 tags provides support for &lt;span style="font-weight: bold;"&gt;AJAX&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Framework automatically tracks checkboxes; if  a checkbox is missing, the default value "false" is assumed.&lt;/li&gt;&lt;li&gt;Plug-in: Struts 2 extensions can be installed by just dropping the jar files into /WEB-INF/lib directory. No manual configuration is required.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Architecture Explained:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://struts.apache.org/2.x/docs/big-picture.data/Struts2-Architecture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://struts.apache.org/2.x/docs/big-picture.data/Struts2-Architecture.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Fig 1. The diagram describes the framework's architecture.&lt;/span&gt;&lt;/div&gt;Struts 2 is based on standard technologies such as Java filters, JavaBeans, ResourceBundles, Locales and XML, as well as few open source packages such as &lt;a href="http://www.ognl.org/"&gt;OGNL&lt;/a&gt;(Object Graph Navigation Language) and &lt;a href="http://www.opensymphony.com/xwork/"&gt;XWork&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;How Struts 2.0 Framework works (in brief):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An initial request goes to the servlet container where it passes though a chain of filters.&lt;/li&gt;&lt;li&gt;Request passes through an optional &lt;span style="font-style: italic;"&gt;ActionContextCleanUp&lt;/span&gt; filter (useful if integrating with other technologies).&lt;/li&gt;&lt;li&gt;Then the &lt;span style="font-style: italic;"&gt;FilterDispatcher&lt;/span&gt; (required) is called, which uses the ActionMapper to determine whether there is a need to invoke an action for this request. If yes, it delegates the control to the &lt;span style="font-style: italic;"&gt;ActionProxy&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;ActionProxy&lt;/span&gt; utilizes the framework configuration files manager, which is initialized from the struts.xml file. &lt;span style="font-style: italic;"&gt;ActionProxy&lt;/span&gt; creates an &lt;span style="font-style: italic;"&gt;ActionInvocation&lt;/span&gt;, which is responsible for implementing the command pattern.&lt;/li&gt;&lt;li&gt;The &lt;span style="font-style: italic;"&gt;ActionInvocation&lt;/span&gt; process invokes the required interceptors and then invokes an &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Once the &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; is executed, the &lt;span style="font-style: italic;"&gt;ActionInvocation&lt;/span&gt; is responsible for looking up the proper result associated with the &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; result code mapped in &lt;span style="font-style: italic;"&gt;struts.xml&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Result is then executed, which, most of the time, renders a JSP or template written using FreeMarker or Velocity.&lt;/li&gt;&lt;li&gt;Interceptors are executed again after completing the &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; in the reverse order.&lt;/li&gt;&lt;li&gt;If the &lt;span style="font-style: italic;"&gt;ActionContextCleanUp&lt;/span&gt; filter is configured, the &lt;span style="font-style: italic;"&gt;FilterDispatcher&lt;/span&gt; will not clean up the &lt;span style="font-style: italic;"&gt;ThreadLocal ActionContext&lt;/span&gt;. If the &lt;span style="font-style: italic;"&gt;ActionContextCleanUp&lt;/span&gt; filter is not configured, the &lt;span style="font-style: italic;"&gt;FilterDispathcer&lt;/span&gt; will clean up all the &lt;span style="font-style: italic;"&gt;ThreadLocal&lt;/span&gt;s present.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;NOTE : (&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;ActionContext has the complete details of the runtime request and response. The framework uses ThreadLocal in connection with the ActonContext class to make the configuration and other runtime details available.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Major Differences from Struts 1:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Filters have replaced servlets in Struts 2. In web.xml the tags  and  tags to map the controller, &lt;span style="font-style: italic;"&gt;ActionServlet&lt;/span&gt; has been replaced by  and  tags to map the dispatcher, &lt;span style="font-style: italic;"&gt;FilterDispatcher&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;ActionForm&lt;/span&gt;s are obsolete now. Properties are part of the &lt;span style="font-style: italic;"&gt;Action&lt;/span&gt; class.&lt;/li&gt;&lt;li&gt;The default name of configuration file is struts.xml (this file should reside on the classpath of the webapp, generally /WEB_INF/classes).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Struts 1 Action&lt;/span&gt;s are singletons and hence need to be thread-safe, since only one instance of the class will be available to handle all request for that Action. &lt;span style="font-weight: bold;"&gt;Struts 2 Action&lt;/span&gt;s are not singletons; they are instantiated for each request, and hence they need not be thread-safe.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Struts 1 Action&lt;/span&gt;s use the Servlet API and hence are HTTP dependent.&lt;span style="font-weight: bold;"&gt; Struts 2 Action&lt;/span&gt;s are not coupled to a container and hence are HTTP independent.&lt;/li&gt;&lt;li&gt;Unit Testing: In Struts 1 Actions can't be tested separately. Struts 2 Actions can be tested easily with the support of dependency injection. Actions can be instantiated with the properties set and the method invoked.&lt;/li&gt;&lt;li&gt;Struts 2 supports Java 5 annotations, which can be used as an alternate to XML files.&lt;/li&gt;&lt;/ul&gt;There are quite few more changes&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=151"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-5711089507730215851?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/5711089507730215851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=5711089507730215851' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5711089507730215851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5711089507730215851'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/12/struts-20-explained.html' title='Struts 2.0 Explained in Brief!'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-5025956370773412336</id><published>2007-12-05T11:09:00.001-05:00</published><updated>2009-05-15T10:24:38.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Demo'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Google Web Toolkit (GWT) &amp; Eclipse</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Step 1) Create Eclipse Project:&lt;/span&gt;&lt;br /&gt;C:\gwt-windows-1.4.60&gt;projectCreator -eclipse ShankyDemoPrj -out myCode/ShankyDemoDir&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2) Create GWT Code Sample:&lt;/span&gt;&lt;br /&gt;C:\gwt-windows-1.4.60&gt;applicationCreator -eclipse ShankyDemoPrj -out myCode/ShankyDemoDir com.shankydemo.client.GWTDemo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3) Setup Internationalization:&lt;/span&gt;&lt;br /&gt;C:\gwt-windows-1.4.60&gt;i18nCreator -eclipse ShankyDemoPrj -out myCode/ShankyDemoDir com.shankydemo.client.GWTDemoConstants&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_a0UqprfccbA/R1myOroAmMI/AAAAAAAAAHA/TvELnvo9mn0/s1600-h/gwt_eclipse_create.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_a0UqprfccbA/R1myOroAmMI/AAAAAAAAAHA/TvELnvo9mn0/s320/gwt_eclipse_create.JPG" alt="" id="BLOGGER_PHOTO_ID_5141336414918580418" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;Fig 1: Shows output at Command Line after running the above commands.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;To create/update the Java constant file run the newly created "&lt;name_provided_for_constant_file&gt;-i18n.cmd" in the root folder and it would generate/update the Java constant file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4) Import the project created to Eclipse (as shown in figures below):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/name_provided_for_constant_file&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_a0UqprfccbA/R1hwKroAmJI/AAAAAAAAAGo/VKsDKq3gtEI/s1600-h/gwt_eclipse_import.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_a0UqprfccbA/R1hwKroAmJI/AAAAAAAAAGo/VKsDKq3gtEI/s320/gwt_eclipse_import.JPG" alt="" id="BLOGGER_PHOTO_ID_5140982303454959762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;Fig 2: Import Menu in Eclipse.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_a0UqprfccbA/R1hwPboAmKI/AAAAAAAAAGw/6SiXWvlQ9yY/s1600-h/gwt_eclipse_import_2.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_a0UqprfccbA/R1hwPboAmKI/AAAAAAAAAGw/6SiXWvlQ9yY/s320/gwt_eclipse_import_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5140982385059338402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;Fig 3: Select "Import Existing Project into Workspace".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_a0UqprfccbA/R1hwUroAmLI/AAAAAAAAAG4/VfG4vK2j628/s1600-h/gwt_eclipse_import_3.JPG"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_a0UqprfccbA/R1hwUroAmLI/AAAAAAAAAG4/VfG4vK2j628/s320/gwt_eclipse_import_3.JPG" alt="" id="BLOGGER_PHOTO_ID_5140982475253651634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;Fig 4: Click Finish and Project is imported into Eclipse's Workspace.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If you want to add a specific CSS file into project:&lt;/span&gt;&lt;br /&gt;Add following into the &lt;appname&gt;.gwt.xml file:&lt;br /&gt;  &lt;span style="font-style: italic;"&gt;&lt;stylesheet src="GWTDemo.css"&gt;&lt;/stylesheet&gt;&lt;/span&gt;&lt;br /&gt;within the &lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;module&gt;&lt;/module&gt;&lt;/span&gt; tags.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/nj58733/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;/appname&gt;&lt;br /&gt;&lt;br /&gt;This article has moved to my new &lt;a href="http://bawaal.com/blog/?p=150"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-5025956370773412336?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/5025956370773412336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=5025956370773412336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5025956370773412336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/5025956370773412336'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/12/google-web-toolkit-eclipse.html' title='Google Web Toolkit (GWT) &amp; Eclipse'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_a0UqprfccbA/R1myOroAmMI/AAAAAAAAAHA/TvELnvo9mn0/s72-c/gwt_eclipse_create.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-6921974582196666789</id><published>2007-11-07T15:07:00.000-05:00</published><updated>2007-11-07T15:16:45.712-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='innerHTML'/><category scheme='http://www.blogger.com/atom/ns#' term='IFRAME'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='src'/><title type='text'>Can you change innerHTML of IFRAME?</title><content type='html'>IFRAME tag in HTML doesn't has innerHTML attribute/property which could have been used to change the content of IFRAME without changing "SRC".&lt;br /&gt;&lt;br /&gt;If your IFrame is defined like : &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;&amp;lt;iframe name='myIFRAME' &amp;gt; &amp;lt;/iframe&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In your javascript function you can change innerHTML of IFRAME using:&lt;br /&gt;&lt;br /&gt;   &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;document.myIFRAME.document.body.innerHTML = 'yourHTML';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;similarly you can change innerHTML of components inside the IFRAME:&lt;br /&gt;&lt;br /&gt;   &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;document.myIFRAME.document.getElementById('your_element_id').innerHTML = 'yourHTML';&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-6921974582196666789?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/6921974582196666789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=6921974582196666789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6921974582196666789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6921974582196666789'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/11/can-you-change-innerhtml-of-iframe.html' title='Can you change innerHTML of IFRAME?'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-6201247636854395266</id><published>2007-11-06T18:10:00.001-05:00</published><updated>2009-05-15T10:25:20.102-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='multipart/form-data'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='file'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><category scheme='http://www.blogger.com/atom/ns#' term='Upload'/><category scheme='http://www.blogger.com/atom/ns#' term='ENCTYPE'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts'/><title type='text'>File Upload using STRUTS</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1. HTML code snippet for file upload:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;FORM name="uploadForm" ENCTYPE='multipart/form-data' method="POST" action="/Upload.do"&amp;gt;&lt;br /&gt;    &amp;lt;LABEL FOR="theFile"&amp;gt;File to be Uploaded:&amp;lt;/LABEL&amp;gt;&lt;br /&gt;    &amp;lt;INPUT TYPE="file" NAME="myFile"&amp;gt;&lt;br /&gt;    &amp;lt;INPUT TYPE="submit" NAME="uploadButton" value="Upload File"&amp;gt;&lt;br /&gt;&amp;lt;/FORM&amp;gt;&lt;br /&gt;&lt;br /&gt;You need to specify &lt;span style="font-weight: bold;"&gt;ENCTYPE&lt;/span&gt; attribute of the FORM as '&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 255);"&gt;multipart/form-data&lt;/span&gt;' to submit the file as a part of POST request.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Create an ActionForm&lt;/span&gt;:&lt;br /&gt;ActionForm has a property having same name as file input field in the HTML (&amp;lt;INPUT TYPE="file" NAME="myFile"&amp;gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    public class UploadFileForm extends ActionForm {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;            private FormFile myFile;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    public FormFile getMyFile() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;                    return myFile;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    public void setMyFile(FormFile file) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;        this.myFile = file;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Changes in struts-config.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Form Bean&lt;/span&gt;:&lt;br /&gt;    &amp;lt;form-beans&amp;gt;&lt;br /&gt;        &amp;lt;form-bean name="uploadFileForm" type="com.shashank.UploadFileForm"&amp;gt;&lt;br /&gt;    &amp;lt;/form-bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Action Mapping&lt;/span&gt;:&lt;br /&gt; &amp;lt;action-mappings&amp;gt;&lt;br /&gt;     &amp;lt;action path="/Upload" type="com.shashank.UploadAction" name="uploadFileForm"&amp;gt;&lt;br /&gt;         &amp;lt;forward name="success" path="/jsp/Uploader.jsp" /&amp;gt;&lt;br /&gt;         &amp;lt;forward name="failure" path="/jsp/error.jsp" /&amp;gt;&lt;br /&gt;     &amp;lt;/action&amp;gt;&lt;br /&gt; &amp;lt;action-mappings&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Action Class:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;public class UploadAction extends Action {&lt;br /&gt;&lt;br /&gt;   public ActionForward execute(ActionMapping mapping, ActionForm form,&lt;br /&gt;       HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;       throws Exception {&lt;br /&gt;       try {&lt;br /&gt;           UploadFileForm fileForm = (UploadFileForm)form;&lt;br /&gt;&lt;br /&gt;           FormFile myFile = fileForm.getMyFile();&lt;br /&gt;           if (myFile != null) {&lt;br /&gt;               String fileName    = myFile.getFileName();&lt;br /&gt;               String filePath = "/upload";            //define the directory where you need to upload&lt;br /&gt;&lt;br /&gt;               /* Save file on the server */&lt;br /&gt;               if(!fileName.equals("")) {&lt;br /&gt;                   File file = new File(filePath );&lt;br /&gt;                   file.mkdirs();&lt;br /&gt;                 &lt;br /&gt;                   File fileToCreate = new File(filePath, fileName);&lt;br /&gt;                   if(!fileToCreate.exists()) {&lt;br /&gt;                       FileOutputStream fileOutStream = new FileOutputStream(fileToCreate);&lt;br /&gt;                       fileOutStream.write(myFile.getFileData());&lt;br /&gt;                       fileOutStream.flush();&lt;br /&gt;                       fileOutStream.close();&lt;br /&gt;                                                    }             // END :  if(!fileToCreate.exists())&lt;br /&gt;               } // END : if(!fileName.equals(""))&lt;br /&gt;           } // END :  if (myFile != null)&lt;br /&gt;       } catch (Exception e) {&lt;br /&gt;                           e.printStackTrace();&lt;br /&gt;               }&lt;br /&gt;   }            // END of execute()&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=148"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-6201247636854395266?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/6201247636854395266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=6201247636854395266' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6201247636854395266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6201247636854395266'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/11/upload-file-to-server-through-web.html' title='File Upload using STRUTS'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-4336820540004225692</id><published>2007-06-25T13:36:00.000-04:00</published><updated>2007-06-25T13:39:10.885-04:00</updated><title type='text'>Linus Benedict Torvalds: Father of Linux OS</title><content type='html'>&lt;a href="http://bp3.blogger.com/_pKeLvZH8cvE/Rn_9jG72MnI/AAAAAAAAAAM/1tQqgrA6U9k/s1600-h/LT.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5080057684296086130" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp3.blogger.com/_pKeLvZH8cvE/Rn_9jG72MnI/AAAAAAAAAAM/1tQqgrA6U9k/s320/LT.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Linus was born in Helsinki, Finland, the son of journalists Anna and Nils Torvalds, and the grandson of poet Ole Torvalds. His family belongs to the Swedish-speaking minority (roughly 5%) of Finland's population. Torvalds was named after Linus Pauling, the American Nobel Prize-winning chemist, although he claims he was named after Linus in the Peanuts comic strip. In the book Rebel Code: Linux and the Open Source Revolution, Torvalds is quoted as saying, "I think I was named equally for Linus the peanut-cartoon character," noting that this makes him "a mix of 50 percent Nobel-prize-winning chemist and blanket-carrying cartoon character." Both of his parents were campus radicals at the University of Helsinki in the 1960s.Torvalds attended the University of Helsinki from 1988 to 1996, graduating with a master's degree in computer science. His M.Sc. thesis was titled Linux: A Portable Operating System. From 1997 to 1999 he was involved in 86open helping choose the standard binary format for Linux and Unix.His interest in computers began with a Commodore VIC-20. After the VIC-20 he purchased a Sinclair QL which he modified extensively, especially its operating system. He programmed an assembler and a text editor for the QL, as well as a few games. He is known to have written a Pac-Man clone named Cool Man. In 1990 he purchased an Intel 80386-based IBM PC and spent a few weeks playing the game Prince of Persia before receiving his Minix copy which in turn enabled him to begin his work on Linux.About 2% of the current Linux kernel is written by Torvalds himself[citation needed]. Since Linux has had thousands of contributors, such a percentage is very respectable. Torvalds remains the ultimate authority (aka Benevolent Dictator for Life) on what new code is incorporated into the Linux kernel.Torvalds owns the "Linux" trademark, and monitors use of it chiefly through the non-profit organization Linux International. Linux's wide and passionate userbase makes trademark abuse difficult as misuse is rapidly detected.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-4336820540004225692?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/4336820540004225692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=4336820540004225692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/4336820540004225692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/4336820540004225692'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/06/linus-benedict-torvalds-father-of-linux.html' title='Linus Benedict Torvalds: Father of Linux OS'/><author><name>Adil</name><uri>http://www.blogger.com/profile/00720784141137020437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/702/1272/1600/ad.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_pKeLvZH8cvE/Rn_9jG72MnI/AAAAAAAAAAM/1tQqgrA6U9k/s72-c/LT.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-224738348106831273</id><published>2007-06-23T01:24:00.000-04:00</published><updated>2007-06-23T01:45:51.697-04:00</updated><title type='text'>Why do a lot of #defines in the Linux kernel use do { ... } while(0)?</title><content type='html'>There are a couple of reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Empty statements give a warning from the compiler so this is why you see #define FOO do { } while(0). &lt;/li&gt;&lt;li&gt;It gives you a basic block in which to declare local variables. &lt;/li&gt;&lt;li&gt;It allows you to use more complex macros in conditional code. Imagine a macro of several lines of code like: &lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;#define FOO(x) \&lt;br /&gt;printf("arg is %s\n", x); \&lt;br /&gt;do_something_useful(x);&lt;br /&gt;Now imagine using it like: &lt;/p&gt;&lt;p align="justify"&gt;if (blah == 2)&lt;br /&gt;FOO(blah);&lt;/p&gt;&lt;p align="justify"&gt;This interprets to: &lt;/p&gt;&lt;p align="justify"&gt;if (blah == 2)&lt;br /&gt;printf("arg is %s\n", blah);&lt;br /&gt;do_something_useful(blah);;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;As you can see, the if then only encompasses the printf(), and the do_something_useful() call is unconditional (not within the scope of the if), like you wanted it. So, by using a block like do { ... } while(0), you would get this: &lt;/p&gt;&lt;p align="justify"&gt;if (blah == 2)&lt;br /&gt;do {&lt;br /&gt;printf("arg is %s\n", blah);&lt;br /&gt;do_something_useful(blah);&lt;br /&gt;} while (0);&lt;br /&gt;Which is exactly what you want. &lt;/p&gt;&lt;p align="justify"&gt;If you want a block statement so you can have several lines of code and declare local variables. But then the natural thing would be to just use for example: &lt;/p&gt;&lt;p align="justify"&gt;#define exch(x,y) { int tmp; tmp=x; x=y; y=tmp; }&lt;br /&gt;However that wouldn't work in some cases. The following code is meant to be an if-statement with two branches: &lt;/p&gt;&lt;p align="justify"&gt;if (x &gt; y)&lt;br /&gt;exch(x,y); // Branch 1&lt;br /&gt;else&lt;br /&gt;do_something(); // Branch 2&lt;/p&gt;&lt;p align="justify"&gt;But it would be interpreted as an if-statement with only one branch: &lt;/p&gt;&lt;p align="justify"&gt;if (x &gt; y) { // Single-branch if-statement!!!&lt;br /&gt;int tmp; // The one and only branch consists&lt;br /&gt;tmp = x; // of the block.&lt;br /&gt;x = y;&lt;br /&gt;y = tmp;&lt;br /&gt;}&lt;br /&gt;; // empty statement&lt;br /&gt;else // ERROR!!! "parse error before else"&lt;br /&gt;do_something();&lt;/p&gt;&lt;p align="justify"&gt;The problem is the semi-colon (;) coming directly after the block. The solution for this is to sandwich the block between do and while (0). Then we have a single statement with the capabilities of a block, but not considered as being a block statement by the compiler. Our if-statement now becomes: &lt;/p&gt;&lt;p align="justify"&gt;if (x &gt; y)&lt;br /&gt;do {&lt;br /&gt;int tmp;&lt;br /&gt;tmp = x;&lt;br /&gt;x = y;&lt;br /&gt;y = tmp;&lt;br /&gt;} while(0);&lt;br /&gt;else&lt;br /&gt;do_something();&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-224738348106831273?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/224738348106831273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=224738348106831273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/224738348106831273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/224738348106831273'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/06/why-do-lot-of-defines-in-linux-kernel.html' title='Why do a lot of #defines in the Linux kernel use do { ... } while(0)?'/><author><name>Adil</name><uri>http://www.blogger.com/profile/00720784141137020437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/702/1272/1600/ad.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-6684696188157604798</id><published>2007-06-10T15:10:00.001-04:00</published><updated>2009-05-15T10:28:14.266-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLHttpRequest'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><category scheme='http://www.blogger.com/atom/ns#' term='responseText'/><category scheme='http://www.blogger.com/atom/ns#' term='response.setContentType'/><category scheme='http://www.blogger.com/atom/ns#' term='responseXML'/><category scheme='http://www.blogger.com/atom/ns#' term='response.getWriter().write'/><category scheme='http://www.blogger.com/atom/ns#' term='request'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts'/><category scheme='http://www.blogger.com/atom/ns#' term='reponse'/><title type='text'>AJAX and XML Response</title><content type='html'>If you want to return &lt;a href="http://www.w3.org/XML/"&gt;XML&lt;/a&gt; as a response to &lt;a href="http://techie-baba.blogspot.com/2006/11/ajax-new-approach-to-web-applications_14.html"&gt;AJAX request&lt;/a&gt;, there are few things which needs to be taken care of:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) &lt;/span&gt;Set the content type of the response as xml:&lt;br /&gt;     &lt;span style="font-style: italic; font-weight: bold;"&gt;response.setContentType("application/xml");&lt;/span&gt;&lt;br /&gt; Otherwise function &lt;span style="font-style: italic;"&gt;xmlHttpRequest.responseXML&lt;/span&gt; would return a null object and the XML you are trying to return as response would be returned as String object rather than a XML object and you can access that by &lt;span style="font-style: italic;"&gt;xmlHttpRequest.responseText&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) &lt;/span&gt;Construct a well-formed XML which you are going to return in response, make the XML as standalone :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;         returnXML = "&amp;lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&amp;gt;&lt;br /&gt;                       &amp;lt;root&amp;gt;&lt;br /&gt;                               &amp;lt;allxmlelements&amp;gt;&amp;lt;/allxmlelements&amp;gt;&lt;br /&gt;                       &amp;lt;/root&amp;gt;";&lt;/span&gt;&lt;br /&gt;     Important: If the XML constructed above is not well formed you won't be able get the correct response back when you try to access the returned XML in JavaScript using:&lt;br /&gt;             &lt;span style="font-weight: bold; font-style: italic;"&gt;var rspXml = xmlHttpRequest.responseXML;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Q: How to check if the XML you are returning in AJAX response is correct/well-formed or not?&lt;br /&gt;A:&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Best way to check whether the returned XML is well formed or not is to type the URL being passed in the AJAX request directly into the browser. If the response XML is well formed then browser would display the complete XML or else it would display error in the XML. (This is the best and easiest way to check the response.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Example:&lt;/span&gt; in an &lt;a href="http://struts.apache.org/"&gt;STRUTS&lt;/a&gt; application when the AJAX request is processed in an Action class you can return the XML using code below;&lt;br /&gt;     response.setContentType("application/xml");&lt;br /&gt;     response.getWriter().write(returnXML);&lt;br /&gt;     return (null);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Note:&lt;/span&gt; In a STRUTS application for an AJAX request to complete successfully, the execute method of the Action class being called should return "null" instead of an ActionForward.&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=145"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-6684696188157604798?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/6684696188157604798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=6684696188157604798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6684696188157604798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/6684696188157604798'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2007/06/ajax-and-xml-response.html' title='AJAX and XML Response'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-116348465004059258</id><published>2006-11-14T01:09:00.002-05:00</published><updated>2009-05-15T10:29:31.090-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='XMLHttpRequest'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><category scheme='http://www.blogger.com/atom/ns#' term='responseText'/><category scheme='http://www.blogger.com/atom/ns#' term='response.setContentType'/><category scheme='http://www.blogger.com/atom/ns#' term='responseXML'/><category scheme='http://www.blogger.com/atom/ns#' term='response.getWriter().write'/><category scheme='http://www.blogger.com/atom/ns#' term='request'/><category scheme='http://www.blogger.com/atom/ns#' term='Struts'/><category scheme='http://www.blogger.com/atom/ns#' term='reponse'/><title type='text'>AJAX : A New Approach to Web Applications</title><content type='html'>Ever wondered whats behind &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;, or &lt;a href="http://www.google.com/webhp?complete=1&amp;hl=en"&gt;Google Suggest&lt;/a&gt;, etc. Here I have tried to explain AJAX technology in simple words.&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;What is &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;AJAX&lt;/st1:place&gt;&lt;/st1:city&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;AJAX&lt;/span&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; stands for Asynchronous JavaScript And XML. It is a technique used for communicating with the web server to send and retrieve data without loading a new page or reloading the current page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;To do this, the XMLHttpRequest object is used. This object is supported by most modern browsers in one form or another. As the name implies, the object allows you to perform HTTP requests which returns some form of response. The XML part refers to the fact that the object can automatically parse an XML document sent in response to a request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;HTTP Request:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; When you load a web page in your browser, say "&lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:8;color:blue;"   &gt;http://www.example.com/index.html&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;", the browser first opens a connection to the host, www.example.com. It then sends the server an HTTP request which consists of several lines of plain text. A typical request may look something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;GET /index.html HTTP/1.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Host: www.example.net&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12)...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Language: en-us,en;q=0.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Encoding: gzip,deflate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Keep-Alive: 300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Proxy-Connection: keep-alive&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Pragma: no-cache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Cache-Control: no-cache&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;HTTP Response: &lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The first line contains the HTTP verb or method. In this case, the method is GET which means return the following document. Following that is the path to the document to retrieve &lt;i style=""&gt;&lt;span style="color:blue;"&gt;(/index.html&lt;/span&gt;&lt;/i&gt;). The HTTP/1.1 tells the server what version of HTTP the browser supports.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The web server will return a response. Like the request, this consists of several lines of plain text. A typical response to the above request will look something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;HTTP/1.x 200 OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Server: Microsoft-IIS/5.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Date: Fri, 20 Jan 2006 19:29:47 GMT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Content-Length: 534&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Content-Type: text/html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Cache-Control: private&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;html&lt;/span&gt; &lt;/i&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;title&amp;gt;About Us&amp;lt;/title&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;/head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;body&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;h1&amp;gt;About us&amp;lt;/h1&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;p&amp;gt;...&amp;lt;/p&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;/body&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The first line contains the HTTP version and a three digit status code. The text following that number is a short description of that code. 200 means "OK," the request was successfully processed. If the requested page did not exist, the status would be "404 Not found."&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The lines following are request headers. Like the response headers, these give additional information about the response such as the document type ("text/html") and size (534 bytes).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;A blank line follows, signaling the end of the response header. The rest of the lines represent the response data. In this case, it is the HTML of the page which the browser will parse and render.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Passing Data in a HTTP Request:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;There are two commonly used ways for a client to pass data in an HTTP request. One is to append a query string to the URL. For example,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;color:blue;"   &gt;http://www.example.com/signup.jsp?name=Shanky+Baba&amp;email=shanky%40baba.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The second way to pass data on an HTTP request is to use the "POST" method. This is often used with forms on web pages. An example of a POST request generated when a user submits a form is shown below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;POST /signup.jsp HTTP/1.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Host: www.example.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12)...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Language: en-us,en;q=0.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Encoding: gzip,deflate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Keep-Alive: 300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Connection: keep-alive&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Content-Type: application/x-www-form-urlencoded&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Content-Length: 38&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;name=Shanky+Baba&amp;email=shanky%40baba.com&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a name="_The_XMLHttpRequest_Object"&gt;&lt;/a&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The XMLHttpRequest Object:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;With the XMLHttpRequest object, you can make HTTP requests from within JavaScript code on a web page and access the data returned by the web server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="border: 1pt solid windowtext;" border="1" cellpadding="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td colspan="2" style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;                                                &lt;span style="font-weight: bold;"&gt;XMLHttpRequest   Object&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td colspan="2" style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;                                                        &lt;span style="font-weight: bold;"&gt;Properties&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;readyState&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;A   number representing the current state of the request: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;0 -   UNINITIALIZED&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;1 -   LOADING&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;2 -   LOADED&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;3 -   INTERACTIVE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;4 -   COMPLETE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;status&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The   numeric HTTP status code returned by the web server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;statusText&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The   text associated with the above HTTP status code. For example, 200 means   "OK" and 404 means "Not found".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;responseText&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;A   string containing the response data returned from the web server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;responseXML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;If the   web server returns an XML document, this will be a DOM document object   representing the parsed XML.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td colspan="2" style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;                                            &lt;span style="font-weight: bold;"&gt;Methods&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;open(method,   url, asynch, username, password)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Initializes   a new request. method is the HTTP request verb, usually "GET" or   "POST". The last three options are optional: asynch defaults to   true, username and password may be specified if the web server requires   authentication.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;setRequestHeader(name,   value)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Sets a   named request header.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;send(data)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Makes   the request. optionally passing data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;abort()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Aborts   an active request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;getResponseHeader(name)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Returns   the value of the named response header.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;getAllResponseHeaders()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Returns   a string containg all the response headers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td colspan="2" style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;                                                    &lt;span style="font-weight: bold;"&gt;Events&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;onreadystatechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Raised   anytime the readystate property changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;                             &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Table 1 : XMLHttpRequest Object&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;Step 1: &lt;u&gt;Create an XMLHttpRequest Object&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The code below can be used to create an XMLHttpRequest object despite the browser differences.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;// Define a list of Microsoft XML HTTP ProgIDs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;var XMLHTTPREQUEST_MS_PROGIDS = new Array(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;"Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0",&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;"Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;"Microsoft.XMLHTTP");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;// Returns XMLHttpRequest object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;function getXMLHttpRequest() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;var httpRequest = null;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;// Create the appropriate HttpRequest object for the browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;if (window.XMLHttpRequest != null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;httpRequest = new window.XMLHttpRequest();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;else if (window.ActiveXObject != null) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;// Probably browser is IE, find the right ActiveXObject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;var success = false;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;for (var i = 0; i&amp;lt; XMLHTTPREQUEST_MS_PROGIDS.length &amp;&amp; !success; i++) {&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;try {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;        &lt;/span&gt;success = true;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;catch (ex) {}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;// Display an error if we couldn't create one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;if (httpRequest == null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;alert("Error in HttpRequest():\n\n" + "Cannot create an XMLHttpRequest bject.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;// Return it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;return httpRequest;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;}&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;We can then define an XMLHttpRequest object like so,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;i style=""&gt;var myXmlHttpRequest = getXMLHttpRequest();&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;Step 2: &lt;u&gt;Open a Request&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Now we can open a connection to a specified URL using the code below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;i style=""&gt;myXmlHttpRequest.open("GET", url, true);&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Two ways of Parameter Passing through &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;AJAX&lt;/st1:place&gt;&lt;/st1:city&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Passing parameter through URL      : example &lt;i style=""&gt;&lt;span style="color:blue;"&gt;http://www.example.com/signup.jsp?name=Shanky&lt;/span&gt;&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Here you access the variable called “name” in your server code and get the &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;value “Shanky”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;If you want to pass a larger      amount of data to the request we can use POST method. To be able to do      this we need to add a request header and pass data in the send() command.      Example code: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;myXmlHttpRequest.open("POST", url, true);&lt;br /&gt;myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");&lt;br /&gt;myXmlHttpRequest.onreadystatechange = callbackFunctionName&lt;br /&gt;var myform = document.forms[0];&lt;br /&gt;var reqBody = getRequestBody(myform);&lt;br /&gt;myXmlHttpRequest.send(reqBody);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;Step 3: &lt;u&gt;Create Response Handler&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Since we made an asynchronous request to the server we don’t wait for the server to send the response. So we specify a callback function so that when server finishes its job it can notify the callback function of its response.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;XMLHttpRequest object has a property called readyState that contains values depending upon the current status of the request. (Refer &lt;a href="#_The_XMLHttpRequest_Object"&gt;Table 1&lt;/a&gt; for details.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;We have an associated event handler onreadystatechange using which we can specify a call back function when server processing is over and the readyState has a value of 4 (i.e. complete).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;myXmlHttpRequest.onreadystatechange = callbackFunctionName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;An example response handler function (a Javascript function):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;function callbackFunctionName() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;if(myXmlHttpRequest.readyState == 4) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;if(myXmlHttpRequest.status == 200) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;//Write your action&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;Document.getElementById(‘id’).innerHTML = &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;                                      &lt;/span&gt;myXmlHttpRequest.responseText;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;} else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;alert(“Error: HTTP “ + myXmlHttpRequest.status + “ : “ &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;                             &lt;/span&gt;+ myXmlHttpRequest.statusText); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;               &lt;/span&gt;} //end else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;} // end if&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;} //end function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;Step 4: &lt;u&gt;Send the Request (or submit the request to server)&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;The last and final step to complete your &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;AJAX&lt;/st1:city&gt;&lt;/st1:place&gt; application is to send the XMLHttpRequest object to the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;i style=""&gt;myXmlHttpRequest.send(null);&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;or, &lt;span style=""&gt;     &lt;/span&gt;&lt;i style=""&gt;myXmlHttpRequest.send(data);&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;          &lt;/span&gt;where ‘data’ can be a piece of data to be send to the server as shown in sample code in&lt;span style=""&gt;  &lt;/span&gt;Step 2, where we send the form data of html to the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-family:Verdana;"&gt;Some Miscellaneous stuff&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-family:Verdana;"&gt;:&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Response Type:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; We can check the content type of the response in the response header. Normally the response that we are expecting to get back will be either an XML or a plain text. This can be checked by following code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;var cType = this.getResponseHeader("Content-Type");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;if (cType == 'text/xml') {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;// XML response&lt;br /&gt;} else if (cType == 'text/plain') {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;// plain TEXT response&lt;br /&gt;} else {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;alert('unknown content type');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;}&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Aborting A Request:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt; Since &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;AJAX&lt;/st1:city&gt;&lt;/st1:place&gt; is processed asynchronously, we can limit the request to just one request through some minor alteration in the code: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;Replace&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style=""&gt;                   &lt;/span&gt;&lt;i style=""&gt;var myXmlHttpRequest = getXMLHttpRequest();&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;With this&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;if (!myXmlHttpRequest)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;myXmlHttpRequest = createXMLHttp();&lt;br /&gt;else if (myXmlHttpRequest.readyState != 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in;"&gt;&lt;i style=""&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;myXmlHttpRequest.abort();&lt;/span&gt;&lt;/i&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;This article has now moved to my new &lt;a href="http://bawaal.com/blog/?p=144"&gt;BLOG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-116348465004059258?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/116348465004059258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=116348465004059258' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/116348465004059258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/116348465004059258'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2006/11/ajax-new-approach-to-web-applications_14.html' title='AJAX : A New Approach to Web Applications'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-115700485049348748</id><published>2006-08-31T02:08:00.000-04:00</published><updated>2006-08-31T02:14:10.516-04:00</updated><title type='text'>Booting this blog :)</title><content type='html'>Hi Everybody,&lt;br /&gt;I am so called "Linux Kernel developer" and mainly working in File systems. But still I am in learning phase. I have worked on lots of technologies in my short career. So may be sometimes I'll be able to help u in that.&lt;br /&gt;&lt;br /&gt;Thanks to "Techie Baba" for creating this Blog.&lt;br /&gt;&lt;br /&gt;Rgds,&lt;br /&gt;Adil&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-115700485049348748?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/115700485049348748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=115700485049348748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115700485049348748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115700485049348748'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2006/08/booting-this-blog.html' title='Booting this blog :)'/><author><name>Adil</name><uri>http://www.blogger.com/profile/00720784141137020437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://photos1.blogger.com/blogger/702/1272/1600/ad.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-115697001844050814</id><published>2006-08-30T16:24:00.000-04:00</published><updated>2006-08-30T16:33:38.446-04:00</updated><title type='text'>A brief-up from Khushi</title><content type='html'>Hello Everyone :)&lt;br /&gt;&lt;br /&gt;I work as a J2EE Developer and am currently involved in developing a sales application.&lt;br /&gt;Don't really know what exactly this blog aims to be a platform for, but am excited about the vox-populli.&lt;br /&gt;Nice initiative ......Shanky.........but only Techie "BABA"......bahut nainsaafi hai Thakur ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-115697001844050814?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/115697001844050814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=115697001844050814' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115697001844050814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115697001844050814'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2006/08/brief-up-from-khushi.html' title='A brief-up from Khushi'/><author><name>KHUSHI - "Scintillant"</name><uri>http://www.blogger.com/profile/01168079939041604745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://photos1.blogger.com/blogger/4846/2008/1600/kiddu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33537335.post-115686072725467138</id><published>2006-08-29T10:11:00.000-04:00</published><updated>2006-08-30T01:53:15.353-04:00</updated><title type='text'>Test</title><content type='html'>This is just a test post!&lt;br /&gt;&lt;br /&gt;Would be coming soon with some techincal posts. Related to J2EE web applications.&lt;br /&gt;&lt;br /&gt;Keep checking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33537335-115686072725467138?l=techie-baba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techie-baba.blogspot.com/feeds/115686072725467138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33537335&amp;postID=115686072725467138' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115686072725467138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33537335/posts/default/115686072725467138'/><link rel='alternate' type='text/html' href='http://techie-baba.blogspot.com/2006/08/test.html' title='Test'/><author><name>Shashank</name><uri>http://www.blogger.com/profile/16607641856610505540</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://photos1.blogger.com/blogger/250/453/1600/thinking%20shanky.jpg'/></author><thr:total>2</thr:total></entry></feed>
