5/31/13

Web Programming


Chapter One
Solutions to Chapter One Questions
1. What is Web? What is the difference between Internet and Intranet?Ans.
A Web is a complex network of international, cross platform, and cross cultural communicating devices, connected to each other without any ordering or pattern.
Internet and Intranet are both networks. However, the Internet is a network of networks, involving all communicating devices over the Web. However, an Intranet is limited to the users, machines, and software programs of a specific organization.
2. Explain GET and POST briefly? Ans.
The GET and POST methods are used to send an HTTP request to the Web server. The GET method is used to request a document from the server. For example:
Get /Webdocs/index.html CRLF
The POST method allows Web browsers to send an unlimited amount of data to a Web server by allowing them to tag it on to HTTP request headers as the message body.
3. Explain how HTTP is used in client/server system.
Ans.HTTP is a request-response type protocol that specifies that a client will open a connection to a server and then send a request using a specific format. In the client server system, the client connects to and sends a request to a server using HTTP. The server then receives and parses the request of the client to send back the requested resource using HTTP again. For sending the response, the server software accesses the server hardware and retrieves the requested document.
4. Discuss the difference between static and dynamic Web pages?Ans.
Static Web pages are not processed by the server and are sent as it is. These pages do not have any scripting logic and they cannot change according to client's request parameters. Dynamic Web pages are processed by the server and then the generated content is sent to the client. They may involve information from a database or some other information such as client's user name.
5. "HTML is the language of the Web”. Explain.Ans.HTML is a markup language in which Web pages are defined. It is simplistic so that everyone can use it. It is truly the language of the Web. Browsers treat all content given to them as HTML. Also, most of the information on the Internet is in the HTML format. Servers generate the HTML content from the server side scripts and send it to the browsers.
6. Why do we require JavaScript and DHTML?Ans.
JavaScript and DHTML make Web pages more interactive. HTML can be used to only present information. It cannot process data and is therefore not interactive.
JavaScript can be used to write programs for creating interactive Web pages. For example, if a user leaves out a field in an online form, JavaScript can be used to prompt the user to enter a value in that field.
DHTML can be used to make the pages more interactive by allowing you set properties of Web pages and their look and feel.
7. Brief about role played by CGI programming in Web programming?Ans.
CGI opened the gates of more complex Web applications. It enabled developers to write scripts, which can communicate with server applications and databases. In addition, it enables developers to write scripts that could also parse client's input, process it, and present it in a user friendly way.

Solutions to Chapter Two 
Questions1. What is HTML?
Ans.
HTML stands for Hypertext Markup Language. It is a layout and format defining language used to write Web pages. It allows you to:
     Publish documents to the Internet in a platform independent format
     Create links to related work from your document
     Include graphics and multimedia data in your documents
     Link to non-World Wide Web information resources on the Internet
2. Brief about HTML tags and Elements. Ans.
An HTML tag defines the markup for a particular content in an HTML page and is represented within angular brackets. A start tag is represented as <tag_name> and an end tag is represented as </tag_name>. Most tags in HTML are in pairs of start and end tag. Only some tags such as <br> do not have an end tag.
An element contains a start tag, an end tag, and the content, which is marked up by those tags. The content in an element may comprise of data as well as nested tags. For example, the following is an HTML element:
<body>
<p>This is a nested tag</p>
</body>
An HTML page starts and end with <HTML></HTML> tags, marking the beginning and end of an HTML page. A page can be divided into the header and the body. The <HEAD></HEAD> tags represent the former and contain header information, which is not displayed in the browser window. The <HEAD></HEAD> tags also contain the <TITLE></TITLE> tags, which contain the text that will be displayed in the title bar of the browser window when the page is opened.
The <BODY></BODY> tags comprise the body element of an HTML page. The content with the <BODY></BODY> tags is displayed in the browser window.3. List down different classifications of tags with 2 examples tags for each category.
Ans. Tags can be classified as:
     Tags for document structure: HTML and HEAD
     Heading tags: TITLE and LINK
     Block-level text elements: H1 through H6, P
     Lists: OL and UL
     Text characteristics: B, I , FONT
4. Explain any 4 HTML tags with at least 4 attributes with example.
Ans.
The <BODY> tag represents the body of an HTML page and contains the content to be displayed in the browser window. It has various attributes including:
     BACKGROUND: Specifies an image to be displayed in the background of an HTML page. Its value can be an absolute URL or a relative URL.
     BGCOLOR: Sets the color of the background.
     TEXT: Sets the default color of normal text for the HTML page.
     LINK: Sets the default color of unvisited links in an HTML page.
The <TABLE> tag is used to create tables in HTML pages. It has various attributes such as:
     BORDER: Indicates the thickness, in pixels, of the border to be drawn around the table.
     CELLPADDING: Determines the amount of space, in pixels, between individual cells in a table.
     CEPPSPACING: Determines the amount of space, in pixels, between individual cells in a table.
     WIDTH: Determines the width of the table.
The <IMG> tag inserts images in an HTML page. It has various attributes such as:
     SRC: Path of the image to be displayed.
     ALT: Alternative text to be displayed in case the image cannot be displayed.
     LOWSRC: Path of a low resolution version of the image.
     HEIGHT and WIDTH: Specifies the dimensions of the image.
The <HR> tag is used to draw a horizontal line in HTML pages. It has various attributes such as:
     ALIGN: Specifies the horizontal alignment of the lines that do not span the whole page.
     NOSHADE: Reproduces a solid black line that has no shading.
     SIZE: Indicates the thickness of the line in pixels.
     WIDTH: Defines the horizontal width of the line.

5. Write an example HTML page containing a table 4 X 3 and each row colored differently.
Ans.
The following is an HTML page containing a table 4 X 3 and each row colored differently:
<html>
<head>
<title>Colored Table</title>
</head>
<body>
<table border="1" width="100%">
<tr bgcolor="#0000FF">
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr bgcolor="#00A0FF">
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr bgcolor="#AB00FF">
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr bgcolor="#FB2CFF">
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
</table>
</body>
</html>

6. Write an HTML program to demonstrate text characteristics tags.
Ans.
The following code demonstrates some of the important text characteristics tags in HTML:
<html>
<head>
<title>Text Characteristics</title>
</head>
<body>
<p><b> <font color = "#0000FF" face ="Arial" size = "5">
Text Characteristics in
</font>
<font color = "#0000FF" face ="Arial" size = "8">
<s>HTML</s>
</b>
</p>
</font>
<i>HTML</i> is a <em>formatting language</em> for Web pages. Below is an example of
<u>HTML code</u><br>
<code>
&lt;HTML&gt;<br>
&lt;HEAD&gt;<br>
&lt;/HEAD&gt;<br>
&lt;/HTML&gt;<br>
</code>
<p><kbd>&</kbd> followed by <kbd>gt</kbd> represents the greater than sign.
</body>

7. Write an HTML program to demonstrate applet embedding.
Ans.
Applets are embedded in HTML pages using the <APPLET> tag. An example of an HTML page containing an applet which scrolls the specified text across the screen at a specified speed, is given below:
<HTML>
<HEAD>
<TITLE>Demo Applet</TITLE>
</HEAD>
<BODY>
<APPLET CODE="scrolling_banner.class: CODEBASE =jclasses
WIDTH = 240 HEIGHT = 400
ALIGN = ABSMIDDLE HSPACE = 10 VSPACE = 20>
<PARAM NAME =  message VALUE = "Use Netscape Navigator to browse the World Wide Web.">
<PARAM NAME =speed VALUE = "4">
</APPLET>
</BODY>
</HTML>

8. Explain how you can embed an image in an HTML page.
Ans.
To embed an image in an HTML page, you can use the <IMG> tag. The <IMG> tag includes various attributes, for embedding and formatting images in an HTML page. The most common attributes of the <IMG> tag are:
     SRC: Absolute or relative path of the image to be embedded
     LOWSRC: The path of the low resolution version the image
     ALT: Alternate text to be displayed in case the image cannot be loaded.
     ALIGN : Alignment of the image in the page
     HEIGHT: Height of the image
     WIDTH: Width of the image
You can use the above tags to load an image from a URL or a relative path. For example, if the image (suppose image_filename.gif) that you want to embed resides in the same folder as the HTML page, you can embed it as:
<IMG SRC="image_filename.gif" ALT = "this is an image loaded from a relative path">
The above will display the image in the file image_filename.gif. In case this image cannot be loaded, the text "this is an image loaded from a relative path" will be displayed.
Similarly, to load an image from a URL, you can specify the URL in the SRC attribute.

9. Create a simple HTML page to demonstrate usage of anchor tags.
Ans.
The following HTML page, demonstrates the usage of anchor tags:
<html>
<head>
<title>Anchor Tag Characteristics</title>
</head>
<body>
<h1 align="center">All in One</h1>
<p align="left">In <A HREF= "#sec1">section 1</a> you can search. In <A HREF= "#sec2">section 2</a> you can shop.</p>
<A NAME=  "sec1">Section 1:
</a>
<p>
<a href="http://google.co.in" target= "_blank">
Search on Google</a>&nbsp;</p>
<p><a href="http://yahoo.com">Search on Yahoo</a></p>
<p>&nbsp;</p>
<p>
<A NAME=  "sec2">Section 2: </a>
</p>
<p><a href="http://ebay.com">
Shop on ebay&nbsp;</a></p>
<p><a href="http://wallpapers.com">Download wallpapers</a>&nbsp;</p>
<p><a href="http://t-shirts.com">
Order Custom T-Shirts
News</a></p>
</body>
</html>
The output will be as shown here:

10. Explain ordered list and unordered list.
Ans.
Ordered lists are numbered list and represented by the <OL> tag in HTML. You can use the tag's TYPE and START attributes to change the style and sequence of the numbering in the list. The <LI> tag is used for individual items of the list. Ordered lists are usually used to represent procedures/sequence of steps in HTML pages. An example of an ordered list is give below:
To copy text in Word:
<OL>
<LI>Select the text.</LI>
<LI>Press Ctrl + C.</LI>
<LI>Click at the location where you want to past the text and pres Ctrl + V.</LI>
</OL>

The unordered list is a bulleted list and represented by the <UL> tag in HTML. You can use the tag's TYPE attribute to change the style of the bullets in the list. The <LI> tag is used for individual items of the list. Unordered lists are usually used to represent various items of a category or related to a topic. An example of an unordered list is given below:
The various types of domestic animals are:
<UL>
<LI>Dogs</LI>
<LI>Cats</LI>
<LI>Horses</LI>
</UL>

Chapter Three

Solutions to Chapter Three Questions
1. What is Java Script? List out uses of Java Script.?
Ans.
JavaScript is a scripting language used to make interactive web pages. It is mostly used as a client side scripting language. Its uses include:
     Control document appearance and content
     Control the browser
     Interact with document content
     Interact with user
     Read and write client state with cookies
     Interact with applets
     Manipulate embedded images

2. Create an HTML page, which pops up an alert message.
Ans.
Following HTML pops up an alert message:
<html>
<head>
<title>Pop up</title>
</head>
<body>
<h1>Trying Pop-ups</h1>
<script language = "JavaScript">
alert("This is an alert message. It uses alert() in JavaScript");
</script>
</body>
</html>

3. Explain briefly about Cascading Style Sheets (CSS).
Ans.
CSS controls the look and placement of elements on a page. With CSS you can set any style property of any element on a HTML page. One of the biggest advantages with CSS instead of regular way of changing the look of elements is that you can split content from design. You can, for instance, link a CSS file to all the pages in your site that sets the look of the pages. So if you want to change the elements on the page, such as font size of the main text, you can just change it in the CSS and all the pages will be updated.
The syntax of CSS code is:
<style type ="text/css">
ELEMENT [{property1:value1:property2:value2}]
</style>
Note that the style tag is always placed in the head of the document.

4. Explain the uses of script tags.
Ans.
The script tag marks the beginning and end of JavaScript in a web page. You can specify the scripting language in the script tags' Language attribute. In addition, you can also specify where the script is expected to run using the runat attribute. For example, when JavaScript is used as a server side scripting language, you can use the script tag as:
<SCRIPT Language = "JavaScript" runat = "server">
</SCRIPT>

5. Explain Document Object Model.
Ans.
The Document Object Model or DOM is the interface that allows you to programmatically access and manipulate content of a web page. It provides a structured, object-oriented, representation of the individual elements and content in a page with methods for retrieving and setting the properties of those objects. It also provides methods for adding and removing such objects, allowing you to create dynamic content.
The DOM also provides an interface for dealing with events, allowing you to capture and respond to user and browser actions. 

6. Write a program to display text in status bar on click of a button.
Ans.
<html>
<head>
<title>Pop up</title>
</head>
<body onclick = "window.status = 'You have clicked!!!'">
<h1>Changing Status Bar Text</h1>
</body>
</html>

7. What is the difference between HTML and DHTML?
Ans.
HTML is a markup language used to create static web pages. DHTML on the other hand is not a language by itself but a combination of different technologies such as HTML, CSS, JavaScript, and DOM. It is used to create dynamic pages.

8. Explain the methods to access nodes in a Document tree.
Ans.
Following are the methods used to access a node in a document tree:
     document.getElementById(): Returns the element or node whose ID is passed as a parameter to it.
     document.getElementsByTagName(): Returns the list of nodes that have the tag passed to the function as a parameter.

9. What are text nodes?
Ans.
If a node contains text, it is represented as a text node. For example, in<p id-node2>"This is the <b>initial</b>text.</p>, there are text nodes "This is the", "initial", and "text".
Chapter Four

Solutions to Chapter Four Questions
1. What is CGI ?Give examples of CGI application and explain any one of them?
Ans.
Common Gateway Interface is a specification, which allows Web users to run programs from their computers. CGI is not a programming language but rather a specification that allows programs and scripts written in other language to be run over the Internet.

2. What are CGI environment variables? Explain any five.
Ans.
Most of the information about the client, server, and user input is placed and made available through globally accessible variables known as CGI environment variables. Some of the commonly used environment variables are:
     QUERY_STRING: The query information passed to the program. It is appended to the URL with a ? when the browser sends it to the server. The name value pairs are then stored in this environment variable.
     SERVER_PROTOCOL: The name of and revision of the information protocol that the request came in with.
     REQUEST_METHOD: The method with which the information request was issued.
     HTTP_USER_AGENT: The browser used by the client to issue the request.
     CONTENT_LENGTH: The length of the data in bytes passed to the CGI program through the standard input.

3. Give difference between JavaScript and CGI programming.
Ans.
JavaScript is a scripting language whereas CGI itself is a standard, which uses various other programming languages. JavaScript is used mainly on the client side whereas CGI programming is used to implement server side scripting. In addition, JavaScript is embedded in HTML documents whereas CGI programs reside in their own independent files.

4. Explain CGI.pm module with an example.
Ans.
PERL supports various add-on modules, which are libraries of functions that perform specific tasks. These are called standard library modules. CGI.pm is a standard library module, which provides various functions. To include the CGI.pm module in your PERL script, you have to use the "use" command after the #!/perl/bin/perl line and before any other code:
use CGI qw(:standard);
After including CGI.pm you can call its functions such as header, which prints the Content-type header.

5. Explain different types of PERL variables.
Ans.
PERL variables are of the following three types:
     Scalars: A scalar variable stores a single value of any type. Scalar variables are prefixed with a $. These variables need not be declared before using them. You can define or use a variable as:
$var =1;
$var_noval;
$str = "This is a scalar string variable";
     Arrays: Arrays store an ordered list of values. Arrays can be declared as:
@emptyarr =();
@arr = ("1", "2","3");
Each individual item of an array is referred to by its index number as:
print "$arr[0]";
You can use the push() and pop() functions to insert or delete an element from an array.
     Hashes: A Hash is a special kind of an array - an associative array or paired list of elements. Each pair in a Hash consists of a string key and data value. A hash is defined as:
%emptyhs = ();
%hs = ("key1", "val1", "key2", "val2");
or
%hs = (key1 => "val1",
      key2=> "val2");
An individual item of a Hash is referred to as $hs{"key1"};
The my function can be used with each of the above type of variables to declare and limit the scope of the variable to the enclosing block as:
my $var;

6. Explain PERL control structures with appropriate examples.
Ans.
PERL control structures include:
1.    If-else and unless condition: This construct performs a Boolean test on an expression and performs actions based on the results of the Boolean test. For example:
If($var==1)
{
      $out = "This was one";
}
elseif($var==0)
{
$out = "This was zero";
}
else
{
$out = "Was neither 0 nor 1";
}
print "$out";

The above code will print, "This was one" if the variable $var is 1. Otherwise, if $var is equal to 0, it will print "This was zero". If $var is nether 1 nor 0, it will print "Was neither 0 nor 1". Note that the else or elesif part is optional. You can also have a single if statement in your program or nested ifs and if-else or if-elseif-else structures.
Note that to compare strings you must use the eq operator. You can also join multiple conditions using the logical operators. Similar to the If command is the unless command. For example:
unless($var!=1)
{
      $out = "This was one";
}
else
{
      $out = "Not one";
}
Note that PERL does not support unlessif.

2.    Foreach loop: It is used for iterating over a list of values. The elements of an array can be iterated over using foreach as:
Foreach my $i(@arr)
{
$arr[$i] = $i; //set the value of each element of array to its index number
}

3.    For loop: It is used to repeatedly perform an action. It uses a three-part conditional consisting of the loop initializer, the loop condition, and the loop reinitializer. For example, to perform an action such as printing use the for loop as:
for($i=0;$i<10;$i++)
 {
   print "$i";
}
This will print numbers from 0 to 9.

4.    While loop: It is also used to perform an action repeatedly as long as a Boolean expression evaluates to true as:
$i=0;
while ($i<10)
{
print "$i";
}
This will print numbers from 0 to 9.

5.    Until loop: This performs the reverse action of the while loop. It executes as long as a Boolean expression is NOT true. For example:
$i=0;
until ($i>=10)
{
print "$i";
}
This will print numbers from 0 to 9.

7. What is Query String? Explain with an example.
Ans.
The form data appended to a URL following a ? is called a query string. For example:
http://www.myweb.com?username=smith&password=juyhy
In the above URL, the form field 'username', whose value is 'smith', and field 'password' whose value is 'juyhy', are appended to the URL after '?'. They form the query string. Query string comprises of name-value pairs. Each name value pairs is separated by &. Spaces between values are encoded as + and other special characters are encoded as their ASCII value preceded by a %.

8. What are GET and POST methods? What is the difference between GET and POST Methods.
Ans.
GET and POST are methods of sending data to the server for making it available to CGI programs. The GET method passes the information through environment variables whereas the POST method sends the data through standard input.

9. Write a simple CGI application, which accepts the user information and displays the Information entered to the user?
Ans.
#!/usr/bin/perl
#print "Content-type:text/html\n\n";
#$form = $ENV{'QUERY_STRING'};
use CGI;
$cgi = new CGI;
print $cgi->header;
print $cgi->start_html( "Question Nine" );
$text = $cgi->param( 'text' );
      if( $text )
      {
            print "You entered $text";
      }
      else
      {
            print '<form action="ques9.pl" method="get">';
            print '<input type="text" name="text"><br>';
            print '<input type="submit" value="Submit"><br>';        
            print "</form>";
                 
      }
print $cgi->end_html;
Save the file as ‘ques9.pl’.
      Note
Students need to know the IIS configuration for running perl applications.

10. Write a CGI application that accepts 3 numbers from the users and displays the LCM of three numbers using GET and POST methods.
Ans.
#!/usr/bin/perl
#print "Content-type:text/html\n\n";
#$form = $ENV{'QUERY_STRING'};
use CGI;
$cgi = new CGI;
print $cgi->header;
print $cgi->start_html( "Question Ten" );
my $one = $cgi->param( 'one' );
my $two = $cgi->param( 'two' );
my $three = $cgi->param( 'three' );
      if( $one && $two && $three )
      {   
      $lcm = &findLCM( &findLCM( $one, $two ), $three );
     
      print "LCM is $lcm";
      }
      else
      {
            print '<form action="ques10.pl" method="post"><pre>';
            print 'Enter First Number  <input type="text" name="one"><br>';
            print 'Enter Second Number <input type="text" name="two"><br>';
            print 'Enter Third Number  <input type="text" name="three"><br>';          
            print '<input type="submit" value="Submit"><br>';        
            print "</pre></form>";
                 
      }
print $cgi->end_html;
sub findLCM()
{
      my $x = shift;
      my $y = shift;
      my $temp, $ans;
      if ($x < $y) {
            $temp = $y;
            $y = $x;
            $x = $temp;
      }
      $ans = $y;
      $temp = 1;
      while ($ans % $x)
      {
            $ans = $y * $temp;
            $temp++ ;
      }    
      return $ans;
}
Save the file as ‘ques10.pl’.
      Note
Students need to know the IIS configuration for running perl applications.

11. What is Extra Path information? Explain with an example.
Ans.
Besides passing query information to a CGI script, you can also pass additional data known as extra path information as part of the URL. The server gauges where the CGI program name ends; anything following that is deemed as extra path information and stored in the PATH_INFO environment variable. For example the following line calls a script with extra path information:
http://some.machine/cgi0bin/display.pl/cgi_doc.txt
Chapter Five

Solutions to Chapter Five Questions
1. What is Web Sever? Explain.
Ans.
The Web server is the software responsible for accepting browsers' requests, retrieving the specified file or executing the script, and returning its content to the browser. Popular Web servers include Tomcat, Apache, and IIS.

2. List out differences between Web Server and Application Server.
Ans.
The main differences between Web servers and application servers are:
     A Web server is where Web components are deployed and run. An application server is where components that implement the business logic are deployed. For example, in a JSP-EJB Web application, the JSP pages will be deployed on the Web server whereas the EJB components will be deployed on the application servers.
     A Web server usually supports only HTTP (and sometimes SMTP and FTP). However, an application server supports HTTP as well as various other protocols such as SOAP.

3. Explain the role of Deployment descriptors.
Ans.
A deployment descriptor is an XML document that defines all the components of an application along with related information such as initialization parameters and container managed security constraints that you want the server to enforce. This file helps the server to know crucial details about the application.

4. Briefly describe basic mechanism of Web server.
Ans.
A Web server first retrieves a client request using Berkley sockets, which is a mechanism used for communicating over a network. The Web server listens for request on a particular port on the server machine. For HTTP request, this port is by default set to 80. When the server receives the request, it locates the document being  requested. It looks for the file under the document root directory. For example, if the document root is /usr/local/httpd/htdocs and the client requests the document /staff/matthew.html, then the server retrieves /usr/local/httpd/htdocs/staff/matthew.html. If the URL does not specify a file but just a directory, the server returns the directory index file, generally called index.html or welcome.html.
The server sends the contents of the file back to the client, along with some HTTP response headers.

5. Explain the importance of Web.xml.
Ans.
Web.xml is the deployment descriptor on Tomcat server. A deployment descriptor is an XML document that defines all the components of an application along with related information such as initialization parameters and container managed security constraints that you want the server to enforce. This file helps the server to know crucial details about the application.

6. Explain how servlet mappings are done in Web.xml.
Ans.
Servlet Mapping is done in Web.xml  with the help of the <servlet_mapping> tag as:
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>graph</servlet-name>
<url-pattern>/graph</url-pattern>
</servlet-mapping>
According to the first mapping, all requests of the form http://localshots:8080/{contextpath}.do will be mapped to the Controller servlet whereas according to second mapping all request of the form http://localshots:8080/{contextpath}/graph will be mapped to the graph servlet.

7. What is a war file? Give its importance.
Ans.
WAR or Web Application Archive file is packaged servlet Web application. Servlet applications are usually distributed as a WAR files.

8. How can you specify session time out in Web.xml?
Ans.
You can specify session timeout in the <session-timeout> attribute of the <session-config> element. For example, to specify a session timeout of 30 minutes use:
<session-config>
<session-timeout>30</session-timeout>
</session-config>


Chapter Six
Solutions to Chapter Six Questions
1. What is JSP? How is it is different from CGI programming?
Ans.
JSP is a technology for developing Web pages that include dynamic content. A JSP page contains standard markup language elements, such as HTML tags, just like a regular Web page. However, a JSP page also contains special JSP elements that allow the server to insert dynamic content in the page.
CGI is not an efficient solution for developing dynamic Web content. For every request, the Web server has to create a new operating system process, load an interpreter and a script, execute the script and then tear it all down again. This is taxing for the server and affects the scalability of the application.
However, in JSP, each JSP page is compiled into executable code on first request. On subsequent requests thee executable code is directly invoked instead of recompilation. This enables a server to handle JSP pages much faster than CGI programs.

2. Write a JSP programming which displays different message to the user based on the time of day.
Ans.
<%@ page contentType="text/html;charset=UTF-8" language="java"
import="java.util.Calendar" %>
<html>
<head><title>Time Message</title></head>
<body>
<%
Calendar cal = Calendar.getInstance();
int hh = cal.get( Calendar.HOUR_OF_DAY );
String message = "";
if( hh < 12 )
{
message = "Good Morning!";
}
else if( hh == 12 )
{
message = "Good Noon!";
}
else if( hh > 12 && hh < 18 )
{
message = "Good Afternoon!";
}
else if( hh > 18 && hh < 21 )
{
message = "Good Evening!";
}
else
{
message = "Good Night!";
}
%>
<%=message%>
</body>
</html>

3. Explain JSP elements.
Ans.
JSP elements are of 3 types:
     Directive: Specifies information about the page itself that remains the same between requests. For example, it can be used to specify whether session tracking is required or not, buffering requirements, and the name of the page that should be used to report errors.
     Action: Performs some action based on information that is required at the exact time the JSP page is requested by a browser. An action, for instance, can access parameters sent with the request to lookup a database.
     Scripting: Allows you to add small pieces of code in JSP page. These elements are also executed when a page is requested.

4. What are the advantages of JSP?
Ans.
The advantages of JSP are:
     Supports both scripting and element based dynamic content and allows programmers to develop custom tag libraries to satisfy application specific needs.
     Are compiled for efficient server processing.
     Can be sent in combination with servlets that handle the business logic of the model supported by Java servlet template engines.
     It is specification not a product. Different vendors can launch and use different implementations of JSP, leading to competition for better quality and performance.
     It is an integral part of J2EE, a complete platform for enterprise class applications.

5. How are JSPs better than Servlets?
Ans.
Unlike servlets, JSP lets you separate presentation and business logic. You can place the HTML code (presentation) in JSP along with some dynamic elements. The business logic remains in the servlets or JavaBeans. This approach helps to overcome the problems with a pure servlet based approach, such as:
     Thorough Java programming knowledge is needed to develop and maintain all aspects of the application, since the processing code and the HTML elements are lumped together.
     Changing the look and feel of the application, or adding support for a new type of client, requires the servlet code to be updated and recompiled.
     It is hard to take advantage of Web-page development tools when designing the application interface. If such tools are used to develop the Web page layout, the generated HTML must than be manually embedded into servlet code. This process is time consuming and error prone.

6. Explain the various JSP Directives.
Ans.
JSP directives are JSP elements that provide global information about a JSP page. The various JSP directives are:
     page directive: Defines information that will globally affect the JSP containing the directive. The syntax of a page directive is: <%@ page {attribute = "value"}%>. The various possible attributes are language, extends, import, session, buffer, autoFlush, isThreadSafe, info, errorPage, isErrorPage, and contentType.
     include directive: Used to insert text and/or code at the JSP translation time. Its syntax is: <%@ include file = "relativeURLspec" %>. The file attribute can reference a normal HTML  file or a JSP file, which must be local to the Web application that contains the directive.
     taglib directive: States that the including page uses a custom tag library, uniquely identified by a URO and associated with a  prefix that will distinguish each set of custom tags to be used in the page. Its syntax is: <%@ taglib uri  = "tagLibraryURI" prefix = "tagPrefix"%>.

7. Explain JSP error handling.
Ans.
The JSP architecture provides an error-handling solution through the use of JSPs that are written exclusively to handle JSP errors. The errors that occur most frequently are runtime errors that can arise either in the body of the JSP page or in some other object that is called from the body of the JSP page. Request-time errors that result in an exception being thrown can be caught and handled in the body of calling JSP, which signals the end of the error. Exceptions that are not handled in the calling JSP result in forwarding client request, including the uncaught exception, to an error page specified by the offsending JSP.

8. Explain implicit objects out, request, and response in a JSP page.
Ans.
Following are the implicit objects in a JSP page:
     out: This implicit object represents a JspWriter that provides a stream back to the requesting client. The most common method of this object is out.println(),which prints text that will be displayed in the client's browser.
     request: This implicit object represents the javax.servlet.HttpServletRequest interface. The request object is associated with every HTTP request. One common use of the request object is to access request parameters. You can do this by calling the request object's getParameter() method with the parameter name you are seeking. It will return a string with the values matching the named parameter.
     response: This implicit object represents the javax.servlet.HttpServletRequest object. The response object is used to pass data back to the requesting client. A common use of this object is writing HTML output back to the client browser.

Chapter Seven

Solutions to Chapter Seven Questions
1. What are servlets? Explain with an example?
Ans.
Servlets are programs that run on a Web server and create Web pages on the fly.  To be a servlet, a class should extend HttpServlet and override doGet or doPost or both methods, depending on whether data is sent by GET or POST. These methods take two arguments, HTTPServletRequest and HttpServletResponse. The HTTPServletRequest has methods that let you find out about incoming information such as FORM data and HTTP request headers. The HttpServletResponse has method that lets you specify the HTTP response line, response headers, and obtain a PrintWriter object, used to send output back to the client. For simple servlets, most of the effort is spent in println statements that generated the desired page. A sample servlet is given below:
package hallo;
import java.io.*;
import javax.servlet.*;
import. Javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOexception {
PrintWriter out = response.getWriter();
Out.println("Hello World");
}
}

2. Explain Servlet life cycle.
Ans.
The lifecycle of a servlet consists of the following main stages:
     Instantiation: The Web server creates an instance of a servlet. This is based on  a request or a container startup.
     Initialization: The Web server creates the instance's init() method. When the Web server loads a Web application, it also loads the initialization parameters associated with the application. This and the previous step occur only once during the lifetime of a servlet.
     Service: This is the third state in the servlet lifecycle. In this state, the servlet's service() method is called, which generates response. The generation of response involves the following steps:
a.    Setting the content type of the response. The receiving application (browser) uses this information to know how to treat the response data. For example, to generate an HTML output, the content-type is set to "text html".
b.    The second step is to get PrintWriter object from response. PrintWriter is a class that extends the java.io writer abstract class. In the case of servlets, the Web server constructs the Print Writer object from the java.io. OutputStream object associated with the underlying connection from the client. With TCP/IP  based implementations, Web server usually gets OutputStream object from the socket, uses the object to create the PrintWriter object, and associates with the HttpServletResponse object. As a result, from within the servlet, you will able to write to object stream associated with the network association.
     Destroy: This is the final stage in a servlet lifecycle. In this stage, the destroy() method is called before shutting down the servlet.

3. What is the difference between HttpServlet and GenericServlet?
Ans.
GenericServlet is the base class, which is extended by an abstract class HttpServlet.

4. What is the difference between doGet() and doPost().
Ans.
doGet() needs to be overridden when the data is submitted to the server using the GET method whereas the doPost() method needs to be overridden when POST method is used to submit data to the server.

5. Explain the relationship between a servlet, its servlet container and the servlet API.
Ans.
A servlet is a Java program, which runs in a servlet container and is written according to servlet API specification. Servlet API is a set of classes and interfaces, which outlines all necessary operations, restrictions, and behaviour for a servlet. A servlet container is software, which provides network services over which requests, responses are sent. It should provide abstraction in obtaining requests and formatting responses and at least support communication over HTTP. For example, Tomcat is a servlet container.

6. Which two packages implement the Servlet API?
Ans.
The two packages are:
1.6.   javax.servlet
2.7.   javax.servlet.http

7. Draw a class diagram to show the relationship between major classes in the servlet API.
Ans.
The class diagram is shown as here:

Class Diagram

8. What are the advantages of using servlets to extend server functionality?
Ans.
Following are the advantages of using servlets:
1.8.   It helps to achieve platform independence.
2.9.   It provides performance improvement as classes stays in the memory once called.
3.10.  It is much more secure over traditional server side languages. For example, no problems of memory leakages and buffer overflows are faced in case of servlets.
4.11.  It uses Java's multithreading capabilities, which gives it a performance gain.

9. Describe the request handling cycle and the methods invoked on the servlet by the servlet container.
Ans.
Following are the operations done on a servlet by servlet container when a servlet is requested:
1.12.  If servlet instance does not exist in memory, the container:
a.    Loads the servlet class and thus creates its instance
b.    Calls the init() method on the above class and passes ServletConfig as parameter
2.13.  On any further request service() method of servlet class is called and HttpServletRequest and HttpServletResponse are passed as parameters to it.

10. Which class provides methods of reading the parameters submitted by a client?
Ans.
There is no class for this but HttpServletRequest interface provides methods getParameter(), getParameterValues(), and getParameterMap() for obtaining parameters submitted by client.

11. Which class provides methods of reading the parameters specified in the deployment descriptor file?
Ans.
ServletConfig class provides methods getInitParameter() and getInitParameterNames() for reading parameters specified in deployment descriptor.

12. Which streams are used for sending the contents of the entity-body in the response?
Ans.
ServletOutputStream is used for sending contents in response, if the data is binary. It extends the OutputStream class. Its object is normally obtained by calling HttpServletResponse.getOutputStream.
For sending character data PrintWriter class is used, which extends the Writer class. Its object is obtained by calling the HttpServletResponse.getWriter() method.

13. Outline the main steps in implementing the servlet.
Ans
Following are the steps used in implementing a servlet for HTTP communication:
1.14.  Import required servlet packages in the class.
2.15.  Make the class extend HttpServlet.
3.16.  Override methods doGet(), doPost(), or doService() as required by problem in hand.
4.17.  Make an entry for the above servlet in deployment descriptor.
5.18.  Configure any extra options or filters, which are required by the server to function.

14. Explain the semantics of the HTML FORM element.
Ans.
The HTML form element represents a form in which users can input data and submit it to the server for processing. The HTML form tag is as follows:
<FORM NAME="name" ACTION = "action.jsp" METHOD = "POST/GET">
The name attribute specified the name for a form. The action attribute specified the URL of the document or the name of the file to which the form data is submitted for action and the method attribute specified the HTTP method through which the data is sent to the server.
The action attribute can be a simple static Web page or a servlet. The method can be POST or GET.
A form includes various other <INPUT> elements such as textbox, list, buttons, or checkboxes.

15. Which statements are true.
1.19.  A web application can have more than web.xml.
2.20.  The HTTPServlet class implements the ServletConfig interface.
3.21.  The HTTPServlet class implements the ServletContext interface
4.22.  In a doHttpServletMethodName( ) method, the request and the response objects can be manipulated in any order.
5.23.  The servlet configuration can change from request to request.
6.24.  The servlet context can change from request to request.
7.25.  The servlet element must occur before the servlet-mapping in an element in web.xml file.
The servlet-class element must specify the full package name of the servlet class.
Ans:
1.26.  False
2.27.  True
3.28.  False
4.29.  True
5.30.  False
6.31.  False
7.32.  True
8.33.  True


Chapter Eight

Solutions to Chapter Eight Questions
1. What are the several ways of tracking users?
Ans.
The several ways in which you can track users are:
     Using hidden controls
     Using cookie
     Using sessions
     Using applications

2. Explain in brief how to use hidden controls in a web page? Give an example.
Ans.
Using HTML, hidden controls are an easy way to store data in a Web page. You can store data in a hidden control and then refer to the value of control wherever required. Hidden controls are often used when you submit a form to itself. That is if your form's ACTION attribute is set to the same page which contains the form. In this case, every time the page loads you have to determine whether it is being loaded afresh or after a submission. For this, you can store a text value such as "DONE" in a hidden control SUBMIT_STATUS, and check for it whenever the page loads. If request.getParameter(SUBMIT_STATUS) returns a NULL value, it means that the form is being loaded afresh.
This logic is demonstrated in the following code:
<html>
<head></head>
<body>
<%
if(request.getParameter("DONE")==null)
{
out.println("You entered your name as:" + getParameter("name"));
}
else
{
%>
<form action = "this.jsp" method = "POST">
Enter your name:<input type ="text" name = "name"></input
<input type = "HIDDEN" name = "DONE" value ="submitted">
<input type = "SUBMIT" value = "SUBMIT">
</form>
<%
}
%>
</body>
</html>

3. What are the disadvantages of hidden controls?
Ans.
The disadvantages of hidden controls are that they are not secure as any user can access the HTML source and view their value. Consequently, you cannot store crucial information such as passwords in them. In addition, they complicate the code many times.

4. What are cookies? Explain in brief.
Ans.
Cookies are small text strings you store on a user's computer. Cookies store information for tracking users in  name-value pairs. When you first visit a website it may store a cookie on your computer. Next, when you again visit the site it may read or manipulate the value of the cookie and perform an action based on it. For example, if a site allows you to customize the color of the user interface, it may set the color selected by you in a cookie on your computer and read the color value when next time you request the page of the website. The page can them be displayed in the color stored in the cookie.

5. List down any 6 methods of javax.servlet.http.Cookie class and their functionality.
Ans.
Following are the methods of the Cookie class:
     java.lang.String getName(): Returns the name of the cookie
     java.lang.String getValue(): Returns the value of the cookie
     void setValue(java.lang.String value): Assigns a new value to a cookie after it has been created
     void setPath(java.lang.String uri): Sets the path for the cookie by which the browser will send the cookie
     void setMaxAge(int expiry): Set the maximum age of the cookie in seconds
     int getMaxAge(): Returns the maximum age of the cookie in second

6. List down any 6 methods of HttpServletResponse class and their functionality.
Ans.
Following are the methods of the HttpServletResponse class:
     int SC_ACCEPTED: Indicates that a request was accepted for processing but was not completed
     int SC_BAD_GATEWAY: Indicates that the HTTP server received an invalid response from a server, when acting as a proxy or gateway
     int SC_BAD_REQUEST: Indicates that the request sent by the client was incorrect
     int SC_CONFLICT: Indicates that the request cannot be completed because of a conflict with the current state of the resource
     int SC_CONTINUE: Indicates that the client can continue

7. Explain in brief how to create a cookie with an example.
Ans.
You can create a cookie by instantiating an object of the Cookie class. For example, to create a cookie name 'mycookie', with the value 'this is the cookie value', you can use the following code snippet:
Cookie mycookie =  new Cookie("mycookie", "this is the cookie value");
mycookie.setMaxAge(24*60*60);
respone.addCookie(mycookie)//install cookie on browser
The setMaxAge() method sets the time after which the cookie will expire. The response.addCooki() method will install the cookie on the browser.

8. Explain in brief how to read a cookie with an example.
Ans.
You can read a cookie as:
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookie.length;i++)
{
if(cookies[i].getName().equals("mycookie"))
      out.println("The value is" + cookie[i].getValue());
}
9. What is a session?
Ans.
Sessions let you preserve data between accesses to a Web page by the same user. Unlike cookie, sessions are stored on the server itself in files or databases.

10. Explain in brief how to track a user using Sessions with an example.
Ans.
You can track user using sessions by storing the details of his/her session with the Web site. For example, you store the number of times that a user has visited a page and display it to him on every visit. To track the user using sessions perform the following steps:
1.34.  Include page directive with the session attribute set to true, at the top of the page, to indicate that a new session has to be started(if one does not already exist).
2.35.  Check whether a count has already been set before in a session attribute using the getAttribute() method of the Session class.
3.36.  If the count has not been set, the getAttribute() method will return null. In that case, you can create a new count value. If a value already exists, you can increment it and store the new value in the session object.
The above steps are implemented in the following code:
<%
Integer count = (Integer)session.getAttribute("visitcount");
If(count==null)
{count = new Integer(1);
}
else
{
count = new Integer(visitcount.intValue()+1);
}
session.setAttribute("visitcount", count);
%>
<body>
You have visited this page <%=count%> times.
</body>

11. What is the difference between Session and Application?
Ans.
A single session allows you to track one user at a time whereas an application enables you to track all JSPs in the same site, regardless of the number of users accessing them.

12. Explain how to track users using SESSIONS, APPLICATIONS, AND JAVABEANS.
Ans.
You can instruct Tomcat to save the JavaBeans in a session object as well as in attributes. You can store JavaBeans in applications as well. You do this with <jsp:useBean> element’s scope attribute, which you can set to one of these value: scope="page|request|session|application". The term scope indicates where a data item is visible in your code. The default scope for a bean is page scope, which means the bean exists only for the page scope. However, if you set the scope of a bean to a session, it is stored with the rest of session's data.

Chapter Nine

Solutions to Chapter Nine Questions
1. What is SSL? Why do you require SSL?
Ans.
SSL or Secure Socket Layer is a protocol that authenticates Web sites to browsers.  It is also used for encrypting communication between browser  and Web servers. To enable SSL, you simply need to install digital certificates or Server ID.
The main role of SSL is to provide security for Web traffic. Security includes confidentiality, message integrity, and authentication. SSL achieves these elements of security through the use of cryptography, digital signatures, and certificates.

2. Explain SSL working.
Ans.
SSL has two distinct entities, server and client. The client is the entity that initiates the transaction whereas the server is the entity that responds to the client and negotiates which cipher suites are used for encryption. In SSL, the Web browser is the client and the Web site server is the server. Three protocols lie within SSL, the Handshake protocol, the Record protocol, and the Alert protocol. The client authenticates the server during the Handshake protocol. When the session is initiated and the handshake is complete, the data transfer is encrypted during the Record Protocol phase. If there are any alarms at any point during the session, the alert is attached to the questionable packet and handled according to the Alert protocol.

3. What is XML? Explain in brief.
Ans.
XML is a simple, common format for representing structured information as text. You can create your own tags to define and structure data, and transmit it.  The basic syntax of XML is extremely simple. As with HTML, XML represents information as text using tags to add structure. A tag begins with a name in between angular brackets (<>). In XML, every tag must have a closing tag. An opening tag, closing tag and any content in between are collectively referred to as an element of an XML document. Elements can contain other elements but they must be properly nested. Elements can also contain text or a combination of elements and text.

4. Given an overview about EJBs.
Ans.
Enterprise Java Beans (EJB) is a server-side component that executes specific business logic on a server when invoked by a local or remote client. EJB is actually a framework for writing distributed programs. It involves a standardization agreement that enables a component to run within any application server. The agreement is accomplished by implementing a set of Java interfaces from the EJB API. Note that EJBs are not GUI components.

5. What are the advantages and disadvantages of EJBs.
Ans.
Following are the advantages of EJBs:
     Many vendor application servers conform to the J2EE  specification allowing you to select a best-of-breed solution.
     To handle fluctuations in resource demand server-side resources can easily be scaled by adding or removing servers.
     Application servers provide access to complex services, such as transaction and security management, resource pooling, JNDI (Java Naming and Directory Interface), and component lifecycle management.
Following are the disadvantages of EJBs:
     EJB has a large and complicated specification.
     EJBs take time to develop. Also, they are difficult to debug. Occasionally, the bug may not be in your code but in the application server itself.
     Frequently released newer versions of EJB specifications render application obsolete quickly.

6. Explain entity beans and session beans?
Ans.
An entity bean is an object with the following special properties:
     It is permanent. It does not get destroyed itself after a program finishes executing.
     It is network-based. It can be used by any program over a network provided the program is able to access the bean on the networked machine.
     It is executed remotely. Methods of an entity bean run on a server machine. When you call an entity bean's method, your program's thread stops executing and control passes over to the server. When the method returns from the server, the thread resumes execution.
     It is identified by a primary key. Entity beans must have a primary key. The primary key is unique - each entity bean is uniquely identified by its primary key. For example, an employee entity bean may have Social Security number as primary key. You can only use entity beans when your objects have a unique identifier field or when you add such a field.
Session beans are different from entity beans in that they are not permanent objects. They are not shareable in  general although it is possible to share them using handles. Session beans can be used to distribute and isolate processing tasks. Each session bean can be used to perform a certain task on behalf of its client. The tasks can be distributed on different machines. Session beans also do not have a primary key. Unlike entity beans, session beans are not primarily meant to be shared or found later. 

7. Briefly describe the remote and home interfaces in EJBs?
Ans.
A remote interface is the business end of EJB. It is the set of services provided by EJB.
The home interface is the book-keeping interface. It helps clients to create a new instance of an EJB, or to find an existing instance of an EJB. The methods used to find existing EJBs are shown as finder methods. Since session beans are not designed to be shareable, there are no session bean finder methods.

8. What is DTD?
Ans.
DTD or Document Type Definitions is a document that contains grammar rules for validating an XML document. It is a schema specification method for XML.

No comments:

Post a Comment