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%"> </td>
<td
width="33%"> </td>
<td
width="34%"> </td>
</tr>
<tr
bgcolor="#00A0FF">
<td
width="33%"> </td>
<td
width="33%"> </td>
<td
width="34%"> </td>
</tr>
<tr bgcolor="#AB00FF">
<td
width="33%"> </td>
<td
width="33%"> </td>
<td
width="34%"> </td>
</tr>
<tr
bgcolor="#FB2CFF">
<td
width="33%"> </td>
<td
width="33%"> </td>
<td
width="34%"> </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>
<HTML><br>
<HEAD><br>
</HEAD><br>
</HTML><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> </p>
<p><a
href="http://yahoo.com">Search on Yahoo</a></p>
<p> </p>
<p>
<A NAME= "sec2">Section 2: </a>
</p>
<p><a
href="http://ebay.com">
Shop on
ebay </a></p>
<p><a
href="http://wallpapers.com">Download
wallpapers</a> </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