web b-2 ch-2
web b-2 ch-2
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.
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.
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.
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.
Note: jspInit(), _jspService() and jspDestroy() are the life cycle methods of JSP.
As depicted in the above diagram, JSP page is translated into Servlet by the help of
JSP translator. The JSP translator is a part of the web server which is responsible for
translating the JSP page into Servlet. After that, Servlet page is compiled by the
compiler and gets converted into the class file. Moreover, all the processes that happen
in Servlet are performed on JSP later like initialization, committing response to the
browser and destroy.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
index.jsp
Let's see the simple example of JSP where we are using the scriptlet tag to put Java
code in the JSP page. We will learn scriptlet tag later.
1. <html>
2. <body>
3. <% out.print(2*5); %>
4. </body>
5. </html>
However, if you are using Bean class, Servlet or TLD file, the directory structure is
required.
JSP directives
The jsp directives are messages that tells the web container how to translate a JSP
page into the corresponding servlet.
o page directive
o include directive
o taglib directive
1)import
The import attribute is used to import class,interface or all the members of a package.It is similar to import k
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".
64M
1.3K
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.
7. </body>
8. </html>
The web container will create a method getServletInfo() in the resulting servlet.For
example:
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.
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.
default. We see Expression Language later.
8)isThreadSafe
Servlet and JSP both are multithreaded.If you want to control this behaviour of JSP page, you can use isThre
value of isThreadSafe value is true.If you make it false, the web container will serialize the multiple request
responding to a request before passing another request to it.If you make the value of isThreadSafe attribute
The web container in such a case, will generate the servlet as:
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.
10)isErrorPage
The isErrorPage attribute is used to declare that the current page is the error page.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Note: The exception object can only be used in the error page.
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>
1. <html>
2. <body>
3.
4. <%@ include file="header.html" %>
5.
6. Today is: <%= java.util.Calendar.getInstance().getTime() %>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
7.
8. </body>
9. </html>
1. <html>
2. <body>
3.
4. <%@ taglib uri="http://www.javatpoint.com/tags" prefix="mytag" %>
5.
6. <mytag:currentDate/>
7.
8. </body>
9. </html>
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.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
For the example of setProperty, getProperty and useBean tags, visit next page.
Calculator.java (a simple Bean class)
1. package com.javatpoint;
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
The jsp:setProperty action tag sets a property value or values in a bean using the setter
method.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
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="*" />
Play Videox
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
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;
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
index.jsp
Same as above.
User.java
Same as above.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
process.jsp
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.
7. Record:<br>
8. <jsp:getProperty property="name" name="u"/><br>
3. </jsp:forward>
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
index.jsp
1. <html>
2. <body>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
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.
3. </jsp:include>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
File: index.jsp
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.
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Output
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.
Let's see the example of response implicit object where we are redirecting the response
to the Google.
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
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. %>
9. </body>
10. </html>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Output
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
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.
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>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
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");
6. out.print("driver name is="+driver);
7.
8. %>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Output
o page
o request
o session
o application
9. </body>
10. </html>
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Output
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Sumaya academy
G61 near walia nursing home opposite metro pillar 40
Laxminagar delhi-92
8826767298,8826764330
Object page=this;
Since, it is of type Object it is less used because you can use this object directly in jsp.For example: