Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
36 views83 pages

JSP Full Notes

The document is a tutorial on JSP (JavaServer Pages) technology, explaining its advantages over Servlet technology, such as easier maintenance, faster development, and reduced code complexity. It outlines the lifecycle of a JSP page, various scripting elements, and implicit objects available in JSP, providing examples for better understanding. The tutorial is authored by Deepak Singh, an assistant professor, and includes contact information.

Uploaded by

sarvesh yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views83 pages

JSP Full Notes

The document is a tutorial on JSP (JavaServer Pages) technology, explaining its advantages over Servlet technology, such as easier maintenance, faster development, and reduced code complexity. It outlines the lifecycle of a JSP page, various scripting elements, and implicit objects available in JSP, providing examples for better understanding. The tutorial is authored by Deepak Singh, an assistant professor, and includes contact information.

Uploaded by

sarvesh yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 83

JSP Tutorial

JSP technology is used to create web application just like Servlet technology. It can be
thought of as an extension to Servlet because it provides more functionality than
servlet such as expression language, JSTL, etc.

A JSP page consists of HTML tags and JSP tags. The JSP pages are easier to maintain
than Servlet because we can separate designing and development. It provides some
additional features such as Expression Language, Custom Tags, etc.

Advantages of JSP over Servlet


There are many advantages of JSP over the Servlet. They are as follows:

1) Extension to Servlet

JSP technology is the extension to Servlet technology. We can use all the features of
the Servlet in JSP. In addition to, we can use implicit objects, predefined tags,
expression language and Custom tags in JSP, that makes JSP development easy.

2) Easy to maintain

JSP can be easily managed because we can easily separate our business logic with
presentation logic. In Servlet technology, we mix our business logic with the
presentation logic.

3) Fast Development: No need to recompile and redeploy

If JSP page is modified, we don't need to recompile and redeploy the project. The
Servlet code needs to be updated and recompiled if we have to change the look and
feel of the application.

4) Less code than Servlet

In JSP, we can use many tags such as action tags, JSTL, custom tags, etc. that reduces
the code. Moreover, we can use EL, implicit objects, etc.

The Lifecycle of a JSP Page


The JSP pages follow these phases:

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


1
9454202501,[email protected]
o Translation of JSP Page
o Compilation of JSP Page
o Classloading (the classloader loads class file)
o Instantiation (Object of the Generated Servlet is created).
o Initialization ( the container invokes jspInit() method).
o Request processing ( the container invokes _jspService() method).
o Destroy ( the container invokes jspDestroy() method).

Note: jspInit(), _jspService() and jspDestroy() are the life cycle methods of JSP.

JSP Scripting elements


The scripting elements provides the ability to insert java code inside the jsp. There are
three types of scripting elements:

o scriptlet tag
o expression tag
o declaration tag

JSP scriptlet tag


NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-
2
9454202501,[email protected]
A scriptlet tag is used to execute java source code in JSP. Syntax is as follows:

1. <% java source code %>

Example of JSP scriptlet tag


In this example, we are displaying a welcome message.

ADVERTISEMENT

1. <html>
2. <body>
3. <% out.print("welcome to jsp"); %>
4. </body>
5. </html>

Example of JSP scriptlet tag that prints the user name


In this example, we have created two files index.html and welcome.jsp. The index.html
file gets the username from the user and the welcome.jsp file prints the username with
the welcome message.

File: index.html

1. <html>
2. <body>
3. <form action="welcome.jsp">
4. <input type="text" name="uname">
5. <input type="submit" value="go"><br/>
6. </form>
7. </body>
8. </html>

File: welcome.jsp

1. <html>
2. <body>
3. <%
4. String name=request.getParameter("uname");

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


3
9454202501,[email protected]
5. out.print("welcome "+name);
6. %>
7. </form>
8. </body>
9. </html>

JSP expression tag


The code placed within JSP expression tag is written to the output stream of the
response. So you need not write out.print() to write data. It is mainly used to print the
values of variable or method.

Syntax of JSP expression tag

1. <%= statement %>

Example of JSP expression tag


In this example of jsp expression tag, we are simply displaying a welcome message.

1. <html>
2. <body>
3. <%= "welcome to jsp" %>
4. </body>
5. </html>

Note: Do not end your statement with semicolon in case of expression tag.

Example of JSP expression tag that prints current time


To display the current time, we have used the getTime() method of Calendar class. The
getTime() is an instance method of Calendar class, so we have called it after getting
the instance of Calendar class by the getInstance() method.

index.jsp

1. <html>
2. <body>
3. Current Time: <%= java.util.Calendar.getInstance().getTime() %>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


4
9454202501,[email protected]
4. </body>
5. </html>

Example of JSP expression tag that prints the user name


In this example, we are printing the username using the expression tag. The index.html
file gets the username and sends the request to the welcome.jsp file, which displays
the username.

File: index.jsp

1. <html>
2. <body>
3. <form action="welcome.jsp">
4. <input type="text" name="uname"><br/>
5. <input type="submit" value="go">
6. </form>
7. </body>
8. </html>

File: welcome.jsp

1. <html>
2. <body>
3. <%= "Welcome "+request.getParameter("uname") %>
4. </body>
5. </html>

Example of JSP declaration tag that declares field


In this example of JSP declaration tag, we are declaring the field and printing the value
of the declared field using the jsp expression tag.

index.jsp

1. <html>
2. <body>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


5
9454202501,[email protected]
3. <%! int data=50; %>
4. <%= "Value of the variable is:"+data %>
5. </body>
6. </html>

Example of JSP declaration tag that declares method


In this example of JSP declaration tag, we are defining the method which returns the
cube of given number and calling this method from the jsp expression tag. But we can
also use jsp scriptlet tag to call the declared method.

index.jsp

1. <html>
2. <body>
3. <%!
4. int cube(int n){
5. return n*n*n*;
6. }
7. %>
8. <%= "Cube of 3 is:"+cube(3) %>
9. </body>
10. </html>

JSP Implicit Objects


1. JSP Implicit Objects
2. out implicit object
3. Example of out implicit object

There are 9 jsp implicit objects. These objects are created by the web container that
are available to all the jsp pages.

The available implicit objects are out, request, config, session, application etc.

A list of the 9 implicit objects is given below:

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


6
9454202501,[email protected]
Object Type

out JspWriter

request HttpServletRequest

response HttpServletResponse

config ServletConfig

application ServletContext

session HttpSession

pageContext PageContext

page Object

exception Throwable

JSP request implicit object


The JSP request is an implicit object of type HttpServletRequest i.e. created for each
jsp request by the web container. It can be used to get request information such as
parameter, header information, remote address, server name, server port, content
type, character encoding etc.

It can also be used to set, get and remove attributes from the jsp request scope.

Let's see the simple example of request implicit object where we are printing the name
of the user with welcome message.

Example of JSP request implicit object


index.html

1. <form action="welcome.jsp">
2. <input type="text" name="uname">
3. <input type="submit" value="go"><br/>
4. </form>

welcome.jsp
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-
7
9454202501,[email protected]
1. <%
2. String name=request.getParameter("uname");
3. out.print("welcome "+name);
4. %>

Output

3) JSP response implicit object


In JSP, response is an implicit object of type HttpServletResponse. The instance of
HttpServletResponse is created by the web container for each jsp request.

It can be used to add or manipulate response such as redirect response to another


resource, send error etc.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


8
9454202501,[email protected]
Let's see the example of response implicit object where we are redirecting the response
to the Google.

Example of response implicit object


index.html
1. <form action="welcome.jsp">
2. <input type="text" name="uname">
3. <input type="submit" value="go"><br/>
4. </form>
welcome.jsp
1. <%
2. response.sendRedirect("http://www.google.com");
3. %>

Output

4) JSP config implicit object


In JSP, config is an implicit object of type ServletConfig. This object can be used to get
initialization parameter for a particular JSP page. The config object is created by the
web container for each jsp page.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT-


9
9454202501,[email protected]
Generally, it is used to get initialization parameter from the web.xml file.

Example of config implicit object:


index.html
1. <form action="welcome">
2. <input type="text" name="uname">
3. <input type="submit" value="go"><br/>
4. </form>
web.xml file
1. <web-app>
2.
3. <servlet>
4. <servlet-name>sonoojaiswal</servlet-name>
5. <jsp-file>/welcome.jsp</jsp-file>
6.
7. <init-param>
8. <param-name>dname</param-name>
9. <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
10. </init-param>
11.
12. </servlet>
13.
14. <servlet-mapping>
15. <servlet-name>sonoojaiswal</servlet-name>
16. <url-pattern>/welcome</url-pattern>
17. </servlet-mapping>
18.
19. </web-app>
welcome.jsp
1. <%
2. out.print("Welcome "+request.getParameter("uname"));
3.
4. String driver=config.getInitParameter("dname");
5. out.print("driver name is="+driver);
6. %>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 0
Output

5) JSP application implicit object


In JSP, application is an implicit object of type ServletContext.

The instance of ServletContext is created only once by the web container when
application or project is deployed on the server.

This object can be used to get initialization parameter from configuaration file
(web.xml). It can also be used to get, set or remove attribute from the application
scope.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 1
This initialization parameter can be used by all jsp pages.

ADVERTISEMENT

ADVERTISEMENT

Example of application implicit object:


index.html
1. <form action="welcome">
2. <input type="text" name="uname">
3. <input type="submit" value="go"><br/>
4. </form>
web.xml file
1. <web-app>
2.
3. <servlet>
4. <servlet-name>sonoojaiswal</servlet-name>
5. <jsp-file>/welcome.jsp</jsp-file>
6. </servlet>
7.
8. <servlet-mapping>
9. <servlet-name>sonoojaiswal</servlet-name>
10. <url-pattern>/welcome</url-pattern>
11. </servlet-mapping>
12.
13. <context-param>
14. <param-name>dname</param-name>
15. <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
16. </context-param>
17.
18. </web-app>
welcome.jsp
1. <%
2.
3. out.print("Welcome "+request.getParameter("uname"));
4.
5. String driver=application.getInitParameter("dname");

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 2
6. out.print("driver name is="+driver);
7.
8. %>

Output

6) session implicit object


In JSP, session is an implicit object of type HttpSession.The Java developer can use this object to
set,get or remove attribute or to get session information.

Example of session implicit object


NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1
9454202501,[email protected] 3
index.html

1. <html>
2. <body>
3. <form action="welcome.jsp">
4. <input type="text" name="uname">
5. <input type="submit" value="go"><br/>
6. </form>
7. </body>
8. </html>

welcome.jsp

1. <html>
2. <body>
3. <%
4.
5. String name=request.getParameter("uname");
6. out.print("Welcome "+name);
7.
8. session.setAttribute("user",name);
9.
10. <a href="second.jsp">second jsp page</a>
11.
12. %>
13. </body>
14. </html>

second.jsp

1. <html>
2. <body>
3. <%
4.
5. String name=(String)session.getAttribute("user");
6. out.print("Hello "+name);
7.
8. %>
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1
9454202501,[email protected] 4
9. </body>
10. </html>

Output

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 5
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1
9454202501,[email protected] 6
7) pageContext implicit object
In JSP, pageContext is an implicit object of type PageContext class.The pageContext object can
be used to set,get or remove attribute from one of the following scopes:
o page
o request
o session
o application

In JSP, page scope is the default scope.

Example of pageContext implicit object


index.html

1. <html>
2. <body>
3. <form action="welcome.jsp">
4. <input type="text" name="uname">
5. <input type="submit" value="go"><br/>
6. </form>
7. </body>
8. </html>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 7
welcome.jsp

1. <html>
2. <body>
3. <%
4.
5. String name=request.getParameter("uname");
6. out.print("Welcome "+name);
7.
8. pageContext.setAttribute("user",name,PageContext.SESSION_SCOPE);
9.
10. <a href="second.jsp">second jsp page</a>
11.
12. %>
13. </body>
14. </html>

second.jsp

1. <html>
2. <body>
3. <%
4.
5. String name=(String)pageContext.getAttribute("user",PageContext.SESSION_SCOPE);

6. out.print("Hello "+name);
7.
8. %>
9. </body>
10. </html>

Output

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1


9454202501,[email protected] 8
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 1
9454202501,[email protected] 9
JSP directives
1. JSP directives
1. page directive
2. Attributes of page directive

The jsp directives are messages that tells the web container how to translate a JSP
page into the corresponding servlet.

There are three types of directives:

o page directive
o include directive
o taglib directive

Syntax of JSP Directive

1. <%@ directive attribute="value" %>

JSP page directive


The page directive defines attributes that apply to an entire JSP page.

Syntax of JSP page directive

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 0
1. <%@ page attribute="value" %>

Attributes of JSP page directive

o import
o contentType
o extends
o info
o buffer
o language
o isELIgnored
o isThreadSafe
o autoFlush
o session
o pageEncoding
o errorPage
o isErrorPage

1)import

The import attribute is used to import class,interface or all the members of a package.It is similar
to import keyword in java class or interface.

Example of import attribute


1. <html>
2. <body>
3.
4. <%@ page import="java.util.Date" %>
5. Today is: <%= new Date() %>
6.
7. </body>
8. </html>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 1
2)contentType
The contentType attribute defines the MIME(Multipurpose Internet Mail Extension)
type of the HTTP response.The default value is "text/html;charset=ISO-8859-1".

Example of contentType attribute


1. <html>
2. <body>
3.
4. <%@ page contentType=application/msword %>
5. Today is: <%= new java.util.Date() %>
6.
7. </body>
8. </html>

3)extends
The extends attribute defines the parent class that will be inherited by the generated
servlet.It is rarely used.

4)info
This attribute simply sets the information of the JSP page which is retrieved later by
using getServletInfo() method of Servlet interface.

Example of info attribute

1. <html>
2. <body>
3.
4. <%@ page info="composed by Sonoo Jaiswal" %>
5. Today is: <%= new java.util.Date() %>
6.
7. </body>
8. </html>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 2
The web container will create a method getServletInfo() in the resulting servlet.For
example:

1. public String getServletInfo() {


2. return "composed by Sonoo Jaiswal";
3. }

5)buffer
The buffer attribute sets the buffer size in kilobytes to handle output generated by the
JSP page.The default size of the buffer is 8Kb.

Example of buffer attribute


1. <html>
2. <body>
3.
4. <%@ page buffer="16kb" %>
5. Today is: <%= new java.util.Date() %>
6.
7. </body>
8. </html>

6)language
The language attribute specifies the scripting language used in the JSP page. The
default value is "java".

7)isELIgnored

We can ignore the Expression Language (EL) in jsp by the isELIgnored attribute. By default its
value is false i.e. Expression Language is enabled by default. We see Expression Language later.
1. <%@ page isELIgnored="true" %>//Now EL will be ignored

8)isThreadSafe
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2
9454202501,[email protected] 3
Servlet and JSP both are multithreaded.If you want to control this behaviour of JSP page, you
can use isThreadSafe attribute of page directive.The value of isThreadSafe value is true.If you
make it false, the web container will serialize the multiple requests, i.e. it will wait until the JSP
finishes responding to a request before passing another request to it.If you make the value of
isThreadSafe attribute like:

<%@ page isThreadSafe="false" %>

The web container in such a case, will generate the servlet as:

1. public class SimplePage_jsp extends HttpJspBase


2. implements SingleThreadModel{
3. .......
4. }

9)errorPage
The errorPage attribute is used to define the error page, if exception occurs in the
current page, it will be redirected to the error page.

Example of errorPage attribute

1. //index.jsp
2. <html>
3. <body>
4.
5. <%@ page errorPage="myerrorpage.jsp" %>
6.
7. <%= 100/0 %>
8.
9. </body>
10. </html>

10)isErrorPage
The isErrorPage attribute is used to declare that the current page is the error page.

Note: The exception object can only be used in the error page.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 4
Example of isErrorPage attribute

1. //myerrorpage.jsp
2. <html>
3. <body>
4.
5. <%@ page isErrorPage="true" %>
6.
7. Sorry an exception occured!<br/>
8. The exception is: <%= exception %>
9.
10. </body>
11. </html>

Exception Handling in JSP


The exception is normally an object that is thrown at runtime. Exception Handling is
the process to handle the runtime errors. There may occur exception any time in your
web application. So handling exceptions is a safer side for the web developer. In JSP,
there are two ways to perform exception handling:

1. By errorPage and isErrorPage attributes of page directive


2. By <error-page> element in web.xml file

Example of exception handling in jsp by the elements of page


directive
In this case, you must define and create a page to handle the exceptions, as in the
error.jsp page. The pages where may occur exception, define the errorPage attribute
of page directive, as in the process.jsp page.

There are 3 files:

o index.jsp for input values


o process.jsp for dividing the two numbers and displaying the result

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 5
o error.jsp for handling the exception

index.jsp

1. <form action="process.jsp">
2. No1:<input type="text" name="n1" /><br/><br/>
3. No1:<input type="text" name="n2" /><br/><br/>
4. <input type="submit" value="divide"/>
5. </form>

process.jsp

1. <%@ page errorPage="error.jsp" %>


2. <%
3.
4. String num1=request.getParameter("n1");
5. String num2=request.getParameter("n2");
6.
7. int a=Integer.parseInt(num1);
8. int b=Integer.parseInt(num2);
9. int c=a/b;
10. out.print("division of numbers is: "+c);
11.
12. %>

error.jsp

1. <%@ page isErrorPage="true" %>


2.
3. <h3>Sorry an exception occured!</h3>
4.
5. Exception is: <%= exception %>
download this example

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 6
Output of this example:

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 7
Jsp Include Directive
1. Include directive
2. Advantage of Include directive
3. Example of include directive

The include directive is used to include the contents of any resource it may be jsp file,
html file or text file. The include directive includes the original content of the included
resource at page translation time (the jsp page is translated only once so it will be
better to include static resource).

Advantage of Include directive


NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2
9454202501,[email protected] 8
Code Reusability

Syntax of include directive

1. <%@ include file="resourceName" %>

Example of include directive


In this example, we are including the content of the header.html file. To run this
example you must create an header.html file.

1. <html>
2. <body>
3. <%@ include file="header.html" %>
4. Today is: <%= java.util.Calendar.getInstance().getTime() %>
5. </body>
6. </html>

Note: The include directive includes the original content, so the actual page size grows at
runtime.

JSP Taglib directive


1. JSP Taglib directive
2. Example of JSP Taglib directive

The JSP taglib directive is used to define a tag library that defines many tags. We use
the TLD (Tag Library Descriptor) file to define the tags. In the custom tag section we
will use this tag so it will be better to learn it in custom tag.

Syntax JSP Taglib directive

1. <%@ taglib uri="uriofthetaglibrary" prefix="prefixoftaglibrary" %>

Example of JSP Taglib directive


In this example, we are using our tag named currentDate. To use this tag we must
specify the taglib directive so the container may get information about the tag.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 2


9454202501,[email protected] 9
1. <html>
2. <body>
3. <%@ taglib uri="http://www.javatpoint.com/tags" prefix="mytag" %>
4. <mytag:currentDate/>
5. </body>
6. </html>

JSP Action Tags


There are many JSP action tags or elements. Each JSP action tag is used to perform
some specific tasks.

The action tags are used to control the flow between pages and to use Java Bean. The
Jsp action tags are given below.

JSP Action Description


Tags

jsp:forward forwards the request and response to another resource.

jsp:include includes another resource.

jsp:useBean creates or locates bean object.

jsp:setProperty sets the value of property in bean object.

jsp:getProperty prints the value of property of the bean.

jsp:plugin embeds another components such as applet.

jsp:param sets the parameter value. It is used in forward and include mostly.

jsp:fallback can be used to print the message if plugin is working. It is used in


jsp:plugin.

The jsp:useBean, jsp:setProperty and jsp:getProperty tags are used for bean
development. So we will see these tags in bean developement.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 0
jsp:forward action tag
The jsp:forward action tag is used to forward the request to another resource it may
be jsp, html or another resource.

Syntax of jsp:forward action tag without parameter

1. <jsp:forward page="relativeURL | <%= expression %>" />

Syntax of jsp:forward action tag with parameter

1. <jsp:forward page="relativeURL | <%= expression %>">


2. <jsp:param name="parametername" value="parametervalue | <%=expression%>" /
>
3. </jsp:forward>

Example of jsp:forward action tag without parameter


In this example, we are simply forwarding the request to the printdate.jsp file.

index.jsp

1. <html>
2. <body>
3. <h2>this is index page</h2>
4.
5. <jsp:forward page="printdate.jsp" />
6. </body>
7. </html>

printdate.jsp

1. <html>
2. <body>
3. <% out.print("Today is:"+java.util.Calendar.getInstance().getTime()); %>
4. </body>
5. </html>
download this example

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 1
Example of jsp:forward action tag with parameter
In this example, we are forwarding the request to the printdate.jsp file with parameter
and printdate.jsp file prints the parameter value with date and time.

index.jsp

1. <html>
2. <body>
3. <h2>this is index page</h2>
4.
5. <jsp:forward page="printdate.jsp" >
6. <jsp:param name="name" value="javatpoint.com" />
7. </jsp:forward>
8.
9. </body>
10. </html>

printdate.jsp

1. <html>
2. <body>
3.
4. <% out.print("Today is:"+java.util.Calendar.getInstance().getTime()); %>
5. <%= request.getParameter("name") %>
6.
7. </body>
8. </html>

jsp:include action tag


The jsp:include action tag is used to include the content of another resource it may
be jsp, html or servlet.

The jsp include action tag includes the resource at request time so it is better for
dynamic pages because there might be changes in future.

The jsp:include tag can be used to include static as well as dynamic pages.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 2
Advantage of jsp:include action tag
Code reusability : We can use a page many times such as including header and footer
pages in all pages. So it saves a lot of time.

Difference between jsp include directive and include


action

JSP include directive JSP include action

includes resource at translation time. includes resource at request time.

better for static pages. better for dynamic pages.

includes the original content in the generated servlet. calls the include method.

Syntax of jsp:include action tag without parameter

1. <jsp:include page="relativeURL | <%= expression %>" />

Syntax of jsp:include action tag with parameter

1. <jsp:include page="relativeURL | <%= expression %>">


2. <jsp:param name="parametername" value="parametervalue | <%=expression%>" /
>
3. </jsp:include>

Example of jsp:include action tag without parameter


NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3
9454202501,[email protected] 3
In this example, index.jsp file includes the content of the printdate.jsp file.

File: index.jsp
1. <h2>this is index page</h2>
2.
3. <jsp:include page="printdate.jsp" />
4.
5. <h2>end section of index page</h2>
File: printdate.jsp
1. <% out.print("Today is:"+java.util.Calendar.getInstance().getTime()); %>
download this example

JavaBean
A JavaBean is a Java class that should follow the following conventions:

o It should have a no-arg constructor.


o It should be Serializable.
o It should provide methods to set and get the values of the properties, known as getter
and setter methods.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 4
Why use JavaBean?
According to Java white paper, it is a reusable software component. A bean
encapsulates many objects into one object so that we can access this object from
multiple places. Moreover, it provides easy maintenance.

Simple example of JavaBean class


1. //Employee.java
2. package mypack;
3. public class Employee implements java.io.Serializable{
4. private int id;
5. private String name;
6. public Employee(){}
7. public void setId(int id){this.id=id;}
8. public int getId(){return id;}
9. public void setName(String name){this.name=name;}
10. public String getName(){return name;}
11. }
How to access the JavaBean class?
To access the JavaBean class, we should use getter and setter methods.

1. package mypack;
2. public class Test{
3. public static void main(String args[]){
4. Employee e=new Employee();//object is created
5. e.setName("Arjun");//setting value to the object
6. System.out.println(e.getName());
7. }}

Note: There are two ways to provide values to the object. One way is by constructor and
second is by setter method.

JavaBean Properties
A JavaBean property is a named feature that can be accessed by the user of the object.
The feature can be of any Java data type, containing the classes that you define.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 5
A JavaBean property may be read, write, read-only, or write-only. JavaBean features
are accessed through two methods in the JavaBean's implementation class:

1. getPropertyName ()

For example, if the property name is firstName, the method name would be
getFirstName() to read that property. This method is called the accessor.

2. setPropertyName ()

For example, if the property name is firstName, the method name would be
setFirstName() to write that property. This method is called the mutator.

Advantages of JavaBean
The following are the advantages of JavaBean:/p>

o The JavaBean properties and methods can be exposed to another application.


o It provides an easiness to reuse the software components.

Disadvantages of JavaBean
The following are the disadvantages of JavaBean:

o JavaBeans are mutable. So, it can't take advantages of immutable objects.


o Creating the setter and getter method for each property separately may lead to the
boilerplate code.

jsp:useBean action tag


1. jsp:useBean action tag
2. Syntax of jsp:useBean action tag
3. Attributes and Usage of jsp:useBean action tag
4. Simple example of jsp:useBean action tag

The jsp:useBean action tag is used to locate or instantiate a bean class. If bean object
of the Bean class is already created, it doesn't create the bean depending on the scope.
But if object of bean is not created, it instantiates the bean.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 6
Syntax of jsp:useBean action tag
1. <jsp:useBean id= "instanceName" scope= "page | request | session | application"
2. class= "packageName.className" type= "packageName.className"
3. beanName="packageName.className | <%= expression >" >
4. </jsp:useBean>

Attributes and Usage of jsp:useBean action tag

1. id: is used to identify the bean in the specified scope.


2. scope: represents the scope of the bean. It may be page, request, session or
application. The default scope is page.
o page: specifies that you can use this bean within the JSP page. The default
scope is page.
o request: specifies that you can use this bean from any JSP page that processes
the same request. It has wider scope than page.
o session: specifies that you can use this bean from any JSP page in the same
session whether processes the same request or not. It has wider scope than
request.
o application: specifies that you can use this bean from any JSP page in the same
application. It has wider scope than session.
3. class: instantiates the specified bean class (i.e. creates an object of the bean class) but
it must have no-arg or no constructor and must not be abstract.
4. type: provides the bean a data type if the bean already exists in the scope. It is mainly
used with class or beanName attribute. If you use it without class or beanName, no
bean is instantiated.
5. beanName: instantiates the bean using the java.beans.Beans.instantiate() method.

Simple example of jsp:useBean action tag


In this example, we are simply invoking the method of the Bean class.

For the example of setProperty, getProperty and useBean tags, visit next page.

Calculator.java (a simple Bean class)

1. package com.javatpoint;
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3
9454202501,[email protected] 7
2. public class Calculator{
3. public int cube(int n){return n*n*n;}
4. }

index.jsp file

1. <jsp:useBean id="obj" class="com.javatpoint.Calculator"/>


2. <%
3. int m=obj.cube(5);
4. out.print("cube of 5 is "+m);
5. %>

jsp:setProperty and jsp:getProperty action tags


The setProperty and getProperty action tags are used for developing web application
with Java Bean. In web devlopment, bean class is mostly used because it is a reusable
software component that represents data.

The jsp:setProperty action tag sets a property value or values in a bean using the setter
method.

Syntax of jsp:setProperty action tag


1. <jsp:setProperty name="instanceOfBean" property= "*" |
2. property="propertyName" param="parameterName" |
3. property="propertyName" value="{ string | <%= expression %>}"
4. />

Example of jsp:setProperty action tag if you have to set all the values of
incoming request in the bean

1. <jsp:setProperty name="bean" property="*" />

Example of jsp:setProperty action tag if you have to set value of the incoming
specific property

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 8
1. <jsp:setProperty name="bean" property="username" />

Example of jsp:setProperty action tag if you have to set a specific value in the
property

1. <jsp:setProperty name="bean" property="username" value="Kumar" />

jsp:getProperty action tag


The jsp:getProperty action tag returns the value of the property.

Syntax of jsp:getProperty action tag

1. <jsp:getProperty name="instanceOfBean" property="propertyName" />

Simple example of jsp:getProperty action tag

1. <jsp:getProperty name="obj" property="name" />

Example of bean development in JSP


In this example there are 3 pages: VideoForward Skip 10s

o index.html for input of values


o welocme.jsp file that sets the incoming values to the bean object and prints the one
value
o User.java bean class that have setter and getter methods

index.html

1. <form action="process.jsp" method="post">


2. Name:<input type="text" name="name"><br>
3. Password:<input type="password" name="password"><br>
4. Email:<input type="text" name="email"><br>
5. <input type="submit" value="register">
6. </form>

process.jsp

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 3


9454202501,[email protected] 9
1. <jsp:useBean id="u" class="org.sssit.User"></jsp:useBean>
2. <jsp:setProperty property="*" name="u"/>
3.
4. Record:<br>
5. <jsp:getProperty property="name" name="u"/><br>
6. <jsp:getProperty property="password" name="u"/><br>
7. <jsp:getProperty property="email" name="u" /><br>

User.java

1. package org.sssit;
2.
3. public class User {
4. private String name,password,email;
5. //setters and getters
6. }
download this example

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 0
Reusing Bean in Multiple Jsp Pages
Let's see the simple example, that prints the data of bean object in two jsp pages.

index.jsp

Same as above.

User.java

Same as above.

process.jsp
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4
9454202501,[email protected] 1
1. <jsp:useBean id="u" class="org.sssit.User" scope="session"></jsp:useBean>
2. <jsp:setProperty property="*" name="u"/>
3.
4. Record:<br>
5. <jsp:getProperty property="name" name="u"/><br>
6. <jsp:getProperty property="password" name="u"/><br>
7. <jsp:getProperty property="email" name="u" /><br>
8.
9. <a href="second.jsp">Visit Page</a>

second.jsp

1. <jsp:useBean id="u" class="org.sssit.User" scope="session"></jsp:useBean>


2. Record:<br>
3. <jsp:getProperty property="name" name="u"/><br>
4. <jsp:getProperty property="password" name="u"/><br>
5. <jsp:getProperty property="email" name="u" /><br>

Using variable value in setProperty tag


In some case, you may get some value from the database, that is to be set in the bean
object, in such case, you need to use expression tag. For example:

process.jsp

1. <jsp:useBean id="u" class="org.sssit.User"></jsp:useBean>


2. <%
3. String name="arjun";
4. %>
5. <jsp:setProperty property="name" name="u" value="<%=name %>"/>
6. Record:<br>
7. <jsp:getProperty property="name" name="u"/><br>

Example of JSP Custom Tag

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 2
In this example, we are going to create a custom tag that prints the current date
and time. We are performing action at the start of tag.

For creating any custom tag, we need to follow following steps:

1. Create the Tag handler class and perform action at the start or at the end of
the tag.
2. Create the Tag Library Descriptor (TLD) file and define tags
3. Create the JSP file that uses the Custom tag defined in the TLD file

Understanding flow of custom tag in jsp

1) Create the Tag handler class

To create the Tag Handler, we are inheriting the TagSupport class and overriding its
method doStartTag().To write data for the jsp, we need to use the JspWriter class.

The PageContext class provides getOut() method that returns the instance of
JspWriter class. TagSupport class provides instance of pageContext bydefault.

File: MyTagHandler.java
1. package com.javatpoint.sonoo;
2. import java.util.Calendar;
3. import javax.servlet.jsp.JspException;
4. import javax.servlet.jsp.JspWriter;
5. import javax.servlet.jsp.tagext.TagSupport;
6. public class MyTagHandler extends TagSupport{
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4
9454202501,[email protected] 3
7.
8. public int doStartTag() throws JspException {
9. JspWriter out=pageContext.getOut();//returns the instance of JspWriter
10. try{
11. out.print(Calendar.getInstance().getTime());//printing date and time using JspWrite
r
12. }catch(Exception e){System.out.println(e);}
13. return SKIP_BODY;//will not evaluate the body content of the tag
14. }
15. }

2) Create the TLD file

Tag Library Descriptor (TLD) file contains information of tag and Tag Hander classes.
It must be contained inside the WEB-INF directory.

