0% found this document useful (0 votes)
3 views

JSP Notes

Uploaded by

bytemaster78
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

JSP Notes

Uploaded by

bytemaster78
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

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 as

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:

o Translation of JSP Page


o Compilation of JSP Page
o Class loading (the class loader 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.

 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.

Creating a simple JSP Page


 To create the first JSP page, write some HTML code & save it by .jsp extension.
 We have saved this file as index.jsp. Put it in a folder and paste the folder in the
web-apps directory in apache tomcat to run the JSP page.

index.jsp
 simple example of JSP using the scriptlet tag to put Java code in the JSP page.

<html>
<body>
<% out.print(2*5); %>
</body>
</html>

 It will print 10 on the browser.

How to run a simple JSP Page?


 Follow the following steps to execute this JSP page:

o Start the server & put the JSP file in a folder and deploy on the server
o Visit the browser by the URL http://localhost:portno/contextRoot/jspfile, for
example, http://localhost:8888/myapplication/index.jsp

 there is no need of directory structure if you don't have bean, class, servlet files or
TLD files.

The Directory structure of JSP


 The directory structure of JSP page is same as Servlet. We contain the JSP page
outside the WEB-INF folder or in any directory.
The JSP API
1. The JSP API
2. javax.servlet.jsp package
3. The JspPage interface
4. The HttpJspPage interface

The JSP API consists of two packages:

1. javax.servlet.jsp
2. javax.servlet.jsp.tagext

javax.servlet.jsp package
The javax.servlet.jsp package has two interfaces and classes.The two interfaces are as
follows:

1. JspPage
2. HttpJspPage

The classes are JspWriter, PageContext, JspFactory, JspEngineInfo, JspException,


JspError.

The JspPage interface


According to the JSP specification, all the generated servlet classes must implement the
JspPage interface. It extends the Servlet interface. It provides two life cycle methods.
Methods of JspPage interface

1. public void jspInit(): It is invoked only once during the life cycle of the JSP when
JSP page is requested firstly. It is used to perform initialization. It is same as the
init() method of Servlet interface.
2. public void jspDestroy(): It is invoked only once during the life cycle of the JSP
before the JSP page is destroyed. It can be used to perform some clean up
operation.

The HttpJspPage interface


The HttpJspPage interface provides the one life cycle method of JSP. It extends the
JspPage interface.

Method of HttpJspPage interface:

1. public void _jspService(): It is invoked each time when request for the JSP page
comes to the container. It is used to process the request. The underscore _
signifies that you cannot override this method.

Creating JSP in Eclipse IDE with Tomcat server


1. Creating JSP in Eclipse IDE with Tomcat
1. Create a Dynamic web project
2. create a jsp
3. start tomcat server and deploy the project

o Create a Dynamic web project


o create a jsp
o start tomcat server and deploy the project

1) Create the dynamic web project


For creating a dynamic web project click on File Menu -> New -> dynamic web project -

> write your project name e.g. first -> Finish.


2) Create the JSP file in eclipse IDE
For creating a jsp file explore the project by clicking the + icon -> right click on
WebContent -> New -> jsp -> write your jsp file name e.g. index -> next -> Finish.
Now JSP file is created, let's write some code.
3) Start the server and deploy the project:
For starting the server and deploying the project in one step Right click on your project
-> Run As -> Run on Server -> choose tomcat server -> next -> addAll -> finish.

If you are using Eclipse IDE first time, you need to configure the tomcat server First. Click
for How to configure tomcat server in eclipse IDE

Now start the tomcat server and deploy project


For starting the server and deploying the project in one step Right click on your project
-> Run As -> Run on Server -> choose tomcat server -> next -> addAll -> finish.
Yes, Let's see JSP is successfully running now.

Next Top

JSP Scriptlet tag (Scripting elements)


1. Scripting elements
2. JSP scriptlet tag
3. Simple Example of JSP scriptlet tag
4. Example of JSP scriptlet tag that prints the user name

 In JSP, java code can be written inside the jsp page using the scriptlet tag. Let's
see what are the scripting elements first.
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


 A scriptlet tag is used to execute java source code in JSP.
o Syntax -: <% java source code %>

Example of JSP scriptlet tag


In this example, we are displaying a welcome message.

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");
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

 Syntax -: <%= 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() %>
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>

JSP Declaration Tag


1. JSP declaration tag
2. Difference between JSP scriptlet tag and JSP declaration tag
3. Example of JSP declaration tag that declares field
4. Example of JSP declaration tag that declares method

 The JSP declaration tag is used to declare fields and methods.


 The code written inside the jsp declaration tag is placed outside the service()
method of auto generated servlet.
 So it doesn't get memory at each request.

Syntax of JSP declaration tag

 Syntax -: <%! field or method declaration %>

Difference between JSP Scriptlet tag and Declaration


tag

Jsp Scriptlet Tag Jsp Declaration Tag

The jsp scriptlet tag can only declare variables The jsp declaration tag can declare variables as well
not methods. as methods.

The declaration of scriptlet tag is placed inside The declaration of jsp declaration tag is placed
the _jspService() method. outside the _jspService() method.

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>
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>
THE END

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.

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

1. <%
2. String name=request.getParameter("uname");
3. out.print("welcome "+name);
4. %>

Output

THE END

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.

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. 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. %>

Output

THE END

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.
This initialization parameter can be used by all jsp pages.

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");
6. out.print("driver name is="+driver);
7.
8. %>

Output

THE END
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


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. %>
9. </body>
10. </html>

Output

THE END

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>

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
THE END

8) page implicit object:


 In JSP, page is an implicit object of type Object class.This object is assigned to the
reference of auto generated servlet class. It is written as:
 Object page=this;
 For using this object it must be cast to Servlet type.
 For example-:
<% (HttpServlet)page.log("message"); %>
Since, it is of type Object it is less used because you can use this object directly in jsp.For
example:
<% this.log("message"); %>

9) exception implicit object


 In JSP, exception is an implicit object of type java.lang.Throwable class. This object
can be used to print the exception.
 But it can only be used in error pages.It is better to learn it after page directive. Let's
see a simple example:

Example of exception implicit object:


error.jsp

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


2. <html>
3. <body>
4.
5. Sorry following exception occured:<%= exception %>
6.
7. </body>
8. </html>
THE END

You might also like