Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 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