Web Technology Practicals - Solutions
Q1. Servlet Lifecycle Demonstration
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LifecycleDemoServlet extends HttpServlet {
@Override
public void init() throws ServletException {
super.init();
System.out.println("init() method called - Servlet initialized");
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("service() method called - Processing request");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h2>Servlet Lifecycle Demo</h2>");
out.println("<p>Check server logs for lifecycle messages.</p>");
out.println("</body></html>");
}
@Override
public void destroy() {
System.out.println("destroy() method called - Servlet destroyed");
}
}
Q2. JSP Lifecycle Demonstration
1
JSP Lifecycle Stages:
1. Translation → JSP file is converted into a servlet.
2. Compilation → The servlet is compiled into bytecode.
3. Initialization → jspInit() is called once.
4. Execution → _jspService() is called for each request.
5. Cleanup → jspDestroy() is called when JSP is unloaded.
Sample JSP Code (lifecycleDemo.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<body>
<h2>JSP Lifecycle Demo</h2>
<%-- Declaration --%>
<%! int counter = 0; %>
<%-- Scriptlet --%>
<%
counter++;
%>
<%-- Expression --%>
<p>Page accessed <%= counter %> times.</p>
</body>
</html>
Q3. Servlet + JSP for Arithmetic Operations
// ArithmeticServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ArithmeticServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
request.setAttribute("sum", num1 + num2);
2
request.setAttribute("diff", num1 - num2);
request.setAttribute("prod", num1 * num2);
request.setAttribute("div", num2 != 0 ? (num1 / num2) : "Infinity");
RequestDispatcher rd = request.getRequestDispatcher("result.jsp");
rd.forward(request, response);
}
}
// result.jsp
<html>
<body>
<h2>Arithmetic Results</h2>
<p>Sum: ${sum}</p>
<p>Difference: ${diff}</p>
<p>Product: ${prod}</p>
<p>Division: ${div}</p>
</body>
</html>
Q4. JSP Greeting Page
<html>
<body>
<h2>User Greeting</h2>
<form method="post">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Submit">
</form>
<%
String name = request.getParameter("username");
String email = request.getParameter("email");
if(name != null && email != null){
%>
<h3>Hello, <%= name %>!</h3>
<p>Your email is: <%= email %></p>
<%
}
%>
3
</body>
</html>
Q5. JSP CRUD Student Database
// Database: students(id, name, email, course)
// db.jsp - Database connection
<%
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/yourdb", "root", "password");
%>
// create.jsp - Add student
<form action="createStudent.jsp" method="post">
Name: <input type="text" name="name"><br>
Email: <input type="text" name="email"><br>
Course: <input type="text" name="course"><br>
<input type="submit" value="Add Student">
</form>
// createStudent.jsp
<%@ include file="db.jsp" %>
<%
String name = request.getParameter("name");
String email = request.getParameter("email");
String course = request.getParameter("course");
PreparedStatement ps = con.prepareStatement("INSERT INTO
students(name,email,course) VALUES(?,?,?)");
ps.setString(1, name);
ps.setString(2, email);
ps.setString(3, course);
ps.executeUpdate();
out.println("Student Added Successfully!");
%>
// read.jsp - Display all students
<%@ include file="db.jsp" %>
<%
Statement st = con.createStatement();
4
ResultSet rs = st.executeQuery("SELECT * FROM students");
%>
<table border="1">
<tr><th>ID</th><th>Name</th><th>Email</th><th>Course</th><th>Action</th></tr>
<%
while(rs.next()){
%>
<tr>
<td><%= rs.getInt("id") %></td>
<td><%= rs.getString("name") %></td>
<td><%= rs.getString("email") %></td>
<td><%= rs.getString("course") %></td>
<td><a href="update.jsp?id=<%= rs.getInt("id") %>">Edit</a> |
<a href="delete.jsp?id=<%= rs.getInt("id") %>">Delete</a></td>
</tr>
<%
}
%>
</table>
// update.jsp - Update student
<%@ include file="db.jsp" %>
<%
int id = Integer.parseInt(request.getParameter("id"));
Statement st2 = con.createStatement();
ResultSet rs2 = st2.executeQuery("SELECT * FROM students WHERE id=" + id);
rs2.next();
%>
<form action="updateStudent.jsp" method="post">
<input type="hidden" name="id" value="<%= id %>">
Name: <input type="text" name="name" value="<%= rs2.getString("name") %>"><br>
Email: <input type="text" name="email" value="<%= rs2.getString("email") %>"><br>
Course: <input type="text" name="course" value="<%= rs2.getString("course") %>">
<br>
<input type="submit" value="Update">
</form>
// updateStudent.jsp
<%@ include file="db.jsp" %>
<%
int id2 = Integer.parseInt(request.getParameter("id"));
String name2 = request.getParameter("name");
5
String email2 = request.getParameter("email");
String course2 = request.getParameter("course");
PreparedStatement ps2 = con.prepareStatement("UPDATE students SET name=?,
email=?, course=? WHERE id=?");
ps2.setString(1, name2);
ps2.setString(2, email2);
ps2.setString(3, course2);
ps2.setInt(4, id2);
ps2.executeUpdate();
out.println("Student Updated Successfully!");
%>
// delete.jsp - Delete student
<%@ include file="db.jsp" %>
<%
int id3 = Integer.parseInt(request.getParameter("id"));
PreparedStatement ps3 = con.prepareStatement("DELETE FROM students WHERE
id=?");
ps3.setInt(1, id3);
ps3.executeUpdate();
out.println("Student Deleted Successfully!");
%>