File: mytags.tld
1. <?xml version="1.0" encoding="ISO-8859-1" ?>
2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
5.
6. <taglib>
7.
8. <tlib-version>1.0</tlib-version>
9. <jsp-version>1.2</jsp-version>
10. <short-name>simple</short-name>
11. <uri>http://tomcat.apache.org/example-taglib</uri>
12.
13. <tag>
14. <name>today</name>
15. <tag-class>com.javatpoint.sonoo.MyTagHandler</tag-class>
16. </tag>
17. </taglib>

3) Create the JSP file

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 4
Let's use the tag in our jsp file. Here, we are specifying the path of tld file directly. But
it is recommended to use the uri name instead of full path of tld file. We will learn
about uri later.

It uses taglib directive to use the tags defined in the tld file.

File: index.jsp
1. <%@ taglib uri="WEB-INF/mytags.tld" prefix="m" %>
2. Current Date and Time is: <m:today/>
download this example

Output

Attributes in JSP Custom Tag


1. Attributes in JSP Custom Tag
2. Example to use attribute in JSP Custom Tag

There can be defined too many attributes for any custom tag. To define the attribute,
you need to perform two tasks:

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 5
o Define the property in the TagHandler class with the attribute name and define the
setter method
o define the attribute element inside the tag element in the TLD file

Let's understand the attribute by the tag given below:

1. <m:cube number="4"></m:cube>

Here m is the prefix, cube is the tag name and number is the attribute.

Simple example of attribute in JSP Custom Tag


In this example, we are going to use the cube tag which return the cube of any given
number. Here, we are defining the number attribute for the cube tag. We are using the
three file here:

 index.jsp
 CubeNumber.java
 mytags.tld

index.jsp
1. <%@ taglib uri="WEB-INF/mytags.tld" prefix="m" %>
2. Cube of 4 is: <m:cube number="4"></m:cube>
CubeNumber.java

1. package com.javatpoint.taghandler;
2. import javax.servlet.jsp.JspException;
3. import javax.servlet.jsp.JspWriter;
4. import javax.servlet.jsp.tagext.TagSupport;
5.
6. public class CubeNumber extends TagSupport{
7. private int number;
8.
9. public void setNumber(int number) {
10. this.number = number;
11. }
12.
13. public int doStartTag() throws JspException {

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 6
14. JspWriter out=pageContext.getOut();
15. try{
16. out.print(number*number*number);
17. }catch(Exception e){e.printStackTrace();}
18.
19. return SKIP_BODY;
20. }
21. }
mytags.tld

1. <?xml version="1.0" encoding="ISO-8859-1" ?>


2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
5.
6. <taglib>
7. <tlib-version>1.0</tlib-version>
8. <jsp-version>1.2</jsp-version>
9. <short-name>simple</short-name>
10. <uri>http://tomcat.apache.org/example-taglib</uri>
11. <description>A simple tab library for the examples</description>
12.
13. <tag>
14. <name>cube</name>
15. <tag-class>com.javatpoint.taghandler.CubeNumber</tag-class>
16. <attribute>
17. <name>number</name>
18. <required>true</required>
19. </attribute>
20. </tag>
21. </taglib>

Output

1. Cube of 4 is: 64
download this example

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 7
JSP Custom Tag attribute example with database
Let's create a custom tag that prints a particular record of table for the given table
name and id.

So, you have to have two properties in the tag handler class.

PrintRecord.java

