0% found this document useful (0 votes)
13 views21 pages

Assignment 4

The document contains 8 questions asking to write JSP programs demonstrating different JSP concepts and features. Question 1 asks to write a program to count website visitors using sessions. Question 2 asks to write a program demonstrating session tracking. Question 3 asks to write a program handling a NumberFormatException when reading user input. The remaining questions ask to write programs demonstrating various other JSP concepts like using page directives, including files, custom tags, and more.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views21 pages

Assignment 4

The document contains 8 questions asking to write JSP programs demonstrating different JSP concepts and features. Question 1 asks to write a program to count website visitors using sessions. Question 2 asks to write a program demonstrating session tracking. Question 3 asks to write a program handling a NumberFormatException when reading user input. The remaining questions ask to write programs demonstrating various other JSP concepts like using page directives, including files, custom tags, and more.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

ASSIGNMENT – 4

NAME –Pragati Yadav

ROLL NO. –
2101330100167
SECTION– D
1. WRITE A JSP PROGRAM COUNT NO. OF VISITORS ON WEBSITE.

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1"%>

<%@ PAGE IMPORT="JAVA.IO.*, JAVA.UTIL.*, JAVAX.SERVLET.*, JAVAX.SERVLET.HTTP.*"%>

<%
// GET THE CURRENT COUNT FROM THE SESSION
INTEGER COUNT = (INTEGER)SESSION.GETATTRIBUTE("COUNT");

// IF COUNT IS NULL, INITIALIZE IT TO 0


IF (COUNT == NULL){

COUNT = 0;
}

// INCREMENT THE
COUNT COUNT++;

// SET THE UPDATED COUNT INTHE SESSION


SESSION.SETATTRIBUTE("COUNT", COUNT);

%>

<!
DOCTYPEHTML
>
<HTML>
<HEAD>
<TITLE>VISITOR COUNTER</TITLE>
</HEAD>
<BODY>
<H1>WELCOME TO OUR WEBSITE</H1>
<P>YOU ARE VISITOR NUMBER:<%= COUNT %></P>
</BODY>
</HTML>

2. WRITE A JSP PROGRAM SESSIONTRACKING.

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1"%>

<%@ PAGE IMPORT="JAVA.UTIL.*"%>


<%@ PAGE IMPORT="JAVAX.SERVLET.*"%>
<%@ PAGE IMPORT="JAVAX.SERVLET.HTTP.*"%>

<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>SESSION TRACKING EXAMPLE</TITLE>
</HEAD>
<BODY>
<H1>SESSION TRACKING EXAMPLE</H1>
<%

// CHECK IF SESSION IS NEW


BOOLEANISNEWSESSION =SESSION.ISNEW();

// GET SESSION ID
STRING SESSIONID =SESSION.GETID();

// GET SESSION CREATIONTIME


DATE CREATIONTIME = NEWDATE(SESSION.GETCREATIONTIME());

// GET LAST ACCESS TIME


DATE LASTACCESSTIME = NEWDATE(SESSION.GETLASTACCESSEDTIME());

// INCREMENT VISIT COUNT


INTEGER VISITCOUNT =
(INTEGER)SESSION.GETATTRIBUTE("VISITCOUNT"); IF
(VISITCOUNT == NULL){
VISITCOUNT = 1;
}ELSE{
VISITCOUNT++;

}
SESSION.SETATTRIBUTE("VISITCOUNT", VISITCOUNT);

%>

<P >
SESSION ID:<%= SESSIONID %><BR>
SESSION CREATION TIME:<%=
CREATIONTIME %><BR> LAST ACCESS
TIME:<%= LASTACCESSTIME %><BR>
<%IF (ISNEWSESSION)
{%> THIS IS A
NEWSESSION.<BR>

<%}ELSE{%>
THIS IS ANEXISTING
SESSION.<BR>

<%}%>
TOTAL VISITS:<%= VISITCOUNT
%>
</P>
</BODY>
</HTML>

3. DEVELOP A JSPPROGRAM THAT READS ANINTEGER FROMTHE USER AND HANDLES THE
NUMBERFORMATEXCEPTION GRACEFULLY. DISPLAY AN APPROPRIATE ERROR MESSAGE IF
THE USER ENTERS A NON-INTEGER VALUE.

ǪUESTION3_1.JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO-

8859-1" PAGEENCODING="ISO-8859-1"%>
<%@ PAGE IMPORT="JAVA.IO.*, JAVA.UTIL.*, JAVAX.SERVLET.*, JAVAX.SERVLET.HTTP.*"%>
<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>INTEGER INPUT</TITLE>
</HEAD>
<BODY>
<H1>ENTER AN INTEGER</H1>

<FORMMETHOD="POST"ACTION="ǪUESTION3_2.JSP">
ENTER ANINTEGER:<INPUT TYPE="TEXT"NAME="USERINPUT">
<INPUT TYPE="SUBMIT"VALUE="SUBMIT">
</FORM>

<%
// CHECK IF ANERROR MESSAGE IS PRESENT INTHE REǪUEST SCOPE
STRING ERRORMESSAGE =
(STRING)REǪUEST.GETATTRIBUTE("ERRORMESSAGE"); IF
(ERRORMESSAGE != NULL){
%>

<P STYLE="COLOR:RED;"><%= ERRORMESSAGE %></P>


<%}%>
</BODY>
</HTML>

ǪUESTION3_2.JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1"%>

<%@ PAGE IMPORT="JAVA.IO.*, JAVA.UTIL.*, JAVAX.SERVLET.*, JAVAX.SERVLET.HTTP.*"%>


<%
STRING USERINPUT
=REǪUEST.GETPARAMETER("USERINPUT"); INT
NUMBER = 0;
STRING ERRORMESSAGE = NULL;

TRY {

NUMBER = INTEGER.PARSEINT(USERINPUT);
}CATCH (NUMBERFORMATEXCEPTION E){
ERRORMESSAGE = "ERROR:PLEASE ENTER A VALID INTEGER.";
}

IF (ERRORMESSAGE == NULL){

// IF NO ERROR, DISPLAY THE ENTERED INTEGER


%>
<H2>YOU ENTERED:<%= NUMBER %></H2>
<%
}ELSE{
// IF ERROR, REDIRECT BACK TO THE INPUT PAGE WITH ERROR
MESSAGE REǪUEST.SETATTRIBUTE("ERRORMESSAGE",

ERRORMESSAGE);

REǪUESTDISPATCHER DISPATCHER =REǪUEST.GETREǪUESTDISPATCHER("ǪUESTION3_1.JSP");


DISPATCHER.FORWARD(REǪUEST, RESPONSE);

}
%>
4. WRITE A SIMPLE JSP PROGRAMTHAT DEMONSTRATES THE USAGE OF PAGE DIRECTIVE
TO SET CONTENT TYPE TO HTMLAND BUFFER SIZE TO 8192BYTES.

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1" BUFFER="1KB"%>

<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>PAGE DIRECTIVE EXAMPLE</TITLE>
</HEAD>
<BODY>
<H1>PAGE DIRECTIVE EXAMPLE</H1>
<P>THIS JSP PAGE DEMONSTRATES THE USAGE OF PAGE DIRECTIVE TO SET CONTENT TYPE
TO HTMLAND BUFFER SIZE TO 8192BYTES.</P>
<%
// SIMULATE OUTPUT TO EXCEED BUFFER
SIZE STRINGBUILDER OUTPUT =

NEWSTRINGBUILDER(); FOR (INT I = 0;I


< 100;I++){
OUTPUT.APPEND("LOREMIPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT. ");
}
OUT.PRINTLN(OUTPUT.TOSTRING());

%>
</BODY>
</HTML>

5. WRITE A JSP PROGRAM TO RETRIEVE DATA FROM HTMLINTO JSPPAGE AND


DISPLAY ONBROWSER. INDEX.HTML

<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>HTMLFORM</TITLE>
</HEAD>
<BODY>
<H1>ENTER YOUR NAME</H1>
<FORMACTION="ǪUESTION5.JSP"METHOD="POST">
<LABEL FOR="NAME">NAME:</LABEL>
<INPUT TYPE="TEXT"ID="NAME"NAME="NAME">
<BR>
<INPUT TYPE="SUBMIT"VALUE="SUBMIT">
</FORM>
</BODY>
</HTML>

JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT
/HTML;CHARSET=ISO-8859-1"
PAGEENCODING="ISO-8859-1"%>

<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>DISPLAY DATA</TITLE>
</HEAD>
<BODY>
<H1>DISPLAY DATA</H1>
<%
// RETRIEVE DATA FROM THE HTMLFORM
STRING NAME =REǪUEST.GETPARAMETER("NAME");
%>
<P>YOUR NAME IS:<%= NAME %></P>
</BODY>
</HTML>
6. CREATE A CUSTOM JSPTAG THAT TAKES TWO NUMBERS AS INPUT AND
CALCULATES THEIR SUM. INCLUDE THIS TAG INA JSP PAGE AND
DEMONSTRATE ITS USAGE.

ǪUESTION6TAG.JAVA

PACKAGE ASSIGNMENT4;

IMPORT
JAVAX.SERVLET.ANNOTATION.WEBSERV
LET; IMPORT
JAVAX.SERVLET.HTTP.HTTPSERVLET;
IMPORT
JAVAX.SERVLET.JSP.TAGEXT.SIMPLETAGSUPP
ORT; IMPORT
JAVAX.SERVLET.JSP.JSPEXCEPTION;

IMPORT JAVA.IO.IOEXCEPTION;
/**
* SERVLET IMPLEMENTATION CLASS ǪUESTION6
*/
@WEBSERVLET("/ǪUE
STION6")
PUBLIC CLASS ǪUESTION6TAG EXTENDS SIMPLETAGSUPPORT {

PRIVATE STATIC FINAL LONG SERIALVERSIONUID= 1L;

// PUBLIC CLASS SUMTAGHANDLER EXTENDS SIMPLETAGSUPPORT {


PRIVATE
INT NUM1;
PRIVATE
INT NUM2;

PUBLIC VOID SETNUM1(INT NUM1){


THIS.NUM1= NUM1;
}

PUBLIC VOID SETNUM2(INT NUM2){


THIS.NUM2= NUM2;
}

PUBLIC VOID DOTAG()THROWS JSPEXCEPTION, IOEXCEPTION {


INT SUM = NUM1+ NUM2;

GETJSPCONTEXT().GETOUT().PRINTLN("SUM OF "+ NUM1+ "AND


"+ NUM2+ "IS:"+
SUM);

// }
}

SUMTAG.TLD

<?XML VERSION="1.0"ENCODING="UTF-8"?>
<TAGLIB
XMLNS="HTTP://JAVA.SUN.COM/XML/NS/JAVAEE"

XMLNS:XSI="HTTP://WWW.W3.ORG/2001/XMLSCHE

MA-INSTANCE"

VERSION="3.0"
>

<TLIB-VERSION>1.0</TLIB-VERSION>
<SHORT-NAME>SUMTAG</SHORT-NAME>
<URI>/WEB-INF/SUMTAG.TLD</URI>

<TAG>
<NAME>SUM</NAME>
<TAG-CLASS>ASSIGNMENT4.ǪUESTION6TAG</TAG-CLASS>
<BODY-CONTENT>EMPTY</BODY-CONTENT>
<ATTRIBUTE>
<NAME>NUM1</NAME>
<REǪUIRED>TRUE</REǪUIRED>
<RTEXPRVALUE>TRUE</RTEXPRVALUE>
<TYPE>JAVA.LANG.INTEGER</TYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>NUM2</NAME>
<REǪUIRED>TRUE</REǪUIRED>
<RTEXPRVALUE>TRUE</RTEXPRVALUE>
<TYPE>JAVA.LANG.INTEGER</TYPE>
</ATTRIBUTE>
</TAG>
</
TAGLIB
>

ǪUESTION6.JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;
CHARSET=ISO-8859-1" PAGEENCODING="ISO-
8859-1"%>
<%@TAGLIB URI="/WEB-INF/SUMTAG.TLD"PREFIX="SUM"%>
<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>CUSTOM TAG DEMO</TITLE>
</HEAD>
<BODY>
<H1>CUSTOM TAG DEMO</H1>
<SUM:SUMNUM1="5"NUM2="7"/>
</BODY>
</HTML>
7. WRITE A JSP PROGRAM THAT USES THE INCLUDE DIRECTIVE TO INCLUDE ANOTHER JSP
PAGE CONTAINING A HEADER. DEMONSTRATE THE USAGE OF INCLUDE DIRECTIVE TO
INCLUDE THE HEADER FILE IN YOUR MAIN JSP PAGE.

HOME.JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1"%>
<!DOCTYPEHTML>

<HTML>
<HEAD>
<TITLE>MAIN PAGE</TITLE>
</HEAD>
<BODY>
<H1>WELCOME TO THE MAIN PAGE</H1>

<%@ INCLUDE FILE="ǪUESTION7HEADER.JSP"%>

<P>THIS IS THE CONTENT OF THE MAIN PAGE.</P>


</BODY>
</HTML>

HEADER.JSP

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;
CHARSET=ISO-8859-1" PAGEENCODING="ISO-
8859-1"%>
<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>HEADER</TITLE>
</HEAD>
<BODY>
<HEADER>
<H1>THIS IS THE HEADER</H1>
<NAV>
<UL>
<LI><A HREF=" ">HOME</A></LI>
<LI><A HREF=" ">ABOUT</A></LI>
<LI><A HREF=" ">CONTACT</A></LI>
</UL>
</NAV>
</
HEADER
>
</BODY>
</HTML>
8. IMPLEMENT A CUSTOM JSP TAG THAT GENERATES A RANDOM NUMBER WITHIN A
SPECIFIED RANGE. INCLUDE THIS TAG INA JSP PAGE AND DEMONSTRATE ITS USAGE TO
GENERATE RANDOM NUMBERS BETWEEN 1AND 100.

PACKAGE ASSIGNMENT4;

IMPORT

JAVAX.SERVLET.ANNOTATION.WEBSER

VLET; IMPORT

JAVAX.SERVLET.HTTP.HTTPSERVLET;

IMPORT JAVAX.SERVLET.JSP.TAGEXT.*;

IMPORT

JAVAX.SERVLET.JSP.*;

IMPORT JAVA.IO.*;

/**

* SERVLET IMPLEMENTATION CLASS ǪUESTION8TAG


*/
@WEBSERVLET("/ǪUESTION8
TAG")
PUBLIC CLASS ǪUESTION8TAG EXTENDS SIMPLETAGSUPPORT {

PRIVATE STATIC FINAL LONG SERIALVERSIONUID= 1L;


PRIVATE INT

MIN;
PRIVATE INT

MAX;

// SETTERS FOR TAG


ATTRIBUTES PUBLIC

VOID SETMIN(INT MIN){

THIS.MIN= MIN;

PUBLIC VOID SETMAX(INT MAX){

THIS.MAX = MAX;

PUBLIC VOID DOTAG()THROWS JSPEXCEPTION, IOEXCEPTION{


// GENERATE A RANDOM NUMBER WITHIN THE SPECIFIED RANGE [MIN, MAX]
INT RANDOMNUMBER = MIN+ (INT)(MATH.RANDOM()* ((MAX - MIN)+ 1));

// OUTPUT THE RANDOM NUMBER TO


THE JSP PAGE JSPWRITER OUT

=GETJSPCONTEXT().GETOUT();
OUT.PRINT(RANDOMNUMBER);

}
}

<?XML VERSION="1.0"ENCODING="UTF-8"?>
<TAGLIB
XMLNS="HTTP://JAVA.SUN.COM/XML/NS/JAVAEE"

XMLNS:XSI="HTTP://WWW.W3.ORG/2001/XMLSCHE

MA-INSTANCE"

VERSION="3.0">
<TLIB-VERSION>1.0</TLIB-VERSION>
<SHORT-NAME>RANDOMNUMBER</SHORT-NAME>
<URI>/WEB-INF/RANDOMNUMBER.TLD</URI>

<TAG>
<NAME>RANDOMNUMBER</NAME>
<TAG-CLASS>ASSIGNMENT4.ǪUESTION8TAG</TAG-CLASS>
<BODY-CONTENT>EMPTY</BODY-CONTENT>
<ATTRIBUTE>
<NAME>MIN</NAME>
<REǪUIRED>TRUE</REǪUIRED>
<RTEXPRVALUE>TRUE</RTEXPRVALUE>
<TYPE>JAVA.LANG.INTEGER</TYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>MAX</NAME>
<REǪUIRED>TRUE</REǪUIRED>
<RTEXPRVALUE>TRUE</RTEXPRVALUE>
<TYPE>JAVA.LANG.INTEGER</TYPE>
</ATTRIBUTE>
</TAG>
</TAGLIB>

<%@ PAGE
LANGUAGE="JAVA"CONTENTTYPE="TEXT/HTML;CHARSET=ISO

-8859-1" PAGEENCODING="ISO-8859-1"%>
<%@TAGLIB URI="/WEB-INF/RANDOMNUMBER.TLD"PREFIX="RAND"%>

<!DOCTYPEHTML>
<HTML>
<HEAD>
<TITLE>RANDOM NUMBER GENERATOR</TITLE>
</HEAD>
<BODY>
<H1>RANDOM NUMBER GENERATOR</H1>
<P>GENERATED RANDOM NUMBER BETWEEN 1AND
100:<RAND:RANDOMNUMBER MIN="1"MAX="100"/></P>
</BODY>
</HTML>

You might also like