Assignment – II
Q1. What is JSP and Servlet? What are the applications of both? Also differentiate between
JSP and Servlet.
JSP (Java Server Pages)
JSP stands for Java Server Pages. It is a server-side technology used to create dynamic web pages.
JSP allows developers to write HTML code along with Java code in the same file. A JSP page is
converted into a servlet by the server and then executed.
JSP is mainly used for designing the user interface of web applications. It helps in creating pages
that interact with databases and display dynamic information to users.
Applications of JSP
1. Creating dynamic web pages.
2. Developing login and registration forms.
3. Displaying database records on websites.
4. Building e-commerce websites.
5. Creating online banking and management systems.
Servlet
Servlet is a Java program that runs on the server side and handles client requests and responses. It is
used to develop web applications by processing HTTP requests from users.
Servlet works inside a web server such as Apache Tomcat. It receives requests from the browser,
processes them, and sends responses back to the user.
Applications of Servlet
1. Processing form data.
2. Handling login authentication.
3. Managing sessions.
4. Connecting web applications with databases.
5. Developing enterprise-level applications.
Difference Between JSP and Servlet
JSP Servlet
Servlet is used for business logic and request
JSP is used for presentation layer.
processing.
JSP file extension is .jsp Servlet file extension is .java
JSP is easier to write because it supports Servlet requires more Java code for generating
HTML directly. HTML.
JSP is converted into servlet by server. Servlet is already a Java class.
Servlet is mainly used for handling requests
JSP is mainly used for designing web pages.
and responses.
JSP execution is slower at first because of
Servlet executes faster after loading.
translation step.
Q2. Explain Life Cycle of Servlet and JSP with Diagram.
Life Cycle of Servlet
The servlet life cycle describes how a servlet is created, initialized, used, and destroyed by the web
container.
Steps in Servlet Life Cycle
1. Loading and Instantiation
The web container loads the servlet class and creates an object of the servlet.
2. Initialization – init()
The init() method is called only once when the servlet is initialized. It is used for resource allocation
such as database connection.
3. Service – service()
Whenever a client sends a request, the service() method is called. It processes the request and sends
the response.
4. Destroy – destroy()
The destroy() method is called before removing the servlet from memory. It is used to release
resources.
Servlet Life Cycle Diagram
Client Request
↓
Loading Servlet
↓
init() Method
↓
service() Method
↓
Response to Client
↓
destroy() Method
Life Cycle of JSP
The JSP life cycle explains how a JSP page is processed by the server.
Steps in JSP Life Cycle
1. Translation
The JSP page is translated into a servlet.
2. Compilation
The generated servlet is compiled into bytecode.
3. Loading and Initialization
The servlet class is loaded and the jspInit() method is called.
4. Request Processing
The _jspService() method processes user requests.
5. Destruction
The jspDestroy() method is called when the JSP page is removed.
JSP Life Cycle Diagram
JSP Page
↓
Translation into Servlet
↓
Compilation
↓
jspInit()
↓
_jspService()
↓
Response to Client
↓
jspDestroy()
Q3. Explain the following in JSP with example.
(1) JSP Scripting Elements
JSP scripting elements are used to insert Java code into JSP pages.
There are three types of scripting elements:
1. Scriptlet Tag
2. Expression Tag
3. Declaration Tag
(a) Scriptlet Tag
Scriptlet tag is used to write Java code inside JSP.
Syntax
<% Java Code %>
Example
<%
int a = 10;
int b = 20;
[Link]("Sum = " + (a+b));
%>
Output
Sum = 30
(b) Expression Tag
Expression tag is used to display output directly on the browser.
Syntax
<%= expression %>
Example
<%= "Welcome to JSP" %>
Output
Welcome to JSP
(c) Declaration Tag
Declaration tag is used to declare variables and methods.
Syntax
<%! declaration %>
Example
<%!
int square(int n)
return n*n;
%>
<%= square(5) %>
Output
25
(2) JSP Implicit Objects
Implicit objects are predefined objects provided by JSP container. These objects can be used directly
without declaration.
Types of JSP Implicit Objects
1. request
It contains information about client request.
Example
<%= [Link]("name") %>
2. response
It is used to send response to the client.
Example
[Link]("[Link]");
3. out
It is used to print output on browser.
Example
<%
[Link]("Hello User");
%>
4. config
It contains servlet configuration information.
Example
<%= [Link]() %>
5. application
It represents ServletContext object and shares data among users.
Example
<%
[Link]("msg","Welcome");
%>
6. session
It is used to store user session information.
Example
<%
[Link]("user","Rahul");
%>
7. pageContext
It provides access to JSP page attributes.
Example
<%
[Link]("city","Delhi");
%>
8. page
It represents current JSP page object.
Example
<%= [Link]() %>
9. exception
It is used for exception handling in error pages.
Example
<%= [Link]() %>
Q4. What is JDBC? Explain different types of JDBC drivers with diagram.
JDBC
JDBC stands for Java Database Connectivity. It is an API provided by Java to connect Java
applications with databases.
JDBC helps programmers to:
1. Connect with database.
2. Execute SQL queries.
3. Retrieve and update data.
4. Perform database operations.
JDBC supports databases such as MySQL, Oracle, SQL Server, and PostgreSQL.
Types of JDBC Drivers
There are four types of JDBC drivers.
Type 1 Driver – JDBC-ODBC Bridge Driver
This driver converts JDBC calls into ODBC calls.
Diagram
Java Application
↓
JDBC Driver
↓
ODBC Driver
↓
Database
Advantages
1. Easy to use.
2. Suitable for small applications.
Disadvantages
1. Slow performance.
2. Platform dependent.
Type 2 Driver – Native API Driver
This driver uses native database libraries.
Diagram
Java Application
↓
JDBC Driver
↓
Native API
↓
Database
Advantages
1. Better performance than Type 1.
2. Faster communication.
Disadvantages
1. Requires native libraries.
2. Platform dependent.
Type 3 Driver – Network Protocol Driver
This driver sends JDBC calls to middleware server.
Diagram
Java Application
↓
JDBC Driver
↓
Middleware Server
↓
Database
Advantages
1. Platform independent.
2. Supports multiple databases.
Disadvantages
1. Requires middleware server.
2. More network overhead.
Type 4 Driver – Thin Driver
This driver directly communicates with database using native protocol.
Diagram
Java Application
↓
JDBC Driver
↓
Database
Advantages
1. Fastest driver.
2. Platform independent.
3. Most commonly used.
Disadvantages
1. Database-specific driver required.
Q5. Write Short Notes on:
(1) WAR File
WAR stands for Web Application Archive. It is a compressed file used to store web application
resources such as JSP files, servlets, HTML files, CSS, JavaScript, and libraries.
WAR files are mainly used for deploying web applications on web servers like Apache Tomcat.
Features of WAR File
1. Contains complete web application.
2. Easy deployment.
3. Reduces file management complexity.
4. Uses .war extension.
Structure of WAR File
WEB-INF folder
[Link] file
JSP files
Servlet classes
Libraries
(2) JAR File
JAR stands for Java Archive. It is a package file used to combine multiple Java class files and
libraries into a single file.
JAR files make Java applications easier to distribute and manage.
Features of JAR File
1. Compresses Java files.
2. Easy distribution of Java applications.
3. Contains class files and metadata.
4. Uses .jar extension.
Advantages
1. Reduces file size.
2. Improves portability.
3. Simplifies application management.
(3) Manifest File
Manifest file is a special file present inside JAR files. It contains information about the JAR file.
The manifest file is stored in:
META-INF/[Link]
Information Stored in Manifest File
1. Version information.
2. Main class name.
3. Package details.
4. Author information.
Example of Manifest File
Manifest-Version: 1.0
Main-Class: Test
Uses of Manifest File
1. Specifies entry point of Java program.
2. Stores metadata.
3. Helps in application execution.