1. package com.javatpoint;
2. import javax.servlet.jsp.JspException;
3. import javax.servlet.jsp.JspWriter;
4. import javax.servlet.jsp.tagext.TagSupport;
5. import java.sql.*;
6.
7. public class PrintRecord extends TagSupport{
8. private String id;
9. private String table;
10.
11. public void setId(String id) {
12. this.id = id;
13. }
14. public void setTable(String table) {
15. this.table = table;
16. }
17.
18. public int doStartTag()throws JspException{
19. JspWriter out=pageContext.getOut();
20. try{
21. Class.forName("oracle.jdbc.driver.OracleDriver");
22. Connection con=DriverManager.getConnection(
23. "jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
24. PreparedStatement ps=con.prepareStatement("select * from "+table+" where id=?");
25. ps.setInt(1,Integer.parseInt(id));
26. ResultSet rs=ps.executeQuery();
27. if(rs!=null){
28. ResultSetMetaData rsmd=rs.getMetaData();
29. int totalcols=rsmd.getColumnCount();

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 8
30. //column name
31. out.write("<table border='1'>");
32. out.write("<tr>");
33. for(int i=1;i<=totalcols;i++){
34. out.write("<th>"+rsmd.getColumnName(i)+"</th>");
35. }
36. out.write("</tr>");
37. //column value
38.
39. if(rs.next()){
40. out.write("<tr>");
41. for(int i=1;i<=totalcols;i++){
42. out.write("<td>"+rs.getString(i)+"</td>");
43. }
44. out.write("</tr>");
45.
46. }else{
47. out.write("Table or Id doesn't exist");
48. }
49. out.write("</table>");
50.
51. }
52. con.close();
53. }catch(Exception e){System.out.println(e);}
54. return SKIP_BODY;
55. }
56. }
m.tld

1. <?xml version="1.0" encoding="ISO-8859-1" ?>


2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
5.
6. <taglib>
7.
8. <tlib-version>1.2</tlib-version>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 4


9454202501,[email protected] 9
9. <jsp-version>2.0</jsp-version>
10. <short-name>c</short-name>
11. <uri>javatpoint</uri>
12.
13. <tag>
14. <name>printRecord</name>
15. <tag-class>com.javatpoint.PrintRecord</tag-class>
16. <attribute>
17. <name>id</name>
18. <required>true</required>
19. </attribute>
20. <attribute>
21. <name>table</name>
22. <required>true</required>
23. </attribute>
24.
25. </tag>
26. </taglib>
index.jsp

1. <%@ taglib uri="javatpoint" prefix="j" %>


2. <j:printRecord table="user874" id="1"></j:printRecord>

Output

Iteration using JSP Custom Tag


1. Iteration using JSP Custom Tag
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5
9454202501,[email protected] 0
2. Example of Iteration using JSP Custom Tag

We can iterate the body content of any tag using the doAfterBody() method
of IterationTag interface.

Here we are going to use the TagSupport class which implements the IterationTag
interface. For iterating the body content, we need to use
the EVAL_BODY_AGAIN constant in the doAfterBody() method.

Example of Iteration using JSP Custom Tag


In this example, we are going to use the attribute in the custom tag, which returns the
power of any given number. We have created three files here

o index.jsp
o PowerNumber.java
o mytags.tld

index.jsp
1. <%@ taglib uri="WEB-INF/mytags.tld" prefix="m" %>
2.
3. 3 ^ 5 = <m:power number="3" power="5">
4. body
5. </m:power>

PowerNumber.java
1. package com.javatpoint.taghandler;
2.
3. import javax.servlet.jsp.JspException;
4. import javax.servlet.jsp.JspWriter;
5. import javax.servlet.jsp.tagext.TagSupport;
6.
7. public class PowerNumber extends TagSupport{
8. private int number;
9. private int power;
10. private static int counter;
11. private static int result=1;
12.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 1
13. public void setPower(int power) {
14. this.power = power;
15. }
16.
17. public void setNumber(int number) {
18. this.number = number;
19. }
20.
21. public int doStartTag() throws JspException {
22. return EVAL_BODY_INCLUDE;
23. }
24.
25. public int doAfterBody() {
26. counter++;
27. result *= number;
28. if (counter==power)
29. return SKIP_BODY;
30. else
31. return EVAL_BODY_AGAIN;
32. }
33.
34. public int doEndTag() throws JspException {
35. JspWriter out=pageContext.getOut();
36. try{
37. out.print(result);
38. }catch(Exception e){e.printStackTrace();}
39.
40. return EVAL_PAGE;
41. }
42. }

mytags.tld
1. <?xml version="1.0" encoding="ISO-8859-1" ?>
2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 2
5.
6. <taglib>
7. <tlib-version>1.0</tlib-version>
8. <jsp-version>1.2</jsp-version>
9. <short-name>simple</short-name>
10. <uri>http://tomcat.apache.org/example-taglib</uri>
11. <description>A simple tab library for the examples</description>
12.
13. <tag>
14. <name>power</name>
15. <tag-class>com.javatpoint.taghandler.PowerNumber</tag-class>
16.
17. <attribute>
18. <name>number</name>
19. <required>true</required>
20. </attribute>
21.
22. <attribute>
23. <name>power</name>
24. <required>true</required>
25. </attribute>
26.
27. </tag>
28. </taglib>

Looping using Iteration Tag (creating tag for loop)


Let's create a loop tag that iterates the body content of this tag.

File: index.jsp
1. <!DOCTYPE html PUBLIC "-
//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

2. <html>
3. <head>
4. <title>Insert title here</title>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 3
5. </head>
6. <body>
7.
8. <%@taglib prefix="m" uri="sssuri" %>
9. <m:loop end="5" start="1">
10. <p>My Name is khan</p>
11. </m:loop>
12.
13. </body>
14. </html>
File: mytags.tld
1. <?xml version="1.0" encoding="ISO-8859-1" ?>
2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
5. <taglib>
6. <tlib-version>1.0</tlib-version>
7. <jsp-version>1.2</jsp-version>
8. <short-name>abc</short-name>
9.
10. <uri>sssuri</uri>
11. <tag>
12. <name>loop</name>
13. <tag-class>com.javatpoint.customtag.Loop</tag-class>
14.
15. <attribute>
16. <name>start</name>
17. <required>true</required>
18. </attribute>
19.
20. <attribute>
21. <name>end</name>
22. <required>true</required>
23. </attribute>
24. </tag>
25.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 4
26. </taglib>
File: Loop.java
1. package com.javatpoint.customtag;
2. import javax.servlet.jsp.JspException;
3. import javax.servlet.jsp.tagext.TagSupport;
4.
5. public class Loop extends TagSupport{
6. private int start=0;
7. private int end=0;
8.
9. public void setStart(int start) {
10. this.start = start;
11. }
12. public void setEnd(int end) {
13. this.end = end;
14. }
15.
16. @Override
17. public int doStartTag() throws JspException {
18. return EVAL_BODY_INCLUDE;
19. }
20.
21. @Override
22. public int doAfterBody() throws JspException {
23. if(start<end){
24. start++;
25. return EVAL_BODY_AGAIN;
26. }else{
27. return SKIP_BODY;
28. }
29.
30. }
31.
32.
33. }
File: web.xml

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 5
1. <?xml version="1.0" encoding="UTF-8"?>
2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.co
m/xml/ns/javaee/web-
app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.
com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
3.
4. <jsp-config>
5. <taglib>
6. <taglib-uri>sssuri</taglib-uri>
7. <taglib-location>/WEB-INF/mytags.tld</taglib-location>
8. </taglib>
9. </jsp-config>
10.
11. </web-app>
download this example (developed using Eclipse ide)

Output

Custom URI in JSP Custom Tag

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 6
1. Custom URI in JSP Custom Tag
2. Example to use Custom URI in JSP Custom Tag

We can use the custom URI, to tell the web container about the tld file. In such case,
we need to define the taglib element in the web.xml. The web container gets the
information about the tld file from the web.xml file for the specified URI.

Example to use custom URI in JSP Custom Tag


In this example, we are going to use the custom uri in the JSP file. For this application,
we need to focus on 4 files.

o index.jsp
o web.xml
o mytags.tld
o PrintDate.java

index.jsp
1. <%@ taglib uri="mytags" prefix="m" %>
2. Today is: <m:today></m:today>

web.xml
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE web-app
3. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
4. "http://java.sun.com/dtd/web-app_2_3.dtd">
5.
6. <web-app>
7.
8. <jsp-config>
9. <taglib>
10. <taglib-uri>mytags</taglib-uri>
11. <taglib-location>/WEB-INF/mytags.tld</taglib-location>
12. </taglib>
13. </jsp-config>
14.
15. </web-app>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5


9454202501,[email protected] 7
mytags.tld
1. <?xml version="1.0" encoding="ISO-8859-1" ?>
2. <!DOCTYPE taglib
3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
4. "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
5.
6. <taglib>
7. <tlib-version>1.0</tlib-version>
8. <jsp-version>1.2</jsp-version>
9. <short-name>simple</short-name>
10. <uri>mytags</uri>
11. <description>A simple tab library for the examples</description>
12. <tag>
13. <name>today</name>
14. <tag-class>com.javatpoint.taghandler.PrintDate</tag-class>
15. </tag>
16. </taglib>

PrintDate.java
1. package com.javatpoint.taghandler;
2.
3. import javax.servlet.jsp.JspException;
4. import javax.servlet.jsp.JspWriter;
5. import javax.servlet.jsp.tagext.TagSupport;
6. public class PrintDate extends TagSupport{
7. public int doStartTag() throws JspException {
8. JspWriter out=pageContext.getOut();
9. try{
10. out.print(java.util.Calendar.getInstance().getTime());
11. }catch(Exception e){e.printStackTrace();}
12. return SKIP_BODY;
13. }
14. }

Pagination in JSP
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5
9454202501,[email protected] 8
We can create pagination example in JSP easily. It is required if you have to display
many records. Displaying many records in a single page may take time, so it is better
to break the page into parts. To do so, we create pagination application.

In this pagination example, we are using MySQL database to fetch records.

We have created "emp" table in "test" database. The emp table has three fields: id,
name and salary. Either create table and insert records manually or import our sql file.

index.jsp

1. <a href="view.jsp?page=1">View Employees</a>

view.jsp

1. <%@ page import="java.util.*,com.javatpoint.dao.*,com.javatpoint.beans.*" %>


2. <%
3. String spageid=request.getParameter("page");
4. int pageid=Integer.parseInt(spageid);
5. int total=5;
6. if(pageid==1){}
7. else{
8. pageid=pageid-1;
9. pageid=pageid*total+1;
10. }
11. List<Emp> list=EmpDao.getRecords(pageid,total);
12.
13. out.print("<h1>Page No: "+spageid+"</h1>");
14. out.print("<table border='1' cellpadding='4' width='60%'>");
15. out.print("<tr><th>Id</th><th>Name</th><th>Salary</th>");
16. for(Emp e:list){
17. out.print("<tr><td>"+e.getId()+"</td><td>"+e.getName()+"</td>
18. <td>"+e.getSalary()+"</td></tr>");
19. }
20. out.print("</table>");
21. %>
22. <a href="view.jsp?page=1">1</a>
23. <a href="view.jsp?page=2">2</a>
24. <a href="view.jsp?page=3">3</a>
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 5
9454202501,[email protected] 9
Emp.java

1. package com.javatpoint.beans;
2.
3. public class Emp {
4. private int id;
5. private String name;
6. private float salary;
7. //getters and setters
8. }

EmpDao.java

1. package com.javatpoint.dao;
2. import com.javatpoint.beans.*;
3. import java.sql.*;
4. import java.util.ArrayList;
5. import java.util.List;
6. public class EmpDao {
7.
8. public static Connection getConnection(){
9. Connection con=null;
10. try{
11. Class.forName("com.mysql.jdbc.Driver");
12. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","","");
13. }catch(Exception e){System.out.println(e);}
14. return con;
15. }
16.
17. public static List<Emp> getRecords(int start,int total){
18. List<Emp> list=new ArrayList<Emp>();
19. try{
20. Connection con=getConnection();
21. PreparedStatement ps=con.prepareStatement(
22. "select * from emp limit "+(start-1)+","+total);
23. ResultSet rs=ps.executeQuery();
24. while(rs.next()){

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 0
25. Emp e=new Emp();
26. e.setId(rs.getInt(1));
27. e.setName(rs.getString(2));
28. e.setSalary(rs.getFloat(3));
29. list.add(e);
30. }
31. con.close();
32. }catch(Exception e){System.out.println(e);}
33. return list;
34. }
35. }

CRUD Example
Directory Structure in Eclipse

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 1
index.jsp

1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5. <title>JSP CRUD Example</title>
6. </head>
7. <body>
8. <h1>JSP CRUD Example</h1>
9. <a href="adduserform.jsp">Add User</a>
10. <a href="viewusers.jsp">View Users</a>
11.
12. </body>
13. </html>
adduserform.jsp

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 2
1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5. <title>Add User Form</title>
6. </head>
7. <body>
8.
9. <jsp:include page="userform.html"></jsp:include>
10.
11. </body>
12. </html>
userform.html

1. <a href="viewusers.jsp">View All Records</a><br/>


2.
3. <h1>Add New User</h1>
4. <form action="adduser.jsp" method="post">
5. <table>
6. <tr><td>Name:</td><td><input type="text" name="name"/></td></tr>
7. <tr><td>Password:</td><td>
8. <input type="password" name="password"/></td></tr>
9. <tr><td>Email:</td><td><input type="email" name="email"/></td></tr>
10. <tr><td>Sex:</td><td>
11. <input type="radio" name="sex" value="male"/>Male
12. <input type="radio" name="sex" value="female"/>Female </td></tr>
13. <tr><td>Country:</td><td>
14. <select name="country" style="width:155px">
15. <option>India</option>
16. <option>Pakistan</option>
17. <option>Afghanistan</option>
18. <option>Berma</option>
19. <option>Other</option>
20. </select>
21. </td></tr>
22. <tr><td colspan="2"><input type="submit" value="Add User"/></td></tr>
23. </table>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 3
24. </form>
adduser.jsp

1. <%@page import="com.javatpoint.dao.UserDao"%>
2. <jsp:useBean id="u" class="com.javatpoint.bean.User"></jsp:useBean>
3. <jsp:setProperty property="*" name="u"/>
4.
5. <%
6. int i=UserDao.save(u);
7. if(i>0){
8. response.sendRedirect("adduser-success.jsp");
9. }else{
10. response.sendRedirect("adduser-error.jsp");
11. }
12. %>
User.java

1. package com.javatpoint.bean;
2. public class User {
3. private int id;
4. private String name,password,email,sex,country;
5. //generate getters and setters
6. }
UserDao.java

1. package com.javatpoint.dao;
2. import java.sql.*;
3. import java.util.ArrayList;
4. import java.util.List;
5. import com.javatpoint.bean.User;
6. public class UserDao {
7.
8. public static Connection getConnection(){
9. Connection con=null;
10. try{
11. Class.forName("com.mysql.jdbc.Driver");
12. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","","");
13. }catch(Exception e){System.out.println(e);}

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 4
14. return con;
15. }
16. public static int save(User u){
17. int status=0;
18. try{
19. Connection con=getConnection();
20. PreparedStatement ps=con.prepareStatement(
21. "insert into register(name,password,email,sex,country) values(?,?,?,?,?)");
22. ps.setString(1,u.getName());
23. ps.setString(2,u.getPassword());
24. ps.setString(3,u.getEmail());
25. ps.setString(4,u.getSex());
26. ps.setString(5,u.getCountry());
27. status=ps.executeUpdate();
28. }catch(Exception e){System.out.println(e);}
29. return status;
30. }
31. public static int update(User u){
32. int status=0;
33. try{
34. Connection con=getConnection();
35. PreparedStatement ps=con.prepareStatement(
36. "update register set name=?,password=?,email=?,sex=?,country=? where id=?");
37. ps.setString(1,u.getName());
38. ps.setString(2,u.getPassword());
39. ps.setString(3,u.getEmail());
40. ps.setString(4,u.getSex());
41. ps.setString(5,u.getCountry());
42. ps.setInt(6,u.getId());
43. status=ps.executeUpdate();
44. }catch(Exception e){System.out.println(e);}
45. return status;
46. }
47. public static int delete(User u){
48. int status=0;
49. try{

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 5
50. Connection con=getConnection();
51. PreparedStatement ps=con.prepareStatement("delete from register where id=?");
52. ps.setInt(1,u.getId());
53. status=ps.executeUpdate();
54. }catch(Exception e){System.out.println(e);}
55.
56. return status;
57. }
58. public static List<User> getAllRecords(){
59. List<User> list=new ArrayList<User>();
60.
61. try{
62. Connection con=getConnection();
63. PreparedStatement ps=con.prepareStatement("select * from register");
64. ResultSet rs=ps.executeQuery();
65. while(rs.next()){
66. User u=new User();
67. u.setId(rs.getInt("id"));
68. u.setName(rs.getString("name"));
69. u.setPassword(rs.getString("password"));
70. u.setEmail(rs.getString("email"));
71. u.setSex(rs.getString("sex"));
72. u.setCountry(rs.getString("country"));
73. list.add(u);
74. }
75. }catch(Exception e){System.out.println(e);}
76. return list;
77. }
78. public static User getRecordById(int id){
79. User u=null;
80. try{
81. Connection con=getConnection();
82. PreparedStatement ps=con.prepareStatement("select * from register where id=?");
83. ps.setInt(1,id);
84. ResultSet rs=ps.executeQuery();
85. while(rs.next()){

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 6
86. u=new User();
87. u.setId(rs.getInt("id"));
88. u.setName(rs.getString("name"));
89. u.setPassword(rs.getString("password"));
90. u.setEmail(rs.getString("email"));
91. u.setSex(rs.getString("sex"));
92. u.setCountry(rs.getString("country"));
93. }
94. }catch(Exception e){System.out.println(e);}
95. return u;
96. }
97. }
adduser-success.jsp

1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5. <title>Add User Success</title>
6. </head>
7. <body>
8.
9. <p>Record successfully saved!</p>
10. <jsp:include page="userform.html"></jsp:include>
11.
12. </body>
13. </html>
adduser-error.jsp

1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5. <title>Add User Error</title>
6. </head>
7. <body>
8.

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 7
9. <p>Sorry, an error occurred!</p>
10. <jsp:include page="userform.html"></jsp:include>
11.
12. </body>
13. </html>
viewusers.jsp

1. <!DOCTYPE html>
2.
3. <html>
4. <head>
5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6. <title>View Users</title>
7. </head>
8. <body>
9.
10. <%@page import="com.javatpoint.dao.UserDao,com.javatpoint.bean.*,java.util.*"%>
11. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
12.
13. <h1>Users List</h1>
14.
15. <%
16. List<User> list=UserDao.getAllRecords();
17. request.setAttribute("list",list);
18. %>
19.
20. <table border="1" width="90%">
21. <tr><th>Id</th><th>Name</th><th>Password</th><th>Email</th>
22. <th>Sex</th><th>Country</th><th>Edit</th><th>Delete</th></tr>
23. <c:forEach items="${list}" var="u">
24. <tr><td>${u.getId()}</td><td>${u.getName()}</td><td>${u.getPassword()}</td>
25. <td>${u.getEmail()}</td><td>${u.getSex()}</td><td>${u.getCountry()}</td>
26. <td><a href="editform.jsp?id=${u.getId()}">Edit</a></td>
27. <td><a href="deleteuser.jsp?id=${u.getId()}">Delete</a></td></tr>
28. </c:forEach>
29. </table>
30. <br/><a href="adduserform.jsp">Add New User</a>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 8
31.
32. </body>
33. </html>
editform.jsp

1. <!DOCTYPE html>
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5. <title>Edit Form</title>
6. </head>
7. <body>
8. <%@page import="com.javatpoint.dao.UserDao,com.javatpoint.bean.User"%>
9.
10. <%
11. String id=request.getParameter("id");
12. User u=UserDao.getRecordById(Integer.parseInt(id));
13. %>
14.
15. <h1>Edit Form</h1>
16. <form action="edituser.jsp" method="post">
17. <input type="hidden" name="id" value="<%=u.getId() %>"/>
18. <table>
19. <tr><td>Name:</td><td>
20. <input type="text" name="name" value="<%= u.getName()%>"/></td></tr>
21. <tr><td>Password:</td><td>
22. <input type="password" name="password" value="<%= u.getPassword()%>"/></td></tr
>
23. <tr><td>Email:</td><td>
24. <input type="email" name="email" value="<%= u.getEmail()%>"/></td></tr>
25. <tr><td>Sex:</td><td>
26. <input type="radio" name="sex" value="male"/>Male
27. <input type="radio" name="sex" value="female"/>Female </td></tr>
28. <tr><td>Country:</td><td>
29. <select name="country">
30. <option>India</option>
31. <option>Pakistan</option>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 6


9454202501,[email protected] 9
32. <option>Afghanistan</option>
33. <option>Berma</option>
34. <option>Other</option>
35. </select>
36. </td></tr>
37. <tr><td colspan="2"><input type="submit" value="Edit User"/></td></tr>
38. </table>
39. </form>
40.
41. </body>
42. </html>
edituser.jsp

1. <%@page import="com.javatpoint.dao.UserDao"%>
2. <jsp:useBean id="u" class="com.javatpoint.bean.User"></jsp:useBean>
3. <jsp:setProperty property="*" name="u"/>
4. <%
5. int i=UserDao.update(u);
6. response.sendRedirect("viewusers.jsp");
7. %>
deleteuser.jsp

1. <%@page import="com.javatpoint.dao.UserDao"%>
2. <jsp:useBean id="u" class="com.javatpoint.bean.User"></jsp:useBean>
3. <jsp:setProperty property="*" name="u"/>
4. <%
5. UserDao.delete(u);
6. response.sendRedirect("viewusers.jsp");
7. %>

Download Project
download CRUD project in JSP

Output

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 0
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7
9454202501,[email protected] 1
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7
9454202501,[email protected] 2
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7
9454202501,[email protected] 3
MVC in JSP
1. MVC in JSP
2. Example of following MVC in JSP

MVC stands for Model View and Controller. It is a design pattern that separates the
business logic, presentation logic and data.

Controller acts as an interface between View and Model. Controller intercepts all the
incoming requests.

Model represents the state of the application i.e. data. It can also have business logic.

View represents the presentaion i.e. UI(User Interface).

Advantage of MVC (Model 2) Architecture

1. Navigation Control is centralized


2. Easy to maintain the large application

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 4
If you new to MVC, please visit Model1 vs Model2 first.

MVC Example in JSP


In this example, we are using servlet as a controller, jsp as a view component, Java
Bean class as a model.

In this example, we have created 5 pages:

o index.jsp a page that gets input from the user.


o ControllerServlet.java a servlet that acts as a controller.
o login-success.jsp and login-error.jsp files acts as view components.
o web.xml file for mapping the servlet.

File: index.jsp
1. <form action="ControllerServlet" method="post">
2. Name:<input type="text" name="name"><br>
3. Password:<input type="password" name="password"><br>
4. <input type="submit" value="login">
5. </form>
File: ControllerServlet
1. package com.javatpoint;
2. import java.io.IOException;
3. import java.io.PrintWriter;
4. import javax.servlet.RequestDispatcher;
NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7
9454202501,[email protected] 5
5. import javax.servlet.ServletException;
6. import javax.servlet.http.HttpServlet;
7. import javax.servlet.http.HttpServletRequest;
8. import javax.servlet.http.HttpServletResponse;
9. public class ControllerServlet extends HttpServlet {
10. protected void doPost(HttpServletRequest request, HttpServletResponse respons
e)
11. throws ServletException, IOException {
12. response.setContentType("text/html");
13. PrintWriter out=response.getWriter();
14.
15. String name=request.getParameter("name");
16. String password=request.getParameter("password");
17.
18. LoginBean bean=new LoginBean();
19. bean.setName(name);
20. bean.setPassword(password);
21. request.setAttribute("bean",bean);
22.
23. boolean status=bean.validate();
24.
25. if(status){
26. RequestDispatcher rd=request.getRequestDispatcher("login-success.jsp");
27. rd.forward(request, response);
28. }
29. else{
30. RequestDispatcher rd=request.getRequestDispatcher("login-error.jsp");
31. rd.forward(request, response);
32. }
33.
34. }
35.
36. @Override
37. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
38. throws ServletException, IOException {
39. doPost(req, resp);

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 6
40. }
41. }
File: LoginBean.java
1. package com.javatpoint;
2. public class LoginBean {
3. private String name,password;
4.
5. public String getName() {
6. return name;
7. }
8. public void setName(String name) {
9. this.name = name;
10. }
11. public String getPassword() {
12. return password;
13. }
14. public void setPassword(String password) {
15. this.password = password;
16. }
17. public boolean validate(){
18. if(password.equals("admin")){
19. return true;
20. }
21. else{
22. return false;
23. }
24. }
25. }
File: login-success.jsp
1. <%@page import="com.javatpoint.LoginBean"%>
2.
3. <p>You are successfully logged in!</p>
4. <%
5. LoginBean bean=(LoginBean)request.getAttribute("bean");
6. out.print("Welcome, "+bean.getName());
7. %>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 7
File: login-error.jsp
1. <p>Sorry! username or password error</p>
2. <%@ include file="index.jsp" %>
File: web.xml
1. <?xml version="1.0" encoding="UTF-8"?>
2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/j
avaee/web-app_2_5.xsd"
4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j
avaee/web-app_3_0.xsd"
5. id="WebApp_ID" version="3.0">
6.
7. <servlet>
8. <servlet-name>s1</servlet-name>
9. <servlet-class>com.javatpoint.ControllerServlet</servlet-class>
10. </servlet>
11. <servlet-mapping>
12. <servlet-name>s1</servlet-name>
13. <url-pattern>/ControllerServlet</url-pattern>
14. </servlet-mapping>
15. </web-app>

Output

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 8
Expression Language (EL) in JSP
The Expression Language (EL) simplifies the accessibility of data stored in the Java
Bean component, and other objects like request, session, application etc.

There are many implicit objects, operators and reserve words in EL.

It is the newly added feature in JSP technology version 2.0.

Syntax for Expression Language (EL)

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 7


9454202501,[email protected] 9
1. ${ expression }

Implicit Objects in Expression Language (EL)


There are many implicit objects in the Expression Language. They are as follows:

Implicit Usage
Objects

pageScope it maps the given attribute name with the value set in the
page scope

requestScope it maps the given attribute name with the value set in the
request scope

sessionScope it maps the given attribute name with the value set in the
session scope

applicationScope it maps the given attribute name with the value set in the
application scope

param it maps the request parameter to the single value

paramValues it maps the request parameter to an array of values

header it maps the request header name to the single value

headerValues it maps the request header name to an array of values

cookie it maps the given cookie name to the cookie value

initParam it maps the initialization parameter

pageContext it provides access to many objects request, session etc.

EL param example
In this example, we have created two files index.jsp and process.jsp. The index.jsp file
gets input from the user and sends the request to the process.jsp which in turn prints
the name of the user using EL.

index.jsp

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 8


9454202501,[email protected] 0
1. <form action="process.jsp">
2. Enter Name:<input type="text" name="name" /><br/><br/>
3. <input type="submit" value="go"/>
4. </form>

process.jsp

1. Welcome, ${ param.name }
download this example

EL sessionScope example
In this example, we printing the data stored in the session scope using EL. For this
purpose, we have used sessionScope object.

index.jsp

1. <h3>welcome to index page</h3>


2. <%
3. session.setAttribute("user","sonoo");
4. %>
5.
6. <a href="process.jsp">visit</a>

process.jsp

1. Value is ${ sessionScope.user }
download this example

EL cookie example
index.jsp

1. <h1>First JSP</h1>
2. <%
3. Cookie ck=new Cookie("name","abhishek");
4. response.addCookie(ck);
5. %>

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 8


9454202501,[email protected] 1
6. <a href="process.jsp">click</a>

process.jsp

1. Hello, ${cookie.name.value}

Precedence of Operators in EL
There are many operators that have been provided in the Expression Language. Their
precedence are as follows:

[] .

()

-(unary) not ! empty

* / div % mod

+ - (binary)

< <= > >= lt le gt ge

== != eq ne

&& and

|| or

?:

Reserve words in EL
There are many reserve words in the Expression Language. They are as follows:

lt le gt ge

eq ne true false

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 8


9454202501,[email protected] 2
and or not instanceof

div mod empty null

NOTES BY:DEEPAK SINGH(ASST. PROFESSOR , MAHADEV P.G.COLLEGE)CONTACT- 8


9454202501,[email protected] 3

You might also like