Web Technologies PDF
Web Technologies PDF
Web Technologies PDF
Web Basics and Overview: Introduction to Internet, World Wide Web, Web Browsers, URL,
MIME, HTTP, Web Programmers Tool box.
HTML Common tags: List, Tables, images, forms, frames, Basics of CSS and types of CSS.
Client-Side Programming (Java Script): Introduction to Java Script, declaring variables,
functions, Event handlers (onclick, onsubmit, etc.,) and Form Validation.
UNIT II:
Server-Side Programming (PHP): Declaring Variables, Data types, Operators, Control
structures, Functions, Reading data from web form controls like text buttons, radio buttons, list,
etc., Handling File Uploads, Handling Sessions & Cookies.
Introduction to XML: Document type definition, XML Schemas, Document Object model,
Presenting XML , Introduction to XHTML, Using XML Processors: DOM and SAX.
UNIT III:
Web Servers and Servlets: Tomcat web server, Installing the Java Software Development Kit,
Tomcat Server & Testing Tomcat.
Introduction to Servlets: Lifecycle of a Servlet, JSDK, Deploying Servlet, The Servlet API, The
javax. Servlet Package, Reading Servlet 150 parameters, Reading Initialization parameters. The
javax.servlet HTTP package, Handling Http Request & Responses, Using Cookies-Session
Tracking.
UNIT IV:
Introduction to JSP: The Problem with Servlet. The Anatomy of a JSP Page, JSP Processing.
JSP Application Design with MVC Setting Up and JSP Environment, JSP Declarations,
Directives, Expressions, Code Snipplets, implement objects, Requests, Using Cookies and Session
for Session Tracking.
UNIT V:
Database Access: Database Programming using JDBC, JDBC drivers, Studying Javax.sql.*
package, Connecting to database in PHP, Execute Simple Queries, Accessing a Database from a
Servlet and JSP page.
Java Beans: Introduction to Beans, Deploying java Beans in a JSP page.
TEXT BOOKS:
REFERENCE BOOKS:
1. Programming world wide web-Sebesta, Pearson Education ,2007.
2. Core SERVLETS ANDJAVASERVER PAGES VOLUME 1: CORE TECHNOLOGIES By Marty Hall and
Larry Brown Pearson
3. Internet and World Wide Web – How to program by Dietel and Nieto PHI/Pearson Education
Asia.
4. Jakarta Struts Cookbook, Bill Siggelkow, S P D O’Reilly for chap 8.
5. March’s beginning JAVA JDK 5, Murach, SPD
6. An Introduction to Web Design and Programming –Wang-Thomson
INDEX
UNIT NO TOPIC PAGE NO
Web Basics and Overview: Introduction to Internet, World Wide Web, Web Browsers, URL, MIME, HTTP,
Web Programmers Tool box.
HTML Common tags: List, Tables, images, forms, frames, Basics of CSS and types of CSS.
Client-Side Programming (Java Script): Introduction to Java Script, declaring variables, functions, Event
handlers (onclick, onsubmit, etc.,) and Form Validation.
The Internet is the global system of interconnected computer networks that use the Internet protocol
suite (TCP/IP) to link devices worldwide. It is a network of networks that consists of private, public,
academic, business, and government networks of local to global scope, linked by a broad array of
electronic, wireless, and optical networking technologies. The Internet carries a vast range of
information resources and services.
History of Internet
This marvelous tool has quite a history that holds its roots in the cold war scenario. A need
was realized to connect the top universities of the United States so that they can share all the
research data without having too much of a time lag. This attempt was a result of Advanced
Research Projects Agency (ARPA) which was formed at the end of 1950s just after the Russians
had climbed the space era with the launch of Sputnik. After the ARPA got success in 1969, it didn‘t
take the experts long to understand that how much potential can this interconnection tool have. In
1971 Ray Tomlinson made a system to send electronic mail. This was a big step in the making as
this opened gateways for remote computer accessing i.e. telnet.
During all this time, rigorous paper work was being done in all the elite research
institutions. From giving every computer an address to setting out the rules, everything was getting
penned down. 1973 saw the preparations for the vital TCP/IP and Ethernet services. At the end of
1970s, Usenet groups had surfaced up. By the time the 80s had started, IBM came up with its PC
based on Intel 8088 processor which was widely used by students and universities for it solved the
purpose of easy computing. By 1982, the Defense Agencies made the TCP/IP compulsory and the
term ―internet‖ was coined. The domain name services arrived in the year 1984 which is also
the time around which various internet based marked their debut. A worm, or a rust the computers,
attacked in 1988 and disabled over 10% of the computer systems all over the world. While most
of the researchers regarded it as an opportunity to enhance computing as it was still in its juvenile
phase, quite a number of computer companies became interested in dissecting the cores of the
malware which resulted to the formation Computer Emergency Rescue Team (CERT). Soon after
the world got over with the computer worm, World Wide Web came into existence. Discovered by
Tim Berners-Lee, World Wide Web was seen as a service to connect documents in websites using
hyperlinks.
Web Technologies III B.Tech II Sem (R15)
WWW is another example of client/server computing. Each time a link is followed, the client is
requesting a document (or graphic or sound file) from a server (also called a Web server) that's part
of the World Wide Web that "serves" up the document. The server uses a protocol called HTTP or
Hyper Text Transport Protocol. The standard for creating hypertext documents for the WWW is
Hyper Text Markup Language or HTML. HTML essentially codes plain text documents so they
can be viewed on the Web.
Browsers:
WWW Clients, or "Browser": The program you use to access the WWW is known as a
browser because it "browses" the WWW and requests these hypertext documents. Browsers can
be graphical, allows to see and hear the graphics and audio;
text-only browsers (i.e., those with no sound or graphics capability) are also available. All of these
programs understand http and other Internet protocols such as FTP, gopher, mail, and news,
making the WWW a kind of "one stop shopping" for Internet users.
Web Technologies III B.Tech II Sem (R15)
Google Chrome 48–55, Mozilla Firefox 44–50, Microsoft Edge 14, Opera 35–42, Apple
2016 Safari 10, SeaMonkey 2.24–2.30, Pale Moon 26.0.0[17], Pale Moon 27.0.0[18]
Google Chrome 56–60, Microsoft Edge 15, Mozilla Firefox 51–55.0.2, Opera 43–45, Opera
2017 Neon
Uniform Resource Locators, or URLs: A Uniform Resource Locator, or URL is the address of
a document found on the WWW. Browser interprets the information in the URL in order to connect
to the proper Internet server and to retrieve your desired document. Each time a click on a hyperlink
in a WWW document instructs browser to find the URL that's embedded within the hyperlink.
The elements in a URL: Protocol://server's address/filename
Servers insert the MIME header at the beginning of any Web transmission. Clients use this
header to select an appropriate "player" application for the type of data the header indicates. Some
of these players are built into the Web client or browser (for example, all browsers come with GIF
and JPEG image players as well as the ability to handle HTML files); other players may need to
be downloaded.
New MIME data types are registered with the Internet Assigned Numbers Authority
(IANA).
MIME is specified in detail in Internet Request for Comments 1521 and 1522, which amend
the original mail protocol specification, RFC 821 (the Simple Mail Transport Protocol) and the
ASCII messaging header, RFC 822.
HTTP is called a stateless protocol because each command is executed independently, without any
knowledge of the commands that came before it. This is the main reason that it is difficult to
implement Web sites that react intelligently to user input.
HTTPS: A similar abbreviation, HTTPS means Hyper Text Transfer Protocol Secure. Basically,
it is the secure version of HTTP. Communications between the browser and website are encrypted
by Transport Layer Security (TLS), or its predecessor, Secure Sockets Layer (SSL).
The Web Programmer‟s Toolbox:
HTML - a markup language
o To describe the general form and layout of documents
▪ HTML is not a programming language - it cannot be used
describe computations.
o An HTML document is a mix of content and controls
▪ Controls are tags and their attributes
▪ Tags often delimit content and specify something about how the
content should be arranged in the document
For example, <p>Write a paragraph here </p> is an element.
▪ Attributes provide additional information about the content of a tag
For example, <img src = "redhead.jpg"/> <font color ="Red" />
Plug ins
o Integrated into tools like word processors, effectively converting them to
WYSIWYG HTML editors
Filters
o Convert documents in other formats to HTML
Web Technologies III B.Tech II Sem (R15)
HTML Tags:- HTML tags are used to mark-up HTML elements .HTML tags are surrounded by the two
characters < and >. The surrounding characters are called angle brackets. HTML tags normally come in pairs
like and The first tag in a pair is the start tag, the second tag is the end tag . The text between the start and
end tags is the element content . HTML tags are not case sensitive, <B>means the same as <b>.
The most important tags in HTML are tags that define headings, paragraphs and line breaks.
Tag Description
<!DOCTYPE...> This tag defines the document type and HTML version.
<html> This tag encloses the complete HTML document and mainly comprises of
document header which is represented by <head>...</head> and document
body which is represented by <body>...</body> tags.
<head> This tag represents the document's header which can keep other HTML tags
like <title>, <link> etc.
<title> The <title> tag is used inside the <head> tag to mention the document title.
<body> This tag represents the document's body which keeps other HTML tags like
<h1>, <div>, <p> etc.
<p> This tag represents a paragraph.
<h1> to <h6> Defines header 1 to header 6
Headings:-
Headings are defined with the <h1> to <h6> tags. <h1> defines the largest heading while <h6>
defines the smallest.
<h1>This is a heading</h1>
<h2>This is a heading</h2>
<h3>This is a heading</h3>
<h4>This is a heading</h4>
<h5>This is a heading</h5>
<h6>This is a heading</h6>
Web Technologies III B.Tech II Sem (R15)
Paragraphs:-
Paragraphs are defined with the <p> tag. Think of a paragraph as a block of text. You can use the
align attribute with a paragraph tag as well.
Note: You must indicate paragraphs with <p> elements. A browser ignores any
indentations or blank lines in the source text. Without <p> elements, the document becomes
one large paragraph. HTML automatically adds an extra blank line before and after a paragraph.
Line Breaks:-
The <br> tag is used when you want to start a new line, but don't want to start a new paragraph.
The <br> tag forces a line break wherever you place it. It is similar to single spacing in a document.
This Code output
<p>This <br> is a para<br> graph with This
is a para
line breaks</p> graph with line breaks
Horizontal Rule The element is used for horizontal rules that act as dividers between sections
like this:
The horizontal rule does not have a closing tag. It takes attributes such as align and width
Code Output
<hr width="50%" align="center">
Type the above program in notepad and save with some file name eg:sample.html
Open the file with browser and the webpage looks like this
Web Technologies III B.Tech II Sem (R15)
Lists:-HTML offers web authors three ways for specifying lists of information.
All lists must contain one or more list elements. Lists are of three types
1) Un ordered list
2)Ordered List
3)Definition list
HTML Unordered Lists:An unordered list is a collection of related items that have no
special order or sequence. This list is created by using HTML <ul> tag. Each item in the list is
marked with a bullet.
Example
<!DOCTYPE html>
<html>
<head>
<title>HTML Unordered List</title>
</head>
<body>
<ul> <li>Beetroot</li>
<li>Ginger</li> <li>Potato</li>
<li>Radish</li>
</ul>
</body>
</html>
HTML Ordered Lists:- ite ms are numbered list instead of bulleted, This list is created
by using <ol> tag.
<!DOCTYPE html>
<html>
<head>
<title>HTML Ordered List</title>
</head>
<body>
<ol>
<li>Beetroot</li>
<li>Ginger</li>
<li>Potato</li>
<li>Radish</li>
</ol>
</body>
</html>
Web Technologies III B.Tech II Sem (R15)
HTML Definition Lists:- HTML and XHTML supports a list style which is called
definition lists where entries are listed like in a dictionary or encyclopedia. The definition list is
the ideal way to present a glossary, list of terms, or other name/value list. Definition List makes
use of following three tags.
1). <dl> - Defines the start of the list
2). <dt> - A term
3). <dd> - Term definition
4). </dl> - Defines the end of the list
<!DOCTYPE html>
<html>
<head>
<title>HTML Definition List</title>
</head>
<body>
<dl>
<dt><b>HTML</b></dt> <dd>This stands for Hyper Text Markup Language</dd>
<dt><b>HTTP</b></dt> <dd>This stands for Hyper Text Transfer Protocol</dd>
</dl>
</body>
</html>
HTML tables:
The HTML tables allow web authors to arrange data like text, images, links, other tables, etc.
into rows and columns of cells. The HTML tables are created using the <table> tag in which the
<tr> tag is used to create table rows and <td> tag is used to create data cells.
Example:
<!DOCTYPE html>
<html>
<head>
<title>HTML Tables</title>
</head>
<body>
<table border="1">
<tr>
<td>Row 1, Column 1</td> <td>Row 1, Column 2</td>
</tr>
<tr> <td>Row 2, Column 1</td> <td>Row 2, Column 2</td>
</tr>
</table>
</body>
</html>
Web Technologies III B.Tech II Sem (R15)
Table Heading: Table heading can be defined using <th> tag. This tag will be put to replace
<td> tag, which is used to represent actual data cell. Normally you will put your top row as table
heading as shown below, otherwise you can use <th> element in any row.
Tables Backgrounds: set table background using one of the following two ways:
1)bgcolor attribute - You can set background color for whole table or just for one cell.
2)background attribute - You can set background image for whole table or just for one cell. You
can also set border color also using bordercolor attribute.
<!DOCTYPE html>
<html>
<head>
<title>HTML Tables</title> </head>
<body>
<table border="1"bordercolor="red" bgcolor="yellow">
<tr> <th>Name</th>
<th>Salary</th> </tr>
<td>Jayapal </td> <td>50,000.00</td>
</tr>
<tr> <td>Ravi</td> <td>45,000.00</td>
</tr>
</table>
</body>
</html>
Images are very important to beautify as well as to depict many complex concepts in simple way
on your web page.
Insert Image:
insert any image in the web page by using <img> tag.
<img align="left|right|middle|top|bottom">
Attribute Values
Value Description
Example
<!DOCTYPE html>
<html>
<head>
<title>Using Image in Webpage</title>
</head>
<body> <p>Simple Image Insert</p>
<img src="test.png" alt="Test Image" />
</body>
</html>
HTML FORMS:
HTML Forms are required to collect some data from the site visitor. For example, during
user registration you would like to collect information such as name, email address, credit card, etc.
A form will take input from the site visitor and then will post it to a back-end application such as
CGI, ASP Script or PHP script etc. The back-end application will perform required processing on
the passed data based on defined business logic inside the application. There are various form
elements available like text fields, text area fields, drop-down menus, radio buttons, checkboxes,
etc.
<form action="Script URL" method="GET|POST"> form elements like input, text area etc. </form>
Web Technologies III B.Tech II Sem (R15)
Example:
<form>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>
2) Password input controls - This is also a single- line text input but it masks the character as
soon as a user enters it. They are also created using HTML <input> tag.
Input Type Password
<form>
User name:<br>
<input type="text" name="username"><br>
User password:<br>
<input type="password" name="psw">
</form>
Web Technologies III B.Tech II Sem (R15)
3) Multi-line text input controls - This is used when the user is required to give details that may
be longer than a single sentence. Multi- line input controls are created using HTML
<textarea> tag.
<!DOCTYPE html>
<html>
<head>
<title>Multiple-Line Input Control</title>
</head>
<body>
<form> Description: <br />
<textarea rows="5" cols="50" name="description"> Enter description here... </textarea>
</form>
</body>
</html>
Checkboxes Controls:-
Checkboxes are used when more than one option is required to be selected. They are also
created using HTML <input> tag but type attribute is set to checkbox.
Here is an example HTML code for a form with two checkboxes:
<!DOCTYPE html>
<html> <head> <title>Checkbox Control</title> </head>
<body>
<form>
<input type="checkbox" name="C++" value="on"> C++
<br>
<input type="checkbox" name="C#" value="on"> C#
<br>
<input type="checkbox" name="JAVA" value="on"> JAVA
</form>
</body> </html>
Select Box Controls :- A select box, also called drop down box which provi des option to
list down various options in the form of drop down list, from where a user can select one or
more options.
<!DOCTYPE html>
<html>
<head>
<title>Select Box Control</title>
</head>
<body>
<form>
<select name="dropdown">
<option value="C++" selected>C++</option>
<option value="JAVA">JA VA</option>
<option value="HTML">HTML</option>
</select>
</form>
</body>
</html>
File Select boxes:- If you want to allow a user to upload a file to your web site, you will
need to use a file upload box, also known as a file select box. This is also created using the
<input > element but type attribute is set to file.
Hidden Controls:- Hidden form controls are used to hide data inside the page which later on
can be pushed to the server. This control hides inside the code and does not appear on the
actual page. For example, following hidden form is being used to keep cur rent page number.
When a user will click next page then the value of hidden control will be sent to the web server
and there it will decide which page will be displayed next based on the passed current page.
<body>
Web Technologies III B.Tech II Sem (R15)
Button Controls:-
There are various ways in HTML to create clickable buttons. You can also create a clickable button
using <input> tag by setting its type attribute to button. The type attribute can take the following
values:
<!DOCTYPE html>
<html>
<head>
<title>File Upload Box</title>
</head>
<body>
<form>
<input type="submit" name="submit" value="Submit" />
<input type="reset" name="reset" value="Reset" />
<input type="button" name="ok" value="OK" />
<input type="image" name="imagebutton" src="test1.png" />
</form>
</body> </html>
HTML frames: These are used to divide your browser window into multiple sections where each
section can load a separate HTML document. A collection of frames in the browser window is
known as a frameset. The window is divided into frames in a similar way the tables are organized:
into rows and columns.
To use frames on a page we use <frameset> tag instead of <body> tag. The <frameset> tag
defines, how to divide the window into frames. The rows attribute of <frameset> tag defines
horizontal frames and cols attribute defines vertical frames. Each frame is indicated by <frame> tag
and it defines which HTML document shall open into the frame.
Web Technologies III B.Tech II Sem (R15)
<frameset cols="25%,50%,25%">
<frame src="frame_a.htm">
<frame src="frame_b.htm">
<frame src="frame_c.htm">
</frameset>
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<iframe src="sample1.html" height="400" width="400"frameborder="1">
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</iframe>
</body>
</html>
CSS stands for Cascading Style Sheets
CSS describes how HTML elements are to be displayed on screen, paper, or in other media.
CSS saves a lot of work. It can control the layout of multiple web pages all at once.
CSS can be added to HTML elements in 3 ways:
➢ Inline - by using the style attribute in HTML elements
➢ Internal - by using a <style> element in the <head> section
➢ External - by using an external CSS file
Inline CSS
An inline CSS is used to apply a unique style to a single HTML element.
An inline CSS uses the style attribute of an HTML element.
This example sets the text color of the < h1> element to blue:
Internal CSS: An internal CSS is used to define a style for a single HTML page. An internal CSS
is defined in the <head> section of an HTML page, within a <style> element:
<html>
<head>
<style>
body {background-color: powderblue;}
h1 {color: blue;}
p {color: red;}
</style>
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
External CSS:-
An external style sheet is used to define the style for many HTML pages. With an external style
sheet, you can change the look of an entire web site, by changing one file! To use an external
style sheet, add a link to it in the <head> section of the HTML page:
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
An external style sheet can be written in any text editor. The file must not contain any HTML
code, and must be saved with a .css extension.
Here is how the "styles.css" looks:
h1 { color: blue; }
p { color: red; }
Web Technologies III B.Tech II Sem (R15)
CSS Fonts: The CSS color property defines the text color to be used.
The CSS font-family property defines the font to be used.
The CSS font-size property defines the text size to be used.
<html>
<head>
<style>
h1 {
color: blue;
font-family: verdana;
font-size: 300%;
}
p {
color: red;
font-family: courier;
font-size: 160%;
}
</style>
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
</html>
CSS Border: The CSS border property defines a border around an HTML element.
CSS Padding: The CSS padding property defines a padding (space) between the text and the
border.
CSS Margin: The CSS margin property defines a margin (space) outside the border.
Web Technologies III B.Tech II Sem (R15)
JavaScript:
What is JavaScript?
Java Script is one popular scripting language over internet. Scripting means a small sneak (piece). It is
always independent on other languages.
JavaScript is most commonly used as a client side scripting language. This means that JavaScript code is written
into an HTML page. When a user requests an HTML page with JavaScript in it, the script is sent to the
browser and it's up to the browser to do something with it.
Difference between JavaScript and Java
JavaScript Java
Cannot live outside a Web page Can build stand-alone applications or live in a
Web page as an applet.
Doesn‘t need a compiler Requires a compiler
Knows all about your page Applets are dimly aware of your Web page.
Untyped Strongly typed
Somewhat object-oriented Object-oriented
There are no relationship between in java & java script. Java Script is a scripting language that always
dependent in HTML language. It used to css commands. It is mainly used to creating DHTML pages &
validating the data. This is called client side validations.
Why we Use JavaScript?
Using HTML we can only design a web page but you can not run any logic on web browser like
addition of two numbers, check any condition, looping statements (for, while), decision making
statement (if-else) at client side. All these are not possible using HTML So for perform all these
task at client side you need to use JavaScript.
Features of JavaScript
JavaScript is a client side technology, it is mainly used for gives client side validation, but it have lot of
features which are given below;
Web Technologies III B.Tech II Sem (R15)
→ Java script is object based oriented language.
Inheritance is does not support in JavaScript, so it is called object based oriented language.
→ JavaScript was developed by Netscape (company name) & initially called live script.
Later Microsoft developed & adds some features live script then it is called “Jscript”.
Jscript is nothing but Java script. We cannot create own classes in java script.
→ Java script is mainly useful to improve designs of WebPages, validate form data at
client side, detects (find) visitor‘s browsers, create and use to cookies, and much more.
→ Java script is also called light weight programming language , because Java script is
return with very simple syntax. Java script is containing executable code.
→ Java script is also called interpreted language , because script code can be executed
in C language.
→ An important part of JavaScript is the ability to create new functions within scripts.
Creating a java script: - html script tag is used to script code inside the html page.
<script> </script>
1) Language attribute: -
<script language=―JavaScript‖>
2) Type attribute: - It indicates MIME (multi purpose internet mail extension) type of scripting code. It
sets to an alpha-numeric MIME type of code.
<html> <html>
<head> <head>
<script type=―text / JavaScript‖> </head>
Script code here <body>
</script> <script type= ―text / JavaScript‖>
</head> Script code here
<body> </script>
</body> </body>
</html> </html>
Scripting in both head & body section: - we can create unlimited number of scripts inside the same
page. So we can locate multiple scripts in both head & body section of page.
Ex: - <html>
<head>
<script type=―text / JavaScript‖>
Script code here
</script>
</head>
<body>
<script type=―text / JavaScript‖>
Script code here
</script>
</body>
</html>
Program: -
<html>
<head>
<script language="JavaScript">
document.write("hai my name is Kalpana")
</script>
</head>
<body text="red">
<marquee>
<script language="JavaScript">
document.write("hai my name is Sunil Kumar Reddy")
</script> </marquee>
</body>
</html>
O/P: - hai my name is Kalpana
Ex: -
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional // EN">
<HTML>
<HEAD>
<script language="JavaScript">
function myf( )
{
document.write("Hai Kalpana")
}
</script>
</HEAD>
<BODY>
to execute script code:
<input type="button" value="click me" onclick="myf( )">
To execute script code:
<input type="button" value="touch me" onmouseover="myf( )">
</BODY>
</HTML>
Creating external script: - some times you might want to run same script on several pages without having
to write the script on each page. To simplify this, write external script & save .js extension. To use external
script specify .js file in src attribute of script tag.
save: - external.js
document.write("this is external script code 1 "+"<br>");
document.write("this is external script code 2 "+"<br>");
document.write("this is external script code 3 "+"<br>");
document.write("this is external script code 4 ");
<HTML> <BODY>
<script language="JavaScript">
document.write("this is document code 1 "+"<br>");
document.write("this is document code 2 "+"<br>");
</script>
<script src="external.js">
</script>
</BODY>
</HTML>
Web Technologies III B.Tech II Sem (R15)
JavaScript syntax rules: - JavaScript is case sensitive language. In this upper case lower case letters
are differentiated (not same).
Ex: - a=20;
A=20;
Those the variable name „a‟ is different from the variable named „A‟.
Ex: - myf( ) // correct
myF( ) // incorrect
→ ; is optional in general JavaScript.
Ex: - a=20 // valid
b=30 // valid
A=10; b=40; // valid
However it is required when you put multiple statements in the same line.
→ JavaScript ignore white space. In java script white space, tag space & empty lines are not preserved.
→ To display special symbols we use \.
Comment lines: - comments lines are not executable.
Declaring variable: - variable is a memory location where data can be stored. In java script variables
with any type of data are declared by using the keyword ‗var‘. All keywords are small letters only.
var a; a=20;
var str; str= “Sunil”;
var c; c=‟a‟;
var d; d=30.7;
But the keyword is not mandatory when declare of the variable.
c; → not valid. In this solution var keyword must be declared.
→ During the script, we can change value of variable as well as type of value of variable.
Ex: -
a=20;
a=30.7;
JavaScript functions: - in java script functions are created with the keyword ‗function‘ as shown below
<HTML> </HEAD>
<HEAD> <BODY>
<TITLE> Function direct call</TITLE> <script>
<script language="JavaScript"> var r=add(30,60)
function add(x,y) document.write("addition is :"+r);
{ </script>
z=x+y </BODY>
return z </HTML>
}
</script> O/P: - addition is :90
2→ to add dynamical effects, java script provide a list of events that call function dynamically.
Hare each event is one attribute that always specified in html tags.
attrname=”attrval”
eventName=”funname( )”
Ex: -
<HTML> </HEAD>
<HEAD> <BODY> to call function:
<TITLE> Function dynamically</TITLE> <input type="button" value="click hare"
<script language="JavaScript"> onclick="add( )">
function add( ) </script>
{ </BODY>
x=20 </HTML>
y=30
z=x+y
document.write("addition is :"+z); O/P: - to call function:
addition is :90
}
</script>
EVENT HANDLERS: Events are not case sensitive.
Java script events: -
Attribute The event occurs when…
onclick mouse click an object
ondblclick mouse double clicks
onmouseover a mouse cursor on touch here
onmousedown a mouse button is pressed
onmousemove the mouse is moved
onmouseout the mouse is moved out an element
onmouseup a mouse button is released
onkeydown a keyboard key is pressed
onkeypress a keyboard key is pressed or held down
onkeyup a keyboard key is released
onfocus an elements get focus
onblur an element loses focus
onchange the content of a field change
onselect text is selected
onload a page or an image is finished loading
onunload the user exist the page
Web Technologies III B.Tech II Sem (R15)
onerror an error occurs when loading a document or an image
onabort loading an image is interrupted
onresize a window or frame is resized
onreset the reset button is pressed
onsubmit the submit button is clicked
Ex: -
<HTML> <br>
<HEAD> <b onmousemove="add( )">
<TITLE> Mouse Events </TITLE> to call function cursor move here :
<script language="JavaScript"> </b>
function add() <br>
{ <b onmouseup="add( )">
a=55 to call function cursor up here :
b=45 </b>
c=a+b <br>
document.write("addition is :"+c) <b onmouseout="add( )">
} to call function cursor out here :
</script> </b>
</HEAD> </BODY>
<BODY> </HTML>
<b onclick="add( )">
to call function click here : O/P: -
</b> to call function click here :
<br> to call function touch here :
<b onmouseover="add( )"> to call function double click here :
to call function touch here : addition is :100
</b> to call function cursor move here :
<br> to call function cursor up here :
<b ondblclick="add( )"> to call function cursor out here :
to call function double click here :
</b>
Program: -
<HTML>
<HEAD>
<TITLE> display student name </TITLE>
<script language="JavaScript">
function disp( )
{
// access from data
var name=window.document.student.sname.value
// (or) var name=window.document.getElementById("snameid").value
//checking name
if(name=""||!isNaN(name)||!isNaN(name.charAt(0)))
window.alert("sname you entered is invalid")
else
document.write("sname you have entered is : "+name);
}
Web Technologies III B.Tech II Sem (R15)
</script>
</HEAD>
<BODY>
<form name="student">
Enter Student name:
<input type="text" name="sname"id="snameid" value="enter" onblur="disp( )">
</form>
</BODY>
</HTML>
O/P: -
Enter Student name:
Popup boxes: - popup (arises) box is a small window that always shown before opening the page.
The purpose of popup box is to write message, accept some thing from user. Java script provides 3
types of popup boxes. They are 1) alert 2) Confirm. 3) Prompt.
O/P: -
Result is: 60
Web Technologies III B.Tech II Sem (R15)
O/P: -
to see the o/p in pop up box:
result is :5
3) Prompt popup box:- It is useful to accept data from keyboard at runtime. Prompt box is created
by prompt method of window object.
window.prompt (“message”, “default text”);
When prompt dialog box arises user will have to click either ok button or cancel button after
entering input data to proceed. If user click ok button it will return input value. If user click cancel
button the value ―null‖ will be returned.
Ex: -
<HTML> {
<HEAD> a=a*i
<TITLE> Prompt </TITLE> }
<script> window.alert("factorial value :"+a)
function fact( ) }
{ </script>
var b=window.prompt("enter +ve integer </HEAD>
:","enter here") <BODY onload="fact( )">
var c=parseInt(b) </BODY>
a=1 </HTML>
for(i=c;i>=1;i--)
O/P: -
Web Technologies III B.Tech II Sem (R15)
FORM VALIDATION:
When we create forms, providing form validation is useful to ensure that your customers enter valid and
complete data. For example, you may want to ensure that someone inserts a valid e-mail address into a text
box, or perhaps you want to ensure that someone fills in certain fields.
We can provide custom validation for your forms in two ways: server-side validation and client-side validation.
SERVER-SIDE VALIDATION
In the server-side validation, information is being sent to the server and validated using one of server-side
languages. If the validation fails, the response is then sent back to the client, page that contains the web form
is refreshed and a feedback is shown. This method is secure because it will work even if JavaScript is turned
off in the browser and it can‘t be easily bypassed by malicious users. On the other hand, users will have to
fill in the information without getting a response until they submit the form. This results in a slow response
from the server.
The exception is validation using Ajax. Ajax calls to the server can validate as you type and provide
immediate feedback. Validation in this context refers to validating rules such as username availability.
Server side validation is performed by a web server, after input has been sent to the server.
CLIENT-SIDE VALIDATION
Server-side validation is enough to have a successful and secure form validation. For better user experience,
however, you might consider using client-side validation. This type of validation is done on the client using
script languages such as JavaScript. By using script languages user‘s input can be validated as they type.
This means a more responsive, visually rich validation.
With client-side validation, form never gets submitted if validation fails. Validation is being handled in
JavaScript methods that you create (or within frameworks/plugins) and users get immediate feedback if
validation fails.
Main drawback of client-side validation is that it relies on JavaScript. If users turn JavaScript off, they can
easily bypass the validation. This is why validation should always be implemented on both the client and
server. By combining server-side and client-side methods we can get the best of the two: fast response, more
secure validation and better user experience.
Client side validation is performed by a web browser, before input is sent to a web server.
Validation can be defined by many different methods, and deployed in many different ways.
Simple Example:
<html>
<head>
<title>Form Validation</title>
<script type="text/javascript">
Web Technologies III B.Tech II Sem (R15)
<!--
// Form validation code will come here.
function validate()
{
var n = document.myForm.Name.value;
if( n == "" || (!isNaN(parseInt(n))) || n.length < 3 || n.length >= 8)
{
alert( "Please enter valid name and minimum length 3 characters and maximum length 8
characters !" );
document.myForm.Name.focus();
return false;
}
var z = document.myForm.Zip.value;
if(z == "" ||isNaN(z) || z.length != 6 )
{
alert( "Please provide a zip in the format #####." );
document.myForm.Zip.focus() ;
return false;
}
var c = document.myForm.Country.value;
if( c == "-1" )
{
Web Technologies III B.Tech II Sem (R15)
//-->
</script>
</head>
<body bgcolor="bisque">
<h1><p align="center"> <b>Application Form Validation Using JavaScript</b></p></h1>
<form action="reg.html" name="myForm" onsubmit="return(validate());">
<table cellspacing="5" cellpadding="5" align="center" border="5" width="438">
<tr>
<td align="right"><b>Name</b></td>
<td><input type="text" name="Name" size="50" /></td>
</tr>
<tr>
<td align="right"><b>EMail</b></td>
<td><input type="text" name="EMail" size="50" /></td>
</tr>
<tr>
<td align="right"><b>Zip Code</b></td>
<td><input type="text" name="Zip" size="50" /></td>
</tr>
<tr>
<td align="right" ><b>Country</b></td>
<td>
<select name="Country">
<option value="-1" selected>[choose yours]</option>
<option value="1">INDIA</option>
<option value="2">UK</option>
<option value="3">USA</option>
</select>
</td>
</tr>
<tr>
<td align="right"></td>
<td><input type="submit" value="Submit" /></td>
</tr>
</font> </table> </form> </body> </html>
Web Technologies III B.Tech II Sem (R15)
Output:
Web Technologies III B.Tech II Sem (R15)
UNIT – II
TOPICS:
Introduction to PHP Introduction to XML
Declaring Variables Basic XML document
Data Types Presenting XML
Operators Document Type Definition(DTD)
Control Structures XML Schemas
Functions Document Object Model(DOM)
Reading data from WEB form controls Introduction to XHTML
like text boxes, radio buttons, lists etc.. Using XML Processors: DOM and SAX
Handling File Uploads
Handling Sessions and Cookies
PHP INTRODUCTION
PHP started out as a small open source project that evolved as more and more people found out
how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back in 1994.
Characteristics of PHP:
Simplicity
Efficiency
Security
Flexibility
Familiarity
All PHP code must be included inside one of the three special markup tags are recognized by the
PHP Parser.
Variable Naming
Rules for naming a variable is-
Variable names must begin with a letter or underscore character.
A variable name can consist of numbers, letters, underscores but you cannot use characters like
+ , - , % , ( , ) . & , etc
There is no size limit for variables.
PHP - Data Types:
PHP has a total of eight data types which we use to construct our variables:
Integers: are whole numbers, without a decimal point, like 4195.
Doubles: are floating-point numbers, like 3.14159 or 49.1. Scalar types
Booleans: have only two possible values either true or false.
Strings: are sequences of characters, like 'PHP supports string operations.'
Arrays: are named and indexed collections of other values.
Objects: are instances of programmer-defined classes. Compound types
NULL: is a special type that only has one value: NULL.
Resources: are special variables that hold references to resources external Special types
to PHP (such as database connections).
The first four are simple types, and the next two (arrays and objects) are compound - the compound
types can package up other arbitrary values of arbitrary type, whereas the simple types cannot.
PHP Integers
Integers are primitive data types. They are whole numbers, without a decimal point, like 4195.
They are the simplest type. They correspond to simple whole numbers, both positive and negative
{..., -2, -1, 0, 1, 2, ...}.
Integer can be in decimal (base 10), octal (base 8), and hexadecimal (base 16) format. Decimal
format is the default, octal integers are specified with a leading 0, and hexadecimals have a
leading 0x.
Ex: $v = 12345;
$var1 = -12345 + 12345;
notation.php
<?php
$var1 = 31; $var2 = 031; $var3 = 0x31;
echo "$var1\n$var2\n$var3"; ?>
Output:
31
25
49
The default notation is the decimal. The script shows these three numbers in decimal. In Java and
C, if an integer value is bigger than the maximum value allowed, integer overflow happens. PHP
works differently. In PHP, the integer becomes a float number. Floating point numbers have greater
boundaries. In 32bit system, an integer value size is four bytes. The maximum integer value is
2147483647.
Web Technologies III B.Tech II Sem (R15)
boundary.php
<?php
$var = PHP_INT_MAX;
echo var_dump($var);
$var++;
echo var_dump($var);
?>
We assign a maximum integer value to the $var variable. We increase the variable by one. And
we compare the contents.
Output:
int(2147483647)
float(2147483648)
As we have mentioned previously, internally, the number becomes a floating point value.
var_dump(): The PHP var_dump() function returns the data type and value.
PHP Doubles or Floating point numbers
Floating point numbers represent real numbers in computing. Real numbers measure continuous
quantities like weight, height or speed. Floating point numbers in PHP can be larger than integers
and they can have a decimal point. The size of a float is platform dependent.
We can use various syntaxes to create floating point values.
<?php The $d variable is assigned a large number,
$a = 1.245; so it is automatically converted to float type.
$b = 1.2e3;
Output:
$c = 2E-10;
float(1.245)
$d = 1264275425335735;
float(1200)
var_dump($a);
float(2.0E-10)
var_dump($b);
float(1264275425340000)
var_dump($c); This is the output of beside script
var_dump($d);
?>
PHP Boolean
A Boolean represents two possible states: TRUE or FALSE.
$x = true; $y = false;
Booleans are often used in conditional testing.
<?php
$male = False;
$r = rand(0, 1);
$male = $r ? True: False;
if ($male) {
echo "We will use name John\n";
} else {
echo "We will use name Victoria\n";
} ?>
Web Technologies III B.Tech II Sem (R15)
The script uses a random integer generator to simulate our case. $r = rand(0, 1);
The rand( ) function returns a random number from the given integer boundaries 0 or 1.
$male = $r? True: False;
We use the ternary operator to set a $male variable. The variable is based on the random $r
value. If $r equals to 1, the $male variable is set to True. If $r equals to 0, the $male variable is
set to False.
PHP Strings
String is a data type representing textual data in computer programs. Probably the single most
important data type in programming.
<?php
$a = "PHP ";
$b = 'PERL';
echo $a . $b; ?>
Output: PHP PERL
We can use single quotes and double quotes to create string literals.
The script outputs two strings to the console. The \n is a special sequence, a new line.
The escape-sequence replacements are −
\n is replaced by the newline character
\r is replaced by the carriage-return character
\t is replaced by the tab character
\$ is replaced by the dollar sign itself ($)
\" is replaced by a single double-quote (")
\\ is replaced by a single backslash (\)
The Concatenation Operator
There is only one string operator in PHP.
The concatenation operator ( . ) is used to put two string values together. To concatenate two
string variables together, use the concatenation operator:
<?php
$txt1="Hello Kalpana!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?> O/P: Hello Kalpana! What a nice day!
Search for a Specific Text within a String
The PHP strpos() function searches for a specific text within a string. If a match is found, the
function returns the character position of the first match. If no match is found, it will return
FALSE. The example below searches for the text "world" in the string "Hello world!":
Example
<?php
echo strpos("Hello world!", "world");
?> output: 6
Tip: The first character position in a string is 0 (not 1).
Replace Text within a String
The PHP str_replace() function replaces some characters with some other characters in a
string. The example below replaces the text "world" with "Dolly":
Web Technologies III B.Tech II Sem (R15)
Example
<?php
echo str_replace("world", "Kalpana", "Hello world!");
?> Output: Hello Kalpana!
The strlen() function:
The strlen() function is used to return the length of a string. Let's find the length of a string:
Eg: <?php
echo strlen("Hello world!"); ?> The output of the code above will be: 12
PHP Array
Array is a complex data type which handles a collection of elements. Each of the elements can
be accessed by an index. An array stores multiple values in one single variable. In the following
example $cars is an array. The PHP var_dump() function returns the data type and value:
Example
<?php
$cars = array("Volvo","BMW","Toyota");
print_r($cars);
var_dump($cars);
?>
The array keyword is used to create a collection of elements. In our case we have names.
The print_r function prints human readable information about a variable to the console.
O/P: Array ( [0] => Volvo [1] => BMW [2] => Toyota )
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" }
PHP Object
An object is a data type which stores data and information on how to process that data. In PHP,
an object must be explicitly declared. First we must declare a class of object. For this, we use
the class keyword. A class is a structure that can contain properties and methods:
Example
<?php
class Car {
function Car() {
$this->model = "VW";
} }
$herbie = new Car(); // create an object
echo $herbie->model; // show object properties
?>
Output: VW
PHP NULL
NULL is a special data type that only has one value: NULL. To give a variable the NULL
value, simply assign it like this −
Ex: $my_var = NULL;
The special constant NULL is capitalized by convention, but actually it is case insensitive;
you could just as well have typed −
$my_var = null;
A variable that has been assigned NULL has the following properties −
It evaluates to FALSE in a Boolean context.
It returns FALSE when tested with IsSet() function.
Web Technologies III B.Tech II Sem (R15)
<?php
define("MINSIZE", 50);
echo MINSIZE;
echo constant("MINSIZE"); // same thing as the previous line
?>
Output: 50 50
Only scalar data (boolean, integer, float and string) can be contained in constants.
PHP - Operators:
What is Operator?
Simple answer can be given using expression 4 + 5 is equal to 9. Here 4 and 5 are called
operands and + is called operator. PHP language supports following type of operators.
Arithmetic Operators:
There are following arithmetic operators supported by PHP language:
Assume variable A holds 10 and variable B holds 20 then:
Operator Description Example
+ Adds two operands $A + $B will give 30
- Subtracts second operand from the first $A - $B will give -10
* Multiply both operands $A *$B will give 200
/ Divide numerator by denumerator $B / $A will give 2
% Modulus Operator and remainder of after an integer $B % $A will give 0
division
** Exponentiation ($x to the $y'th power) $A ** $B
Web Technologies III B.Tech II Sem (R15)
Increment/Decrement operators
Operator Description Example
++ Increment operator, increases integer value by one $A++ - 11 / ++$A
-- Decrement operator, decreases integer value by one $A-- will give 9 / --$A
Comparison Operators:
There are following comparison operators supported by PHP language Assume variable A
holds 10 and variable B holds 20 then:
Operator Description Example
== Checks if the value of two operands are equal or not ($A==$B) is not true.
=== Identical(Returns true if $A is equal to $B, and they $A === $B
are of the same type)
!= Checks if the values of two operands are equal or not, ($A != $B) is true.
if values are not equal then condition becomes true.
<> Returns true if $x is not equal to $y $A <> $B
!== Not identical (Returns true if $A is not equal to $B, or $A !== $B
they are not of the same type)
> Checks if the value of left operand is greater than the ($A > $B) is not true.
value of right operand, if yes then condition becomes
true.
< Checks if the value of left operand is less (A < B) is
true. Than the value of right operand, if yes then
condition becomes true.
>= Checks if the value of left operand is greater than or ($A >= $B) is not true.
equal to the value of right operand, if yes then returns
true.
<= Checks if the value of left operand is less than or equal ($A <= $B) is true.
to the value of right operand, if yes then condition
becomes true.
Logical Operators:
There are following logical operators supported by PHP language
Assume variable A holds 10 and variable B holds 20 then:
Operator Description Example
and (or) Called Logical AND operator. If both the operands ($A and $B) is true.
&& are true then then condition becomes true. ($A && $B) is true.
or (or) || Called Logical OR Operator. If any of the two ($A or $B) is true.
operands are non zero then then condition becomes ($A || $B) is true.
true.
! Called Logical NOT Operator. Use to reverses the !( $A && $B) is false.
logical state of its operand. If a condition is true
then Logical NOT operator will make false.
Assignment Operators:
There are following assignment operators supported by PHP language:
Operator Description Example
= Simple assignment operator, Assigns values from right $C = $A + $B
side operands to left side operand
Web Technologies III B.Tech II Sem (R15)
Page | 46
Web Technologies III B.Tech II Sem (R15)
$num = 50;
while( $i < 10)
{
$num--;
$i++;
}
echo ("Loop stopped at i = $i and num = $num" );
?> </body> </html>
This will produce the following result –
Loop stopped at i = 10 and num = 40
The do...while loopstatement
The do...while statement will execute a block of code at least once. It then will repeat the
loop as long as a condition is true.
Syntax
do
{
code to be executed;
}while (condition);
Example
The following example will increment the value of i at least once, and it will continue
incrementing the variable i as long as it has a value of less than 10 −
<html> }while( $i < 10 );
<body> echo ("Loop stopped at i = $i" );
<?php ?>
$i = 0; $num = 0; </body>
do{ </html>
$i++;
O/P: Loop stopped at i = 10
PHP – Functions
PHP functions are similar to other programming languages. A function is a piece of code
which takes one more input in the form of parameter and does some processing and returns a
value. You already have seen many functions like fopen() and fread() etc. They are built- in
functions but PHP gives you option to create your own functions as well.
There are two parts which should be clear to you –
Creating a PHP Function
Calling a PHP Function
Web Technologies III B.Tech II Sem (R15)
In fact you hardly need to create your own PHP function because there are already more than
1000 of built- in library functions created for different area and you just need to call them
according to your requirement.
Creating PHP Function
It‘s very easy to create your own PHP function. Suppose you want to create a PHP function
which will simply write a simple message on your browser when you will call it. Following
example creates a function called writeMessage() and then calls it just after creating it.
<html>
<head> <title>Writing PHP Function with Parameters</title> </head>
<body>
<?php
function addFunction($num1, $num2)
{
$sum = $num1 + $num2;
echo "Sum of the two numbers is : $sum";
}
addFunction(10, 20);
?> </body> </html>
Output: Sum of the two numbers is : 30
<html>
<head>
<title>Passing Argument by Reference</title>
</head>
<body>
<?php
function addFive($num)
{
Web Technologies III B.Tech II Sem (R15)
$num += 5;
}
function addSix(&$num)
{
$num += 6;
}
$orignum = 10;
addFive( $orignum );
echo "O riginal Value is $orignum<br />";
addSix( $orignum );
echo "O riginal Value is $orignum<br />";
?>
</body>
</html>
Output: Original Value is 10
Original Value is 16
PHP Functions returning value
A function can return a value using the return statement in conjunction with a value or object.
return stops the execution of the function and sends the value back to the calling code. You
can return more than one value from a function using return array(1,2,3,4).
<html> <head> <title>Writing PHP Function which returns value</title> </head>
<body>
<?php
function addFunction($num1, $num2)
{
$sum = $num1 + $num2;
return $sum;
}
$return_value = addFunction(10, 20);
echo "Returned value from the function : $return_value";
?> </body> </html>
Output: Returned value from the function : 30
Setting Default Values for Function Parameters
You can set a parameter to have a default value if the function's caller doesn't pass it.
Following function prints NULL in case use does not pass any value to this function.
<html> <head> <title>Writing PHP Function which returns value</title> </head>
<body>
<?php
function printMe($param = NULL)
{
print $param;
}
printMe("This is test");
printMe();
?>
</body> </html>
Output: This is test
Web Technologies III B.Tech II Sem (R15)
<html> <html>
<head> <head>
<title>Dynamic Function Calls</title> <title>Dynamic Function Calls</title>
</head> </head>
<body> <body>
<?php <?php
function sayHello() function add($x,$y)
{ {
echo "Hello<br />"; echo "addition=" . ($x+$y);
} }
$function_holder = "sayHello"; $function_holder = "add";
$function_holder(); $function_holder(20,30);
?> </body> </html> ?> </body> </html>
Output: Hello
Output: addition=50
PHP Default Argument Value
The following example shows how to use a default parameter. If we call the function
setHeight() without arguments it takes the default value as argument:
Example
<?php
function setHeight($minheight = 50) {
echo "The height is : $minheight \t";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
O/P: 350 50 135 80
<?php
if( $_POST["name"] || $_POST["age"] )
{
if (preg_match("/[^A- Za-z'-]/",$_POST['name'] ))
{
die ("invalid name and name should be alpha"); }
echo "Welcome ". $_POST['name']. "<br />";
Web Technologies III B.Tech II Sem (R15)
The PHP default variable $_PHP_SELF is used for the PHP script name and when you click
"submit" button then same PHP script will be called and will produce following result
The method = "POST" is used to post user data to the server script.
PHP Forms and User Input:
The PHP $_GET and $_POST variables are used to retrieve information from forms, like
user input.
PHP - GET & POST Methods
There are two ways the browser client can send information to the web server.
The GET Method
The POST Method
Before the browser sends the information, it encodes it using a scheme called URL encoding
or URL Parameters. In this scheme, name/value pairs are joined with equal signs and
different pairs are separated by the ampersand.
name1=value1&name2=value2&name3=value3
The GET method produces a long string that appears in your server logs, in the browser's
Location: box.
The GET method is restricted to send upto 1024 characters only.
Never use GET method if you have password or other sensitive information to be sent to
the server.
GET can't be used to send binary data, like images or word documents, to the server.
The PHP provides $_GET associative array to access all the sent information using GET
method.
<?php
if( $_GET["name"] || $_GET["age"] )
{
echo "Welcome ". $_GET['name']. "<br />";
echo "You are ". $_GET['age']. " years old.";
exit();
}
?> <html> <body>
Web Technologies III B.Tech II Sem (R15)
PHP -Cookies
Cookies are text files stored on the client computer and they are kept of use tracking purpose.
PHP transparently supports HTTP cookies.
There are three steps involved in identifying returning users −
Server script sends a set of cookies to the browser. For example name, age, or
identification number etc.
Browser stores this information on local machine for future use.
When next time browser sends any request to web server then it sends those cookies
information to the server and server uses that information to identify the user.
Setting Cookies with PHP
PHP provided setcookie() function to set a cookie. This function requires upto six arguments
and should be called before <html> tag. For each cookie this function has to be called
separately.
<html>
<head> <title>Accessing Cookies with PHP</title> </head>
<body>
<?php
echo $_COOKIE["name"]. "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["name"]. "<br />";
echo $_COOKIE["age"] . "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["name"] . "<br />";
?>
</body> </html>
PHP - Session
When you work with an application, you open it, do some changes, and then you close it. This
is much like a Session.
Session ID is stored as a cookie on the client box or passed along through URL's.
The values are actually stored at the server and are accessed via the session id from your
cookie. On the client side the session ID expires when connection is broken.
Session variables solve this problem by storing user information to be used across multiple
pages (e.g. username, favorite color, etc). By default, session variables last until the user closes
the browser.
Session variable values are stored in the 'superglobal' associative array '$_SESSION'
Web Technologies III B.Tech II Sem (R15)
Write a Program to create simple Login and Logout example using sessions.
login.php
<html>
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login Form</h2>
<form method="post" action="checklogin.php">
User Id: <input type="text" name="uid"><br>
Web Technologies III B.Tech II Sem (R15)
XML - XML stands for Extensible Mark-up Language, developed by W3C in 1996. It is a
text-based mark-up language derived from Standard Generalized Mark-up Language (SGML).
XML 1.0 was officially adopted as a W3C recommendation in 1998. XML was designed to
carry data, not to display data. XML is designed to be self-descriptive. XML is a subset of SGML
that can define your own tags. A Meta Language and tags describe the content. XML Supports
CSS, XSL, DOM. XML does not qualify to be a programming language as it does not performs
any computation or algorithms. It is usually stored in a simple text file and is processed by
special software that is capable of interpreting XML.
The Difference between XML and HTML
1. HTML is about displaying information, where asXML is about carrying information. In
other words, XML was created to structure, store, and transport information. HTML was
designed to display the data.
2. Using XML, we can create own tags where as in HTML it is not possible instead it offers
several built in tags.
3. XML is platform independent neutral and language independent.
4. XML tags and attribute names are case-sensitive where as in HTML it is not.
5. XML attribute values must be single or double quoted where as in HTML it is not
compulsory.
6. XML elements must be properly nested.
7. All XML elements must have a closing tag.
Well Formed XML Documents
A "Well Formed" XML document must have the following correct XML syntax:
- XML documents must have a root element
- XML elements must have a closing tag(start tag must have matching end tag).
- XML tags are case sensitive
- XML elements must be properly nested Ex:<one><two>Hello</two></one>
- XML attribute values must be quoted
XML with correct syntax is "Well Formed" XML. XML validated against a DTD is "Valid"
XML.
What is Markup?
XML is a markup language that defines set of rules for encoding documents in a format that
is both human-readable and machine-readable.
Example for XML Document
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!—xml declaration-->
<note>
<to>MRCET</to>
<from>MRGI</from>
<heading>KALPANA</heading>
<body>Hello, world! </body>
</note>
Xml document begins with XML declaration statement: <? xml version="1.0"
encoding="ISO-8859-1"?> .
The next line describes the root element of the document: <note>.
Web Technologies III B.Tech II Sem (R15)
2. Tags
Tags are used to markup elements. A starting tag like <element_name> mark up the beginning
of an element, and an ending tag like </element_name> mark up the end of an element.
Examples:
A body element: <body>body text in between</body>.
A message element: <message>some message in between</message>
3. Attribute: The attributes are generally used to specify the values of the element. These are
specified within the double quotes. Ex: <flag type=‖true‖>
4. Entities
Entities as variables used to define common text. Entity references are references to entities.
Most of you will known the HTML entity reference: " " that is used to insert an extra
space in an HTML document. Entities are expanded when a document is parsed by an XML
parser.
The following entities are predefined in XML:
< (<), >(>), &(&), "(") and '(').
5. CDATA: It stands for character data. CDATA is text that will NOT be parsed by a parser.
Tags inside the text will NOT be treated as markup and entities will not be expanded.
6. PCDATA: It stands for Parsed Character Data(i.e., text). Any parsed character data should
not contain the markup characters. The markup characters are < or > or &. If we want to use
these characters then make use of < , > or &. Think of character data as the text found
between the start tag and the end tag of an XML element. PCDATA is text that will be parsed
by a parser. Tags inside the text will be treated as markup and entities will be expanded.
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
Where PCDATA refers parsed character data. In the above xml document the elements to, from,
heading, body carries some text, so that, these elements are declared to carry text in DTD file.
This definition file is stored with .dtd extension.
DTD identifier is an identifier for the document type definition, which may be the path to a file
on the system or URL to a file on the internet. If the DTD is pointing to external path, it is
called External Subset.
The square brackets [ ] enclose an optional list of entity declarations called Internal Subset.
Web Technologies III B.Tech II Sem (R15)
Types of DTD:
1. Internal DTD
2. External DTD
1. Internal DTD
A DTD is referred to as an internal DTD if elements are declared within the XML files. To
refer it as internal DTD, standalone attribute in XML declaration must be set to yes. This
means, the declaration works independent of external source.
Syntax:
The syntax of internal DTD is as shown:
<!DOCTYPE root-element [element-declarations]>
Where root-element is the name of root element and element-declarations is where you declare
the elements.
Example:
Following is a simple example of internal DTD:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
<address>
<name>Kalpana</name>
<company>MRCET</company>
<phone>(040) 123-4567</phone>
</address>
Let us go through the above code:
Start Declaration- Begin the XML declaration with following statement <?xml version="1.0"
encoding="UTF-8" standalone="yes" ?>
DTD- Immediately after the XML header, the document type declaration follows, commonly
referred to as the DOCTYPE:
<!DOCTYPE address [
The DOCTYPE declaration has an exclamation mark (!) at the start of the element name. The
DOCTYPE informs the parser that a DTD is associated with this XML document.
DTD Body- The DOCTYPE declaration is followed by body of the DTD, where you declare
elements, attributes, entities, and notations:
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>
Several elements are declared here that make up the vocabulary of the <name> document.
<!ELEMENT name (#PCDATA)> defines the element name to be of type "#PCDATA". Here
#PCDATA means parse-able text data. End Declaration - Finally, the declaration section of
the DTD is closed using a closing bracket and a closing angle bracket (]>). This effectively ends
the definition, and thereafter, the XML document follows immediately.
Web Technologies III B.Tech II Sem (R15)
Rules
✓ The document type declaration must appear at the start of the document (preceded only by
the XML header) — it is not permitted anywhere else within the document.
✓ Similar to the DOCTYPE declaration, the element declarations must start with an
exclamation mark.
✓ The Name in the document type declaration must match the element type of the root
element.
External DTD
In external DTD elements are declared outside the XML file. They are accessed by specifying
the system attributes which may be either the legal .dtd file or a va lid URL. To refer it as external
DTD, standalone attribute in the XML declaration must be set as no. This means, declaration
includes information from the external source.
Syntax Following is the syntax for external DTD:
<!DOCTYPE root-element SYSTEM "file-name">
where file- name is the file with .dtd extension.
Example The following example shows external DTD usage:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<name>Kalpana</name>
<company>MRCET</company>
<phone>(040) 123-4567</phone>
</address>
The content of the DTD file address.dtd are as shown:
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
Types
You can refer to an external DTD by using either system identifiers or public identifiers.
SYSTEM IDENTIFIERS
A system identifier enables you to specify the location of an external file containing DTD
declarations. Syntax is as follows:
<!DOCTYPE name SYSTEM "address.dtd" [...]>
As you can see, it contains keyword SYSTEM and a URI reference pointing to the location of
the document.
PUBLIC IDENTIFIERS
Public identifiers provide a mechanism to locate DTD resources and are written as below:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
As you can see, it begins with keyword PUBLIC, followed by a specialized identifier. Public
identifiers are used to identify an entry in a catalog. Public identifiers can follow any format;
however, a commonly used format is called Formal Public Identifiers, or FPIs.
Web Technologies III B.Tech II Sem (R15)
XML Schemas
XML Schema is commonly known as XML Schema Definition (XSD). It is used to describe
and validate the structure and the content of XML data. XML schema defines the elements,
attributes and data types. Schema element supports Namespaces. It is similar to a database
schema that describ es the data in a database. XSD extension is “.xsd”.
This can be used as an alternative to XML DTD. The XML schema became the W#C
recommendation in 2001.
XML schema defines elements, attributes, element having child elements, order of child
elements. It also defines fixed and default values of elements and attributes.
XML schema also allows the developer to us data types.
Strengths of Schema:
XML schemas provide much greater specificity than DTDs.
They supports large number of built- in-data types.
They are namespace-aware.
They are extensible to future additions.
They support the uniqueness.
It is easier to define data facets (restrictions on data).
SCHEMA STRUCTURE
The Schema Element
<xs: schema xmlns: xs="http://www.w3.org/2001/XMLSchema">
Element definitions
As we saw in the chapter XML - Elements, elements are the building blocks of XML
document. An element can be defined within an XSD as follows:
<xs:element name="x" type="y"/>
Data types:
These can be used to specify the type of data stored in an Element.
String (xs:string)
Date (xs:date or xs:time)
Numeric (xs:integer or xs:decimal)
Boolean (xs:boolean)
EX: Sample.xsd
<?xml version=‖1.0‖ encoading=‖UTF-8‖?>
<xs:schema xmlns:xs=http://www.w3.org/XMLSchema>
<xs:element name="sname‖ type=‖xs:string"/>
/* <xs:element name="dob” type=”xs:date"/>
<xs:element name="dobtime” type=”xs:time"/>
<xs:element name="marks” type=”xs:integer"/>
<xs:element name="avg” type=”xs:decimal"/>
<xs:element name="flag” type=”xs:boolean"/> */
</xs:schema>
Sample.xml:
<?xml version=‖1.0‖ encoading=‖UTF-8‖?>
<sname xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="sample.xsd">
Kalpana /*yyyy-mm-dd 23:14:34 600 92.5 true/false */
</sname>
Definition Types
You can define XML schema elements in following ways:
Simple Type - Simple type element is used only in the context of the text. Some of
predefined simple types are: xs:integer, xs:boolean, xs:string, xs:date. For example:
<xs:element name="phone_number" type="xs:int" />
<phone>9876543210</phone>
Web Technologies III B.Tech II Sem (R15)
Complex Type - A complex type is a container for other element definitions. This allows you
to specify which child elements an element can contain and to provide some structure within
your XML documents. For example:
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
In the above example, Address element consists of child elements. This is a container for other
<xs:element> definitions, that allows to build a simple hierarchy of elements in the XML
document.
Global Types - With global type, you can define a single type in your document, which can
be used by all other references. For example, suppose you want to generalize the person and
company for different addresses of the company. In such case, you can define a general type
as below:
<xs:element name="AddressType">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
Now let us use this type in our example as below:
<xs:element name="Address1">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="AddressType " />
<xs:element name="phone1" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Address2">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="AddressType " />
<xs:element name="phone2" type="xs:int" />
</xs:sequence> </xs:complexType> </xs:element>
Web Technologies III B.Tech II Sem (R15)
Instead of having to define the name and the company twice (once for Address1 and once for
Address2), we now have a single definition. This makes maintenance simpler, i.e., if you decide
to add "Postcode" elements to the address, you need to add them at just one place.
Attributes
Simple elements cannot have attributes. If an element has attributes, it is considered to be of a
complex type. But the attribute itself is always declared as a simple type. Attributes in XSD
provide extra information within an element. Attributes have name and type property as shown
below:
<xs:attribute name="x" type="y"/>
Ex: <lastname lang="EN ">Smith</lastname>
<xs:attribute name="lang" type="xs:string"/>
Default and Fixed Values for Attributes
<xs:attribute name="lang" type="xs:string" default="EN"/>
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Optional and Required Attributes
Attributes are optional by default. To specify that the attribute is required, use the "use"
attribute:
<xs:attribute name="lang" type="xs:string" use="required"/>
Restrictions on Content
When an XML element or attribute has a data type defined, it puts restrictions on the element's
or attribute's content. If an XML element is of type "xs:date" and contains a string like "Hello
World", the element will not validate.
Restrictions on Values:
The value of age cannot be lower than 0 or greater than 120:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType> </xs:element>
Restrictions on a Set of Values
The example below defines an element called "car" with a restriction. The only acceptable
values are: Audi, Golf, BMW:
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Web Technologies III B.Tech II Sem (R15)
Restrictions on Length
To limit the length of a value in an element, we would use the length, maxLength, and
minLength constraints. The value must be exactly eight characters:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/> [<xs:minLength value="5"/> <xs:maxLength value="8"/>]
</xs:restriction> </xs:simpleType> </xs:element>
XSD Indicators
We can control HOW elements are to be used in documents with indicators.
Indicators: There are seven indicators
Order indicators:
All
Choice
Sequence
Occurrence indicators:
maxOccurs
minOccurs
Group indicators:
Group name
attributeGroup name
→Order Indicators
Order indicators are used to define the order of the elements.
All Indicator
The <all> indicator specifies that the child elements can appear in any order, and that each
child element must occur only once:
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
Note: When using the <all> indicator you can set the <minOccurs> indicator to 0 or 1 and the
<maxOccurs> indicator can only be set to 1 (the <minOccurs> and <maxOccurs> are
described later).
Choice Indicator
The <choice> indicator specifies that either one child element or another can occur:
<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice> </xs:complexType> </xs:element>
Web Technologies III B.Tech II Sem (R15)
Sequence Indicator
The <sequence> indicator specifies that the child elements must appear in a specific order:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence> </xs:complexType> </xs:element>
→Occurrence Indicators
Occurrence indicators are used to define how often an element can occur.
Note: For all "Order" and "Group" indicators (any, all, choice, sequence, group name, and group
reference) the default value for maxOccurs and minOccurs is 1.
maxOccurs Indicator
The <maxOccurs> indicator specifies the maximum number of times an element can occur:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>
minOccurs Indicator
The <minOccurs> indicator specifies the minimum number of times an element can occur:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Tip: To allow an element to appear an unlimited number of times, use the
maxOccurs="unbounded" statement:
EX: An XML file called "Myfamily.xml":
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"
xsi:noNamespaceSchemaLocation= "family.xsd">
<person>
<full_name>KALPANA</full_name>
<child_name>mrcet</child_name>
</person>
<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
Web Technologies III B.Tech II Sem (R15)
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>
<person>
<full_name>Stale Refsnes</full_name>
</person>
</persons>
The XML file above contains a root element named "persons". Inside this root element we
have defined three "person" elements. Each "person" element must contain a "full_name"
element and it can contain up to five "child_name" elements.
Here is the schema file "family.xsd":
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
elementFormDefault="qualified">
<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
→Group Indicators: Group indicators are used to define related sets of elements.
Element Groups
Element groups are defined with the group declaration, like this:
<xs:group name="groupname">
...
</xs:group>
You must define an all, choice, or sequence element inside the group declaration. The following
example defines a group named "persongroup", that defines a group of elements that must occur
in an exact sequence:
<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
Web Technologies III B.Tech II Sem (R15)
After you have defined a group, you can reference it in another definition, like this:
<xs:element name="person" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Attribute Groups
Attribute groups are defined with the attributeGroup declaration, like this:
<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>
The following example defines an attribute group named "personattrgroup":
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
After you have defined an attribute group, you can reference it in another definition, like this:
<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/> </xs:complexType> </xs:element>
You can then manipulate the object model in any way that makes sense. This mechanism is
also known as the "random access" protocol, because you can visit any part of the data at any
time. You can then modify the data, remove it, or insert new data.
The XML DOM, on the other hand, also provides an API that allows a developer to add, edit,
move, or remove nodes in the tree at any point in order to create an application. A DOM parser
creates a tree structure in memory from the input document and then waits for requests from
client. A DOM parser always serves the client application with the entire document no matter
how much is actually needed by the client. With DOM parser, method calls in client
application have to be explicit and forms a kind of chained method calls.
Document Object Model is for defining the standard for accessing and manipulating XML
documents. XML DOM is used for
Web Technologies III B.Tech II Sem (R15)
parentNode
parentNode
parentNode
firstChild
firstChild
firstChild
firstChild
lastChild
lastChild
lastChild
lastChild
DOM or SAX
DOM
- Suitable for small documents
- Easily modify document
- Memory intensive;Load the complete XML document
SAX
- Suitable for large documents; saves significant amounts of memory
- Only traverse document once, start to end
- Event driven
- Limited standard functions.
-
Loading an XML file:one.html
<html> <body>
<script type=‖text/javascript‖>
try
{
xmlDocument=new ActiveXObject(―Microsoft.XMLDOM‖);
}
catch(e)
{
try {
xmlDocument=document.implementation.createDocument("","",null);
}
catch(e){alert(e.message)}
}
try
{
xmlDocument.async=false;
xmlDocument.load(―faculty.xml‖);
document.write(―XML document student is loaded‖);
}
catch(e){alert(e.message)}
</script>
</body> </html>
faculty.xml:
<?xml version=‖1.0‖?>
< faculty >
<eno>30</eno>
<personal_inf>
<name>Kalpana</name>
<address>Hyd</address>
<phone>9959967192</phone>
</personal_inf>
<dept>CSE</dept>
<col>MRCET</col>
<group>MRGI</group>
</faculty>
OUTPUT: XML document student is loaded
ActiveXObject: It creates empty xml document object.
Web Technologies III B.Tech II Sem (R15)
document.write(―<br>‖);
document.write(―ADDRESS:‖+
xmlDocument.getElementsByTagName(―address‖)[0].childNodes[0].nodeValue);
document.write(―<br>‖);
document.write(―PHONE:‖+
xmlDocument.getElementsByTagName(―phone‖)[0].childNodes[0].nodeValue);
document.write(―<br>‖);
document.write(―DEPARTMENT:‖+
xmlDocument.getElementsByTagName(―dept‖)[0].childNodes[0].nodeValue);
document.write(―<br>‖);
document.write(―COLLEGE:‖+
xmlDocument.getElementsByTagName(―col‖)[0].childNodes[0].nodeValue);
document.write(―<br>‖);
document.write(―GROUP:‖+
xmlDocument.getElementsByTagName(―group‖)[0].childNodes[0].nodeValue);
</script>
</body>
</html>
OUTPUT:
XML document faculty is loaded and content of this file is
ENO: 30
NAME: Kalpana
ADDRESS: Hyd
PHONE: 9959967192
DEPARTMENT: CSE
COLLEGE: MRCET
GROUP: MRGI
We can access any XML element using the index value: four.html
<html> <head>
<script type=‖text/javascript‖ src=‖my_function_file.js‖></script>
</head> <body>
<script type=‖text/javascript‖>
xmlDoc=My_function(“faculty1.xml”);
value=xmlDoc. getElementsByTagName(―name‖);
document.write(―value[0].childNodes[0].nodeValue‖);
</script></body></html>
OUTPUT: Kalpana
XHTML: eXtensible Hypertext Markup Language
Hypertext is simply a piece of text that works as a link. Markup language is a language of
writing layout information within documents. The XHTML recommended by W3C. Basically an
XHTML document is a plain text file and it is very much similar to HTML. It contains rich text,
means text with tags. The extension to this program should b either html or htm. These programs
can be opened in some web browsers and the corresponding web page can be viewed.
Web Technologies III B.Tech II Sem (R15)
HTML Vs XHTML
HTML XHTML
1. The HTML tags are case insensitive. 1. The XHTML tags are case sensitive.
EX: <BoDy> --------</body> EX: <body> -------- </body>
2. We can omit the closing tags sometimes. 2. For every tag there must be a closing tag.
EX: <h1>---------</h1> or <h1 ------------ />
3. The attribute values not always 3. The attribute values are must be quoted.
necessary to quote.
4. In HTML there are some implicit 4. In XHTML the attribute values must be
attribute values. specified explicitly.
5. In HTML even if we do not follow the 5. In XHTML the nesting rules must be
nesting rules strictly it does not cause much strictly followed. These nesting rules are-
difference. - A form element cannot contain another form
element.
-an anchor element does not contain another
form element
-List element cannot be nested in the list
element
-If there are two nested elements then the inner
element must be enclosed first before closing
the outer element
-Text element cannot be directly nested in
form element
The relationship between SGML, XML, HTML and XHTML is as given below
<h1>MRCET</h1>
<h2>MRCET</h2>
<h3>MRCET</h3>
<h4> KALPANA </h4>
<h5> KALPANA </h5>
<h6>KALPANA</h6>
<p><center> XHTML syntax rules are specified by the file xhtml11.dtd file. </center></p>
<div align="right"> <b>XHTML standards for eXtensible Hypertext Markup Language.</b>
XHTML syntax rules are specified by the file xhtml11.dtd file.</div>
<pre> <b>XHTML standards for <i>eXtensible Hypertext Markup Language.</i></b>
XHTML syntax rules are specified by the file xhtml11.dtd file.</pre>
</basefont>
</body>
</html>
DOM in JAVA
DOM interfaces
The DOM defines several Java interfaces. Here are the most common interfaces:
Node - The base datatype of the DOM.
Element - The vast majority of the objects you'll deal with are Elements.
Attr Represents an attribute of an element.
Text The actual content of an Element or Attr.
Document Represents the entire XML document. A Document object is often
referred to as a DOM tree.
Common DOM methods
When you are working with the DOM, there are several methods you'll use often:
Document.getDocumentElement() - Returns the root element of the document.
Node.getFirstChild() - Returns the first child of a given Node.
Node.getLastChild() - Returns the last child of a given Node.
Node.getNextSibling() - These methods return the next sibling of a given Node.
Node.getPreviousSibling() - These methods return the previous sibling of a given
Node.
Node.getAttribute(attrName) - For a given Node, returns the attribute with the
requested name.
Steps to Using DOM
Following are the steps used while parsing a document using DOM Parser.
Import XML-related packages.
Create a DocumentBuilder
Create a Document from a file or stream
Extract the root element
Examine attributes
Examine sub-elements
Web Technologies III B.Tech II Sem (R15)
DOM
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
public class parsing_DOMDemo
{
public static void main(String[] args)
{
try
{
System.out.println(―enter the name of XML document‖);
BufferedReader input=new Bufferedreader(new InputStreamReader(System.in));
String file_name=input.readLine();
File fp=new File(file_name);
if(fp.exists())
{
try
{
DocumentBuilderFactory Factory_obj= DocumentBuilderFactory.newInstance();
DocumentBuilder builder=Factory_obj.newDocumentBuilder();
InputSource ip_src=new InputSource(file_name);
Document doc=builder.parse(ip_src);
System.out.println(―file_name+‖is well- formed.‖);
}
catch (Exception e)
{
System.out.println(file_name+‖is not well- formed.‖);
System.exit(1);
}}
else
{
System.out.println(―file not found:‖+file_name);
}}
catch(IOException ex)
{
ex.printStackTrace();
}
}}
SAX:
SAX (the Simple API for XML) is an event-based parser for xml documents. Unlike a DOM
parser, a SAX parser creates no parse tree. SAX is a streaming interface for XML, which means
that applications using SAX receive event notifications about the XML document being
processed an element, and attribute, at a time in sequential order starting at the top of the
document, and ending with the closing of the ROOT element.
Reads an XML document from top to bottom, recognizing the tokens that make up a
well- formed XML document
Web Technologies III B.Tech II Sem (R15)
Tokens are processed in the same order that they appear in the document
Reports the application program the nature of tokens that the parser has encountered
as they occur
The application program provides an "event" handler that must be registered with the
parser
As the tokens are identified, callback methods in the handler are invoked with the
relevant information
When to use?
You should use a SAX parser when:
You can process the XML document in a linear fashion from the top down
The document is not deeply nested
You are processing a very large XML document whose DOM tree would consume too
much memory.Typical DOM implementations use ten bytes of memory to represent
one byte of XML
The problem to be solved involves only part of the XML document
Data is available as soon as it is seen by the parser, so SAX works well for an XML
document that arrives over a stream
Disadvantages of SAX
We have no random access to an XML document since it is processed in a forward-
only manner
If you need to keep track of data the parser has seen or change the order of items, you
must write the code and store the data on your own
The data is broken into pieces and clients never have all the information as a whole
unless they create their own data structure
The kinds of events are:
The start of the document is encountered
The end of the document is encountered
The start tag of an element is encountered
The end tag of an element is encountered
Character data is encountered
A processing instruction is encountered
Scanning the XML file from start to end, each event invokes a corresponding callback method
that the programmer writes.
SAX packages
javax.xml.parsers: Describing the main classes needed for parsing
org.xml.sax: Describing few interfaces for parsing
SAX classes
SAXParser Defines the API that wraps an XMLReader implementation class
SAXParserFactory Defines a factory API that enables applications to configure and
obtain a SAX based parser to parse XML documents
ContentHandler Receive notification of the logical content of a document.
Web Technologies III B.Tech II Sem (R15)
try {
System.out.println(―enter the name of XML document‖);
BufferedReader input=new Bufferedreader(new InputStreamReader(System.in));
String file_name=input.readLine();
File fp=new File(file_name);
if(fp.exists())
{
try
{
XMLReader reader=XMLReaderFactory.createXMLReader();
reader.parse(file_name);
System.out.println(―file_name+‖is well- formed.‖);
}
catch (Exception e)
{
System.out.println(file_name+‖is not well- formed.‖);
System.exit(1);
}
}
else
{
System.out.println(―file not found:‖+file_name);
}
}
catch(IOException ex){ex.printStackTrace();}
}}
UNIT III
Web Servers:
Web servers are computers that deliver (serves up) Web pages. Every Web server has an IP
address and possibly a domain name. For example, if you enter the URL http://www.mrcet.com/index.html
in your browser, this sends a request to the Web server whose domain name is mrcet.com. The server
then fetches the page named index.html and sends it to your browser.
Any computer can be turned into a Web server by installing server software and connecting the machine
to the Internet. There are many Web server software applications, including public domain software and
commercial packages.
Name: JAVA_HOME
Value: install_dir/common/lib/servlet-api.jar
Turn on Servlet Reloading
The next step is to tell Tomcat to check the modification dates of the class files of requested
servlets and reload ones that have changed since they were loaded into the server's memory.
This slightly degrades performance in deployment situations, so is turned off by default.
However, if you fail to turn it on for your development server, you'll have to restart the server
every time you recompile a servlet that has already been loaded into the server's memory.
Web Technologies III B.Tech II Sem (R15)
Access the developed static web pages for books web site, using these servers by putting the
web pages developed in week-1 and week-2 in the document root.
Web Technologies III B.Tech II Sem (R15)
RESULT: These pages are accessed using the TOMCAT web server successfully.
INTRODUCTION TO SERVLETS
Servlets:
• Servlets are server side programs that run on a Web or Application server and act as a
middle layer between a requests coming from a Web browser and databases or
applications on the server.
• Using Servlets, you can collect input from users through web page forms, present records
from a database or another source, and create web pages dynamically.
• Servlets don‘t fork new process for each request, instead a new thread is created.
• Servlets are loaded and ready for each request.
• The same servlet can handle many requests simultaneously.
Web Container: It is web server that supports servlet execution. Individual Servlets
are registered with a container. Tomcat is a popular servlet and JSP container.
Web Technologies III B.Tech II Sem (R15)
Servlet Architecture:
Servlets Tasks:
Servlets perform the following major tasks:
Read the explicit data sent by the clients (browsers). This includes an HTML form on a
Web page or it could also come from an applet or a custom HTTP client program.
Read the implicit HTTP request data sent by the clients (browsers). This includes cookies,
media types and compression schemes the browser understands, and so forth.
Process the data and generate the results. This process may require talking to a database,
executing an RMI or CORBA call, invoking a Web service, or computing the response
directly.
Send the explicit data (i.e., the document) to the clients (browsers). This document can be
sent in a variety of formats, including text (HTML or XML), binary (GIF images), Excel,
etc.
Send the implicit HTTP response to the clients (browsers). This includes telling the browsers
or other clients what type of document is being returned (e.g., HTML), setting cookies and
caching parameters, and other such tasks.
Life Cycle
Web Technologies III B.Tech II Sem (R15)
Steps:
The sequence in which the Web container calls the life cycle methods of a servlet is:
1. The Web container loads the servlet class and creates one or more instances of the
servlet class.
2. The Web container invokes init() method of the servlet instance during initialization of
the servlet. The init() method is invoked only once in the servlet life cycle.
3. The Web container invokes the service() method to allow a servlet to process a client
request.
4. The service() method processes the request and returns the response back to the Web
container.
5. The servlet then waits to receive and process subsequent requests as explained in steps
3 and 4.
6. The Web container calls the destroy() method before removing the servlet instance
from the service. The destroy() method is also invoked only once in a servlet life cycle.
Each time the server receives a request for a servlet, the server spawns a new thread and
calls service.
The service() method checks the HTTP request type (GET, POST, PUT, DELETE, etc.)
and calls doGet, doPost, doPut, doDelete, etc. methods as appropriate.
publicvoid service(ServletRequest request,
ServletResponse response)
throwsServletException,IOException{
}
The doGet() Method
The doGet() method processes client request, which is sent by the client, using the
HTTP GET method.
To handle client requests that are received using GET method, we need to override the
doGet() method in the servlet class.
In the doGet() method, we can retrieve the client information of the
HttpServletRequest object. We can use the HttpServletResponse object to send the
response back to the client.
publicvoiddoGet(HttpServletRequest request,
HttpServletResponse response)
throwsServletException,IOException{
// Servlet code
}
The doPost() Method:
The doPost() method handles requests in a servlet, which is sent by the client, using the
HTTP POST method.
For example, if a client is entering registration data in an HTML form, the data can be sent
using the POST method.
Unlike the GET method, the POST request sends the data as part of the HTTP request body.
As a result, the data sent does not appear as a part of URL.
To handle requests in a servlet that is sent using the POST method, we need to override the
doPost() method. In the doPost() method, we can process the request and send the response
back to the client.
publicvoiddoPost(HttpServletRequest request,
HttpServletResponse response)
throwsServletException,IOException{
// Servlet code
}
The destroy() method :
The destroy() method is called only once at the end of the life cycle of a servlet.
This method gives your servlet a chance to close database connections, halt background
threads, write cookie lists or hit counts to disk, and perform other such cleanup activities.
After the destroy() method is called, the servlet object is marked for garbage collection.
publicvoid destroy()
{
// Finalization code...
}
Web Technologies III B.Tech II Sem (R15)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
5. Creating ServletDemoServlet
There are three different ways to create a servlet.
a. By implementing Servlet interface
b. By extending GenericServlet class
c. By extending HttpServlet class
6. Compile Servlet and save the class file in classes folder.
7. Create a Deployment Descriptor
- The deployment descriptor is an xml file, from which Web Container gets the
information about the servlet to be invoked.
- The web container uses the Parser to get the information from the web.xml file.
- Add a servlet entry and a servlet- mapping entry for each servlet for Tomcat to run.
Add entries after <web-app> tag inside web.xml
<web-app>
<servlet>
<servlet-name>Demo</servlet-name>
<servlet-class>DemoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
</web-app>
8. Start Tomcat server
9. Open browser and type http://localhost/MyApp/DemoServlet
Web Technologies III B.Tech II Sem (R15)
Servlet API
Servlet API consists of two important packages that encapsulates all the important classes
and interface, namely :
1. javax.servlet
2. javax.servlet.http
1. javax.servlet
Interfaces
1. Servlet – Declares life cycle methods for a servlet.
2. ServletConfig – To get initialization parameters
3. ServletContext- To log events and access information
4. ServletRequest- To read data from a client request
5. ServletResponse – To write data from client response
Classes
1. GenericServlet – Implements Servlet and ServletConfig
2. ServletInputStream – Provides an input stream for reading client requests.
3. ServletOutputStream - Provides an output stream for writing
responses to a client.
4. ServletException – Indicates servlet error occurred.
5. UnavailableException - Indicates servlet is unavailable
Servlet Interface
Method Description
public void init(ServletConfigconfig) initializes the servlet. It is the life cycle
method of servlet and invoked by the web
container only once.
public void provides response for the incoming request.
service(ServletRequestrequest,ServletResponse It is invoked at each request by the web
response) container.
public void destroy() is invoked only once and indicates that
servlet is being destroyed.
public ServletConfiggetServletConfig() returns the object of ServletConfig.
public String getServletInfo() returns information about servlet such as
writer, copyright, version etc.
import java.io.*;
import javax.servlet.*;
public class First implements Servlet{
ServletConfig config=null;
public void init(ServletConfig config){
this.config=config;
System.out.println("servlet is initialized");
}
public void service(ServletRequest req,ServletResponse res)
throws IOException,ServletException{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
out.print("<html><body>");
out.print("<b>hello KALPANA</b>");
out.print("</body></html>");
}
public void destroy(){
System.out.println("servlet is destroyed");
}
public ServletConfig getServletConfig(){
return config;
}
public String getServletInfo(){
return "copyright 2007-1010";
}
}
ServletConfig interface
• When the Web Container initializes a servlet, it creates a ServletConfig object for the
servlet.
• ServletConfig object is used to pass information to a servlet during initialization by getting
configuration information from we b.xml(Deployment Descriptor).
Web Technologies III B.Tech II Sem (R15)
Methods
• getInitParameter(String name): returns a String value initialized parameter
• getInitParameterNames(): returns the names of the servlet's initialization parameters as an
Enumeration of String objects
• getServletContext(): returns a reference to the ServletContext
• getServletName(): returns the name of the servlet instance
ServletContext Interface
• For every Web application a ServletContext object is created by the web container.
• ServletContext object is used to get configuration information from Deployment
Descriptor(web.xml) which will be available to any servlet.
Methods :
• getAttribute(String name) - returns the container attribute with the given name
• getInitParameter(String name) - returns parameter value for the specified parameter name
• getInitParameterNames() - returns the names of the context's initialization parameters as
an Enumeration of String objects
• setAttribute(String name,Objectobj) - set an object with the given attribute name in the
application scope
• removeAttribute(String name) - removes the attribute with the specified name from the
application context
Servlet RequestInterface
Methods
• getAttribute(String name), removeAttribute(String name), setAttribute(String name,
Object o), getAttributeName() – used to store and retrieve an attribute from request.
• getParameter(String name) - returns value of parameter by name
• getParameterNames() - returns an enumeration of all parameter names
• getParameterValues(String name) - returns an array of String objects containing all of the
values the given request parameter has, or null if the parameter does not exist
Servlet ResponseInterface
• Servlet API provides ServletResponseto assist in sending response to client.
Methods
• getWriter()- returns a PrintWriter object that can send character text to the client.
• setContentType(String type)- sets the content type of the response being sent to the client
before sending the respond.
Web Technologies III B.Tech II Sem (R15)
GenericServlet class
GenericServlet class implements Servlet, ServletConfig and Serializable interfaces.
It provides the implementation of all the methods of these interfaces except the service
method.
GenericServlet class can handle any type of request so it is protocol- independent.
You may create a generic servlet by inheriting the GenericServlet class and providing the
implementation of the service method.
Methods
ServletInputStream Class
It provides stream to read binary data such as image etc. from the request object. It is an
abstract class.
The getInputStream() method of ServletRequest interface returns the instance of
ServletInputStream class
intreadLine(byte[] b, int off, intlen) it reads the input stream.
ServletOutputStream Class
It provides a stream to write binary data into the response. It is an abstract class.
The getOutputStream() method of ServletResponse interface returns the instance of
ServletOutputStream class.
ServletOutputStream class provides print() and println() methods that are overloaded.
2. javax.servlet.http
Interfaces
1. HttpServletRequest
2. HttpServletResponse
3. HttpSession
Classes
1. HttpServlet
2.Cookie
2. Parameters -
The HttpServletRequest provides methods for accessing parameters of a request. The
methods getParameter(), getParameterValues()and getParameterNames() are offered as
ways to access the arguments.
Web Technologies III B.Tech II Sem (R15)
3. Attributes –
The request object defines a method called getAttribute(). The servlet interface
provides this as a way to include extra information about the request that is not covered
by any of the other HttpServletRequest methods.
4. ServletInputStream –
The ServletInputStream is an InputStream that allows your servlets to read all of the
request‘s input following the headers.
HTTPSession
HttpSession object is used to store entire session with a specific client.
We can store, retrieve and remove attribute from HttpSession object.
Any servlet can have access to HttpSession object throughout the getSession() method of
the HttpServletRequest object.
HTTPServlet
HttpServlet is extends from GenericServlet and does not override init, destroy and other
methods.
It implements the service () method which is abstract method in GenericServlet.
A subclass of HttpServlet must override at least one method, usually one of these:
o doGet(), if the servlet supports HTTP GET requests
o doPost(), for HTTP POST requests
o doPut(), for HTTP PUT requests
o doDelete(), for HTTP DELETE requests
o Init() and destroy(), to manage resources that are held for the life of the servlet
o getServletInfo(), which the servlet uses to provide information about itself
Web Technologies III B.Tech II Sem (R15)
Cookie
A cookie is a small piece of information that is persisted between the multiple client
requests.
javax.servlet.http.Cookie class provides the functionality of using cookies. It provides a
lot of useful methods for cookies.
public void addCookie(Cookie ck):method of HttpServletResponse interface is used to
add cookie in response object.
public Cookie[] getCookies():method of HttpServletRequest interface is used to return all
the cookies from the browser.
Reading Servlet Parameters(or) Handling HTTPRequest and HTTPResponse
The parameters are the way in which a client or user can send information to the Http
Server.
The HTTPServletRequest interface includes methods that allow you to read the names
and values of parameters that are included in a client request.
The HttpServletResponse Interface provides functionality for sending response to client.
The browser uses two methods to pass this information to web server. These methods are
GET Method and POST Method.
GET method:
The GET method sends the encoded user information appended to the page request.
The page and the encoded information are separated by the ? character as follows:
http://www.test.com/hello?key1=value1&key2=value2
The GET method is the defualt method to pass information from browser to web server.
Never use the GET method if you have password or other sensitive information to pass to
the server.
The GET method has size limtation: only 1024 characters can be in a request string.
This information is passed using QUERY_STRING header and will be accessible through
QUERY_STRING environment variable.
Servlet handles this type of requests using doGet() method.
POST method:
A generally more reliable method of passing information to a backend program is the
POST method.
This message comes to the backend program in the form of the standard input which you
can parse and use for your processing.
Servlet handles this type of requests using doPost() method.
<servlet>
<servlet-name>HelloForm</servlet-name>
<servlet-class>HelloForm</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloForm</servlet-name>
<url-pattern>/HelloForm</url-pattern>
</servlet- mapping>
Submit
Start Tomcat Server and open browser.
Now enter firstname and lastname, Click Submit
It will generate result
Name: KalpanaMrcet
Ex: we b.xml
<web-app>
servlet>
<servlet-name>TestInitParam</servlet-name>
<servlet-class>TestInitParam</servlet-class>
<init-param>
<param-name>email</param-name>
<param-value>kalpana@gmail.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>TestInitParam</servlet-name>
<url-pattern>/TestInitParam</url-pattern>
</servlet- mapping>
</web-app>
TestInitParam.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestInitParam extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ServletConfigsc=getServletConfig();
out.print("<html><body>");
out.print("<b>"+sc.getInitParameter("email")+"</b>");
out.print("</body></html>");
out.close();
}
}
It will generate result
kalpana@gmail.com
2. Using ServletContext
An object of ServletContext is created by the web container at time of deploying the
project.
This object can be used to get configuration information from web.xml file.
There is only one ServletContext object per web application.
If any information is shared to many servlet, it is better to provide it from the web.xml file
using the <context-param> element.
Web Technologies III B.Tech II Sem (R15)
Advantage
Easy to maintain if any information is shared to all the servlet, it is better to make it
available for all the servlet.
We provide this information from the web.xml file, so if the information is changed, we
don't need to modify the servlet. Thus it removes maintenance problem.
Uses
1. The object of ServletContext provides an interface between the container and servlet.
2. The ServletContext object can be used to get configuration information from the web.xml
file.
3. The ServletContext object can be used to set, get or remove attribute from the web.xml
file.
4. The ServletContext object can be used to provide inter-application communication.
Methods:
getAttribute(String name) - returns the container attribute with the given name
getInitParameter(String name) - returns parameter value for the specified parameter name
getInitParameterNames() - returns the names of the context's initialization parameters as
an Enumeration of String objects
setAttribute(String name,Objectobj) - set an object with the given attribute name in the
application scope
removeAttribute(String name) - removes the attribute with the specified name from the
application context
Retrieve ServletContext
ServletContextapp = getServletContext();
OR
ServletContextapp = getServletConfig().getServletContext();
Ex: we b.xml
<web-app>
<context-param>
<param-name>driverName</param-name>
<param-value>sun.jdbc.JdbcOdbcDriver</param-value>
</context-param>
<servlet>
<servlet-name>TestServletContext</servlet- name>
<servlet-class>TestServletContext</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServletContext</servlet- name>
<url-pattern>/TestServletContext</url-pattern>
</servlet- mapping>
</web-app>
Web Technologies III B.Tech II Sem (R15)
TestServletContext.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServletContext extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ServletContextsc = getServletContext();
out.println(sc.getInitParameter("driverName"));
}
}
sun.jdbc.JdbcOdbcDriver
Context Init parameters are initialized within Initialized within the <servlet> for each
the <web-app> not within a specific servlet.
specific <servlet> elements
ServletContext object is used to get Context ServletConfig object is used to get Servlet
Init parameters Init parameters
Only one ServletContext object for entire web Each servlet has its own ServletConfig
app object
Session Tracking
• Session simply means a particular interval of time.
• Session Tracking is a way to maintain state (data) of an user.
• Http protocol is a stateless, each request is considered as the new request, so we need to
maintain state using session tracking techniques.
• Each time user requests to the server, server treats the request as the new request. So we
need to maintain the state of an user to recognize to particular user.
Web Technologies III B.Tech II Sem (R15)
• We use session tracking to recognize the user It is used to recognize the particular user.
• Session Tracking Techniques
– Cookies
– Hidden Form Field
– URL Rewriting
– HttpSession
Cookies
Cookies are text files stored on the client computer and they are kept for various
information tracking purpose
There are three steps involved in identifying returning users:
o Server script sends a set of cookies to the browser in response header.
o Browser stores this information on local machine for future use.
o When next time browser sends any request to web server then it sends those cookies
information to the server in request header and server uses that information to identify the
user.
Cookies are created using Cookie class present in Servlet API.
For adding cookie or getting the value from the cookie, we need some methods provided by
other interfaces. They are:
a. public void addCookie(Cookie ck):method of HttpServletResponse interface is used to
add cookie in response object.
b. public Cookie[] getCookies():method of HttpServletRequest interface is used to return
all the cookies from the browser.
Web Technologies III B.Tech II Sem (R15)
Disadvantage of Cookies
• It will not work if cookie is disabled from the browser.
• Only textual information can be set in Cookie object.
Methods
public void setMaxAge(int expiry) Sets the maximum age of the cookie in seconds.
public String getName() Returns the name of the cookie. The name cannot
be changed after creation.
public String getValue() Returns the value of the cookie.
public void setName(String name) changes the name of the cookie.
public void setValue(String value) changes the value of the cookie.
Create Cookie
Cookie ck=new Cookie("user","kalpana ");//creating cookie object
response.addCookie(ck);//adding cookie in the response
Delete Cookie
It is mainly used to logout or signout the user.
Cookie ck=new Cookie("user","");//deleting value of cookie
ck.setMaxAge(0);//changing the maximum age to 0 seconds
response.addCookie(ck);//adding cookie in the response
Get Cookies
Cookie ck[]=request.getCookies();
for(int i=0;i<ck.length;i++)
out.print("<br>"+ck[i].getName()+" "+ck[i].getValue());
if(!pass.equals("") || !name.equals("")) {
Cookie ck = new Cookie(name,pass);
response.addCookie(ck);
}
Session
• HttpSession Interface provides a way to identify a user across more than one page request
or visit to a Web site and to store information about that user.
• Web container creates a session id for each user. The container uses this id to identify the
particular user.
• The servlet container uses this interface to create a session between an HTTP client and an
HTTP server.
• The session persists for a specified time period, across more than one connection or page
request from the user.
Web Technologies III B.Tech II Sem (R15)
The HttpServletRequest interface provides two methods to get the object of HttpSession:
1. publicHttpSessiongetSession():Returns the current session associated with this
request, or if the request does not have a session, creates one.
2. publicHttpSessiongetSession(boolean create):Returns the current HttpSession
associated with this request or, if there is no current session and create is true, returns a
new session.
Destroy Session
session.invalidate();
Methods
1. public String getId():Returns a string containing the unique identifier value.
2. public long getCreationTime():Returns the time when this session was created,
measured in milliseconds since midnight January 1, 1970 GMT.
3. public long getLastAccessedTime():Returns the last time the client sent a request
associated with this session, as the number of milliseconds since midnight January 1,
1970 GMT.
4. public void invalidate():Invalidates this session then unbinds any objects bound to it.
Steps
• On client's first request, the Web Container generates a unique session ID and gives it
back to the client with response. This is a temporary session created by web container.
• The client sends back the session ID with each request. Making it easier for the web
container to identify where the request is coming from.
• The Web Container uses this ID, finds the matching session with the ID and associates
the session with the request.
Web Technologies III B.Tech II Sem (R15)
Ex: SessionTrack.java
import java.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
if (session.isNew())
{
userID = "Kalpana";
session.setAttribute("UserId", "Kalpana");
}
else {
visitCount = (Integer)session.getAttribute("visitCount");
visitCount = visitCount + 1;
userID = (String)session.getAttribute("UserId");
}
session.setAttribute("visitCount", visitCount);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>" +
"<body>" +
"<h1>Session Infomation</h1>" +
"<table border='1'>" +
"<tr><th>Session info</th><th>value</th></tr>" +
"<tr><td>id</td><td>" + session.getId() + "</td></tr>" +
"<tr><td>User ID</td<td>" + userID + ―</td></tr>" +
"<tr><td>Number of visits</td><td>" + visitCount + "</td></tr>" +
"</table></body></html>");
}
}
Web Technologies III B.Tech II Sem (R15)
we b.xml
<web-app>
<servlet>
<servlet-name>SessionTrack</servlet-name>
<servlet-class>SessionTrack</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SessionTrack</servlet-name>
<url-pattern>/SessionTrack</url-pattern>
</servlet- mapping>
</web-app>
Output:
Web Technologies III B.Tech II Sem (R15)
UNIT IV
JAVA SERVER PAGES
Introduction to JSP: The Problem with Servlet. The Anatomy of a JSP Page, JSP Processing. JSP
Application Design with MVC Setting Up and JSP Environment, JSP Declarations, Directives,
Expressions, Code Snipplets, implement objects, Requests, Using Cookies and Session for Session
The Servlet technology and JavaServer Pages (JSP) are the two main technologies for
developing java Web applications. When first introduced by Sun Microsystems in 1996, the
Servlet technology was considered superior to the reigning Common Gateway Interface (CGI)
because servlets stay in memory after they service the first requests. Subsequent requests for
the same servlet do not require instantiation of the servlet‘s class therefore enabling better
response time.
Servlets are Java classes that implement the javax.servlet.Servlet interface. They are compiled
and deployed in the web server. The problem with servlets is that you embed HTML in Java
code. If you want to modify the cosmetic look of the page or you want to modify the structure
of the page, you have to change code. Generally speaking, this is left to the better hands
(and brains) of a web page designer and not to a Java developer.
PrintWriter pw = response.getWriter();
pw.println("<html><head><title>Testing</title></head>"); pw.println("<body
bgcolor=\"# ffdddd\">");
As seen from the example above this method presents several difficulties to the web
developer:
1. The code for a servlet becomes difficult to understand for the programmer.
2. The HTML content of such a page is difficult if not impossible for a web designer to
understand ordesign.
3. This is hard to program and even small changes in the presentation, such as the page‘s
background color, will require the servlet to be recompiled. Any changes in the HTML
content require the rebuilding of the whole servlet.
4. It's 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
then be manually embedded into the servlet code, a process which is time consuming,
error prone, and extremely boring.
5. In many Java servlet-based applications, processing the request and generating the
response are both handled by a single servlet class.
6. The servlet contains request processing and business logic (implemented by methods ),
and also generates the response HTML code, are embedded directly in the servlet code.
JSP solves these problems by giving a way to include java code into an HTML page using
scriptlets. This way the HTML code remains intact and easily accessible to web designers, but
the page can sill perform its task.
In late 1999, Sun Microsystems added a new element to the collection of Enterprise Java tools:
JavaServer Pages (JSP). JavaServer Pages are built on top of Java servlets and designed to
increase the efficiency in which programmers, and even nonprogrammers, can create web
content.
Web Technologies III B.Tech II Sem (R15)
Instead of embedding HTML in the code, you place all static HTML in a JSP page, just as in a
regular web page, and add a few JSP elements to generate the dynamic parts of the page. The
request processing can remain the domain of the servlet, and the business logic can be handled
by JavaBeans and EJB components.
A JSP page is handled differently compared to a servlet by the web server. When a servlet is
deployed into a web server in compiled (bytecode) form, then a JSP page is deployed in its
original, human-readable form.
When a user requests the specific page, the web server compiles the page into a servlet and
from there on handles it as a standard servlet.
This accounts for a small delay, when a JSP page is first requested, but any subsequent requests
benefit from the same speed effects that are associated with servlets.
The Problem with Servlet
• Servlets are difficult to code which are overcome in JSP. Other way, we can say, JSP is
almost a replacement of Servlets, (by large, the better word is extension of Servlets), where
coding decreases more than half.
• In Servlets, both static code and dynamic code are put together. In JSP, they are separated.
For example,In Servlets:
out.println(―Hello Mr.‖ + str + ‖ you are great man‖);
where str is the name of the client which changes for each client and is known as dynamic
content. The strings, ―Hello Mr.‖ and ―you are great man‖ are static content which is the
same irrespective of client. In Servlets, in println(), both are put together.
• In JSP, the static content and dynamic content is separated. Static content is written in
HTML and dynamic content in JSP. As much of the response comprises of static content
(nearly 70%) only, the JSP file more looks as a HTML file.
• Programmer inserts, here and there, chunks of JSP code in a running HTML developed by
Designer. As much of the response delivered to cleint by server comprises of static content
(nearly 70%), the JSP file more looks like a HTML file. Other way we can say, JSP is
nothting but Java in HTML (servlets are HTML
• in Java); java code embedded in HTML.
• When the roles of Designer and Programmer are nicely separated, the product development
becomes cleaner and fast. Cost of developing Web site becomes cheaper as Designers are
much paid less than Programmers, especially should be thought in the present competitive
world.
• Both presentation layer and business logic layer put together in Servlets. In JSP, they can
be separated with the usage of JavaBeans.
• The objects of PrintWriter, ServletConfig, ServletContext, HttpSession and
RequestDispatcher etc. are created by the Programmer in Servlets and used. But in JSP,
they are builtin and are known as "implicit objects". That is, in JSP, Programmer never
creates these objects and straightaway use them as they are implicitly created and given by
JSP container. This decreases lot of coding.
• JSP can easily be integrated with JavaBeans.
• JSP is much used in frameworks like Sturts etc.
• With JSP, Programmer can build custom tags that can be called in JavaBeans directly.
Servlets do not have this advantage. Reusability increases with tag libraries and JavaBean
etc.
• Writing alias name in <url-pattern> tag of web.xml is optional in JSP but mandatory in
Servlets.
• A Servlet is simply a Java class with extension .java written in normal Java code.
• A Servlet is a Java class. It is written like a normal Java. JSP is comes with some elements
that are easy to write.
Web Technologies III B.Tech II Sem (R15)
• JSP needs no compilation by the Programmer. Programmer deploys directly a JSP source
code file in server where as incase of Servlets, the Programmer compiles manually a
Servlet file and deploys a .class file in server.
• JSP is so easy even a Web Designer can put small interactive code (not knowing much of
Java) in static Web pages.
• First time when JSP is called it is compiled to a Servlet. Subsequent calls to the same JSP
will call the same compiled servlet (instead of converting the JSP to servlet), Ofcourse,
the JSP code would have not modified. This increases performance.
Anatomy of JSP
JSP Processing
Once you have a JSP capable web-server or application server, you need to know the
following information about it:
• Where to place the files
• How to access the files from your browser (with an http: prefix, not as file:)
<HTML>
<BODY>
Hello! The time is now <%= new java.util.Date() %>
</BODY>
</HTML>
Notice that each time you reload the page in the browser, it comes up with the current time. The
character sequences
<%= and %> enclose Java expressions, which are evaluated at run time.
This is what makes it possible to use JSP to generate dyamic HTML pages that change in
response to user actions or vary from user to user.
JSP Expressions start with Syntax of JSP Scriptles are with <%= and ends with %>. Between
these this you can put anything and that will convert to the String and that will be displayed.
Example: <%="Hello World!" %> Above code will display 'Hello World!'
Web Technologies III B.Tech II Sem (R15)
2. Scriplets
In this tag we can insert any amount of valid java code and these codes are placed in
_jspService method by the JSP engine.
Syntax of JSP Scriptles are:
<% //java codes
%>
JSP Scriptlets begins with <% and ends %> .We can embed any amount of java code in the
JSP Scriptlets. JSP Engine places these code in the _jspService() method. Variables available
to the JSP Scriptlets are:
3. Directives
A JSP "directive" starts with <%@ characters. In the directives we can import packages,
define error handling pages or the session information of the JSP page.
Syntax of JSP directives is:
<%@directive attribute="value" %>
a. page: page is used to provide the information about it. Example: <%@page
language="java" %>
b. include: include is used to include a file in the JSP page. Example: <%@ include
file="/header.jsp" %>
c. taglib: taglib is used to use the custom tags in the JSP pages (custom tags allows us to
defined our own tags). Example: <%@ taglib uri="tlds/taglib.tld" prefix="mytag" %>
Page tag attributes are:
a. language="java"
This tells the server that the page is using the java language. Current JSP specification
supports only java language. Example: <%@page language="java" %>
b. extends="mypackage.myclass"
This attribute is used when we want to extend any class. We can use comma(,) to import
more than one packages. Example: %@page language="java" import="java.sql.*" %
c. session="true"
When this value is true session data is available to the JSP page otherwise not. By default this
value is true.
Web Technologies III B.Tech II Sem (R15)
Using a Literal
<HTML>
<HEAD>
<TITLE>Using a Literal</TITLE>
</HEAD>
<BODY>
<H1>Using a Literal</H1>
<%
out.println("Number of days = "); out.println(365);
%>
</BODY>
</html>
Declaration Tag Example
<%!
String name = "Joe";
String date = "8th April, 2002";
%>
<HTML>
<TITLE>Declaration Tag Example</TITLE>
<BODY>
This page was last modified on <%= date %> by <%= name %>.
</BODY>
</HTML>
Embedding Code
<%!
String[] names = {"A", "B", "C", "D"};
%>
<HTML>
<HEAD><TITLE>Embedding Code</TITLE></HEAD>
<BODY>
<H1>List of people</H1>
<TABLE BORDER="1">
<TH>Name</TH>
<% for (int i=0; i<names.length; i++) { %>
<TR><TD><%= names[i]%></TD></TR>
<% } %>
</TABLE>
</BODY>
</HTML>
Web Technologies III B.Tech II Sem (R15)
Use out
<%@ page language="java" %>
<HTML>
<HEAD><TITLE>JSP Example</TITLE></HEAD>
<BODY>
<H1>Quadratic Equation: y = x^2</H1>
<TABLE BORDER="1">
<TH>x</TH><TH>y</TH>
<%
for (int i=0; i<10; i++)
out.print("<TR><TD WIDTH='100'>" + i + "</TD><TD WIDTH='100'>" + (i*i) +
"</TD></TR>");
%>
</TABLE>
</BODY>
</HTML>
Casting to a New Type
<HTML>
<HEAD>
<TITLE>Casting to a New Type</TITLE>
</HEAD>
<BODY>
<H1>Casting to a New Type</H1>
<%
float float1;
double double1 = 1;
float1 = (float) double1;
Creating a String
<HTML>
<HEAD>
<TITLE>Creating a String</TITLE>
</HEAD>
<BODY>
<H1>Creating a String</H1>
Web Technologies III B.Tech II Sem (R15)
<%
String greeting = "Hello from JSP!";
out.println(greeting);
%>
</BODY>
</HTML>
Creating an Array
<HTML>
<HEAD>
<TITLE>Creating an Array</TITLE>
</HEAD>
<BODY>
<H1>Creating an Array</H1>
<%
double accounts[];
accounts = new double[100]; accounts[3] = 119.63;
out.println("Account 3 holds $" + accounts[3]);
%>
</BODY>
</HTML>
Finding a Factorial
<HTML>
<HEAD>
<TITLE>Finding a Factorial</TITLE>
</HEAD>
<BODY>
<H1>Finding a Factorial</H1>
<%
int value = 6, factorial = 1, temporaryValue = value;
while (temporaryValue > 0) { factorial *= temporaryValue; temporaryValue--;
}
out.println("The factorial of " + value + " is " + factorial + ".");
%>
</BODY>
</HTML>
function button2()
{
document.form1.buttonName.value = "button 2" form1.submit()
}
function button3()
{
document.form1.buttonName.value = "button 3" form1.submit()
}
// -->
</SCRIPT>
</BODY>
</HTML>
basic.jsp
<HTML>
<HEAD>
<TITLE>Determining Which Button Was Clicked</TITLE>
</HEAD>
<BODY>
<H1>Determining Which Button Was Clicked</H1> You clicked
<%= request.getParameter("buttonName") %>
</BODY>
</HTML>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Submit">
</FORM>
</BODY>
</HTML>
basic.jsp
<HTML>
<HEAD>
<TITLE>Reading Checkboxes</TITLE>
</HEAD>
<BODY>
<H1>Reading Checkboxes</H1>
<%
if(request.getParameter("check1") != null) { out.println("Checkbox 1 was checked.<BR>");
}
else {
out.println("Checkbox 1 was not checked.<BR>");
}
if(request.getParameter("check2") != null) { out.println("Checkbox 2 was checked.<BR>");
}
else {
out.println("Checkbox 2 was not checked.<BR>");
}
if(request.getParameter("check3") != null) { out.println("Checkbox 3 was checked.<BR>");
}
else {
out.println("Checkbox 3 was not checked.<BR>");
}
%>
</BODY>
</HTML>
Business logic is the term used for the manipulation of an application's data, such as customer,
product, and order information. Presentation refers to how the application data is displayed to
the user, for example, position, font, and size. And finally, request processing is what ties
the business logic and presentation parts together.
In MVC terms, presentation should be separated from the business logic. Presentation of that
data (the View) changes fairly often. Just look at all the face- lifts many web sites go through to
keep up with the latest fashion in web design. Some sites may want to present the data in
different languages or present different subsets of the data to internal and external users.
cookies:
A cookie is a small piece of information created by a JSP program that is stored in the client‘s
hard disk by the browser. Cookies are used to store various kind of information such as
username, password, and user preferences, etc.
Different methods in cookie class are:
1. String getName()- Returns a name of cookie
2. String getValue()-Returns a value of cookie
3. int getMaxAge()-Returns a maximum age of cookie in millisecond
4. String getDomain()-Returns a domain
5. boolean getSecure()-Returns true if cookie is secure otherwise false
6. String getPath()-Returns a path of cookie
7. void setPath(Sting)- set the path of cookie
8. void setDomain(String)-set the domain of cookie
9.void setMaxAge(int)-set the maximum age of cookie
10.void setSecure(Boolean)-set the secure of cookie.
Creating cookie:
Cookie are created using cookie class constructor.
Content of cookies are added the browser using addCookies() method.
Reading cookies:
Reading the cookie information from the browser using getCookies() method.
Find the length of cookie class.
Retrive the information using different method belongs the cookie class
PROGRAM: To create and read the cookie for the given cookie name as “EMPID” and
its value as”AN2356”.
Program:
<%!
HttpSession h=req.getSesssion(true);
Date d=(Date) h.getAttribute(“Date”);
out.println(―last date and time‖+d);
Date d1=new Date();
d1=h.setAttribute(“date”,d1);
out.println(―current date and time=‖+d1);
%>
Web Technologies III B.Tech II Sem (R15)
UNIT-5
DATABASE ACCESS & JAVA BEANS
Database Access: Database Programming using JDBC, JDBC drivers, Studying Javax.sql.* package,
Connecting to database in PHP, Execute Simple Queries, Accessing a Database from a Servlet and JSP
page.Java Beans: Introduction to Beans, Deploying java Beans in a JSP page.
The JDBC-ODBC Bridge that comes with JDK 1.2 is a good example of this kind of driver.
Web Technologies III B.Tech II Sem (R15)
You can think of the application server as a JDBC "proxy," meaning that it makes calls for the
client application. As a result, you need some knowledge of the application server's
configuration in order to effectively use this driver type.
Your application server might use a Type 1, 2, or 4 driver to communicate with the database,
understanding the nuances will prove helpful.
MySQL's Connector/J driver is a Type 4 driver. Because of the proprietary nature of their
network protocols, database vendors usually supply type 4 drivers.
The first thing you need to do is check that you are set up properly. This involves the
following steps:
Web Technologies III B.Tech II Sem (R15)
Your driver should include instructions for installing it. For JDBC drivers written for specific
DBMSs, installation consists of just copying the driver onto your machine; there is no special
configuration needed.
The JDBC-ODBC Bridge driver is not quite as easy to set up. If you download JDK, you will
automatically get the JDBC-ODBC Bridge driver, which does not itself require any special
configuration. ODBC, however, does. If you do not already have ODBC on your machine, you
will need to see your ODBC driver vendor for information on installation and configuration.
If you do not already have a DBMS installed, you will need to follow the vendor's instructions
for installation. Most users will have a DBMS installed and will be working with an established
database.
Configuring Database:
Configuring a database is not at all difficult, but it requires special permissions and is normally
done by a database administrator.
First, open the control panel. You might find "Administrative tools" select it, again you may
find shortcut for "Data Sources (ODBC)". When you open the ―Data Source (ODBC)" 32bit
ODBC‖ icon, you‘ll see a "ODBC Data Source Administrator" dialog window with a number of
tabs, including ―User DSN,‖ ―System DSN,‖ ―File DSN,‖ etc., in which ―DSN‖ means ―Data
Source Name.‖ Select ―System DSN,‖. and add a new entry there, Select appropriate
driver for the data source or directory where database lives. You can name the entry anything
you want, assume here we are giving our data source name as "MySource".
JDBC Database Access
JDBC was designed to keep simple things simple. This means that the JDBC API makes
everyday database tasks, like simple SELECT statements, very easy.
Import a package java.sql.* : This package provides you set of all classes that enables a
network interface between the front end and back end database.
• DriverManager will create a Connection object.
• java.sql.Connection interface represents a connection with a specific database. Methods of
connection is close(), creatStatement(), prepareStatement(), commit(), close() and prepareCall()
• Statement interface used to interact with database via the execution of SQL statements.
Methods of this interface are executeQuery(), executeUpdate(), execute() and getResultSet().
• A ResultSet is returned when you execute an SQL statement. It maintains a pointer to a row
within the tablur results. Mehods of this interface are next(), getBoolean(), getByte(),
getDouble(), getString() close() and getInt().
Web Technologies III B.Tech II Sem (R15)
Establishing a Connection
The first thing you need to do is establish a connection with the DBMS you want to use. This
involves two
steps: (1) loading the driver and (2) making the connection.
Loading Drivers: Loading the driver or drivers you want to use is very simple and involves
just one line of code. If, for example, you want to use the JDBC-ODBC Bridge driver, the
following code will load it
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Your driver documentation will give you the class name to use. For instance, if
the class name is jdbc.DriverXYZ , you would load the driver with the following line of
code:
Class.forName("jdbc.DriverXYZ");
Making the Connection: The second step in establishing a connection is to have the
appropriate driver connect to the DBMS. The following line of code illustrates the general idea:
Connection con = DriverManager.getConnection(url,"myLogin", "myPassword");
If you are using the JDBC-ODBC Bridge driver, the JDBC URL will start with jdbc:odbc: .
The rest of the URL is generally your data source name or database system. So, if you are using
ODBC to access an ODBC data source called "MySource, " for example, your JDBC URL
could be jdbc:odbc:MySource . In p lace of " myLogin " you put the name you use to log in to
the DBMS; in place of " myPassword " you put your password for the DBMS. So if you log in
to your DBMS with a login name of " scott " and a password of "tiger" just these two lines of
code will establish a connection:
String url = "jdbc:odbc:MySource";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
For example, in the following code fragment, we supply executeUpdate with the SQL
statement from the example above:
We now show how you send the above SELECT statements from a program written in the Java
programming language and how you get the results we showed.
JDBC returns results in a ResultSet object, so we need to declare an instance of the class
ResultSet to hold our results. The following code demonstrates declaring the ResultSet object
rs and assigning the results of our earlier query to it:
ResultSet rs = stmt.executeQuery( "SELECT S_NAME, YEAR FROM STUDENT");
The following code accesses the values stored in the current row of rs. Each time the method
next is invoked, the next row becomes the current row, and the loop continues until there are no
more rows in rs .
String query = "SELECT COF_NAME, PRICE FROM STUDENT";
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
String s = rs.getString("S_N AME");
Integer i = rs.getInt("S_ID");
String c = rs.getString("COURSE");
String y = rs.getString(―YEAR‖);
System.out.println(i + " " + s + " " + c + " " + y);
}
Updating Tables
Suppose that after a period of time we want update the YEAR column in the table
STUDENT. The SQL statement to update one row might look like this:
Using the Statement object stmt , this JDBC code executes the SQL statement contained in
updateString :
stmt.executeUpdate(updateString);
JDBC lets you see the warnings and exceptions generated by your DBMS and by the Java
compiler. To see exceptions, you can have a catch block print them out. For example, the
following two catch blocks from the sample code print out a message explaining the exception:
Try
{
// Code that could generate an exception goes here.
// If an exception is generated, the catch block below
// will print out information about it.
} catch(SQLException ex)
{
System.err.println("SQ LException: " + ex.getMessage());
}
JavaBeans
JavaBeans:
JavaBeans is architecture for both using and building components in Java. This architecture
supports the features of software reuse, component models, and object orientation. One of the
most important features of JavaBeans is that it does not alter the existing Java language.
Although Beans are intended to work in a visual application development tool, they don't
necessarily have a visual representation at run-time (although many will). What this does mean
is that Beans must allow their property values to be changed through some type of visual
interface, and their methods and events should be exposed so that the development tool can
write code capable of manipulating the component when the application is executed.
Bean Development Kit (BDK) is a tool for testing whether your JavaBeans meets the
JavaBean specification.
Features of JavaBeans
Compact and Easy: JavaBeans components are simple to create and easy to use. This is an
important goal of the JavaBeans architecture. It doesn't take very much to write a simple Bean,
and such a Bean is lightweight, it doesn't have to carry around a lot of inherited baggage just
to support the Beans environment.
Portable: Since JavaBeans components are built purely in Java, they are fully portable to any
platform that supports the Java run-time environment. All platform specifics, as well as support
for JavaBeans, are implemented by the Java virtual machine.
Introspection: Introspection is the process of exposing the properties, methods, and events that
a JavaBean component supports. This process is used at run-time, as well as by a visual
development tool at design-time. The default behavior of this process allows for the automatic
introspection of any Bean. A low- level reflection mechanism is used to analyze the Bean's class
to determine its methods. Next it applies some simple design patterns to determine the properties
and events that are supported. To take advantage of reflection, you only need to follow a coding
style that matches the design pattern. This is an important feature of JavaBeans. It means that
you don't have to do anything more than code your methods using a simple convention. If you
do, your Beans will automatically support introspection without you having to write any extra
code.
Customization: When you are using a visual development tool to assemble components
into applications, you will be presented with some sort of user interface for
Web Technologies III B.Tech II Sem (R15)
customizing Bean attributes. These attributes may affect the way the Bean operates or the way
it looks on the screen. The application tool you use will be able to determine the properties that
a Bean supports and build a property sheet dynamically. This property sheet will contain editors
for each of the properties supported by the Bean, which you can use to customize the Bean to
your liking. The Beans class library comes with a number of property editors for common types
such as float, boolean, and String. If you are using custom classes for properties, you will have
to create custom property editors to associate with them.
Persistence: It is necessary that Beans support a large variety of storage mechanisms. This way,
Beans can participate in the largest number of applications. The simplest way to support
persistence is to take advantage of Java Object Serialization. This is an automatic mechanism
for saving and restoring the state of an object. Java Object Serialization is the best way to make
sure that your Beans are fully portable, because you take advantage of a standard feature
supported by the core Java platform. This, however, is not always desirable. There may be cases
where you want your Bean to use other file formats or mechanisms to save and restore state. In
the future, JavaBeans will support an alternative externalization mechanism that will allow the
Bean to have complete control of its persistence mechanism.
The BDK is also represents a Properties window that provides an interface through which the
user configure a Bean.
Web Technologies III B.Tech II Sem (R15)