AJava Practical 7
AJava Practical 7
AIM: SERVLETS
CODE:
DisplayRecords.java:
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this
license
* Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this
template
*/
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
@WebServlet(urlPatterns = {"/DisplayRecords"})
public class DisplayRecords extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// Load the MySQL JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
// Connect to the database
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root",
"root");
stmt = conn.createStatement();
String sql = "SELECT id, name, email FROM users";
rs = stmt.executeQuery(sql);
// Generate HTML content
out.println("<html>");
out.println("<head><title>User Records</title></head>");
out.println("<body>");
out.println("<h1>User Records</h1>");
out.println("<table border='1'>");
out.println("<tr><th>ID</th><th>Name</th><th>Email</th></tr>");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
out.println("<tr>");
out.println("<td>" + id + "</td>");
out.println("<td>" + name + "</td>");
out.println("<td>" + email + "</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</body>");
out.println("</html>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
out.println("<p>Error loading database driver: " + e.getMessage() + "</p>");
} catch (SQLException e) {
e.printStackTrace();
out.println("<p>Error executing SQL query: " + e.getMessage() + "</p>");
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
out.close();
}
}
OUTPUT:
2. Write a Servlet program that
accepts the book details from user
and displays the details on the next
page.
CODE:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>BookDetails</servlet-name>
<servlet-class>BookDetails</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookDetails</servlet-name>
<url-pattern>/BookDetails</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Book Details</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Enter Book Details</h1> <!-- Corrected the closing tag from <hi> to <h1> -->
<form action="BookDetailsServlet" method="post"> <!-- Added missing '=' in action attribute
-->
<table>
<tr> <!-- Added missing <tr> for the first row -->
<td>Title:</td>
<td><input type="text" name="title" required></td>
</tr>
<tr>
<td>Author:</td>
<td><input type="text" name="author" required></td>
</tr>
<tr> <!-- Fixed row structure for "Year of Publication" -->
<td>Year of Publication:</td>
<td><input type="number" name="year" required></td>
</tr>
<tr>
<td>ISBN:</td>
<td><input type="text" name="isbn" required></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
BookDetails.java:
/*
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this
license
Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this template
*/
import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = {"/BookDetails"})
public class BookDetails extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set content type to HTML
response.setContentType("text/html");
OUTPUT:
3. Write a Servlet program that
accepts the book details from user,
first inserting record in table and then
from there, showing it on the next
page
MySQL:
CODE:
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Book Details</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Enter Book Details</h1> <!-- Corrected the closing tag from <hi> to <h1> -->
<form action="BookDetailsServlet" method="post"> <!-- Added missing '=' in action attribute
-->
<table>
<tr> <!-- Added missing <tr> for the first row -->
<td>Title:</td>
<td><input type="text" name="title" required></td>
</tr>
<tr>
<td>Author:</td>
<td><input type="text" name="author" required></td>
</tr>
<tr> <!-- Fixed row structure for "Year of Publication" -->
<td>Year of Publication:</td>
<td><input type="number" name="year" required></td>
</tr>
<tr>
<td>ISBN:</td>
<td><input type="text" name="isbn" required></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
BookDetails.java:
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this
license
* Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/Servlet.java to edit this
template
*/
import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
@WebServlet("/BookDetails")
public class BookDetails extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Redirect the GET request to the form submission page or handle it as needed
response.sendRedirect("index.html"); // Change this to your form page if needed
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
// Establish a connection to the database
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb",
"root","root");
} catch (SQLException e) {
out.println("<html><body><h2>Error: " + e.getMessage() + "</h2></body></html>");
} catch (ClassNotFoundException ex) {
Logger.getLogger(BookDetails.class.getName()).log(Level.SEVERE, null, ex);
} finally {
// Clean up database resources
try { if (rs != null) rs.close(); } catch (SQLException e) { /* ignored */ }
try { if (pstmt != null) pstmt.close(); } catch (SQLException e) { /* ignored */ }
try { if (conn != null) conn.close(); } catch (SQLException e) { /* ignored */ }
}
}
}
OUTPUT: