Project: CRUD Example
1) Register.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Register Student</title>
</head>
<body>
<form action="RegisterServlet" method="post">
<table>
<tr>
<td>Enter the Regno:</td>
<td><input type="text" name="txtRegno"></td>
</tr>
<tr>
<td>Enter the Student_Name:</td>
<td><input type="text" name="txtName"></td>
</tr>
<tr>
<td>Enter the Course:</td>
<td><input type="text" name="txtCourse"></td>
</tr>
<tr>
<td>Enter the Fees:</td>
<td><input type="text" name="txtFees"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Register"></td>
<td><input type="reset" name="reset" value="Clear"></td>
</tr>
<tr>
<td colspan=2><a href="RegisterServlet?action=view">View Student Details</a></td>
</tr>
</table>
</form>
Hyperlink:call RegisterServlet method:doGet() & action=view;[Ref:page 2]
</body>
</html>
Description:View All Student Details from Database to JSP Page Table
2) RegisterServlet
package com.me.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.me.DAO.RegisterDAO;
import com.me.model.RegisterStudent;
/**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private RegisterStudent register;
private RegisterDAO dao;
/**
* @see HttpServlet#HttpServlet()
*/
public RegisterServlet() {
super();
dao = new RegisterDAO();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
Hyperlink:call RegisterServlet method:doGet() & action=view [from hyperlink]
{ Description:Collect all the student details from database
String action;
action=request.getParameter("action");
getAllStudentDetails from DAO
if(action.equalsIgnoreCase("view")) Class[RegisterDAO.java]
Package:com.me.RegisterDAO [Refer:page 6]
{
request.setAttribute("students", dao.getAllStudents()); Set attribute set unique
object(students). This
RequestDispatcher name must exactly
requestdispatch=request.getRequestDispatcher("ViewStudent.jsp"); same as items attribute
of <foreach c:out
requestdispatch.forward(request,response); items=”${students}”>
} action:edit®no=[ViewStudent Refer: Page 12
.jsp]
else if(action.equals("edit")) Call:RegisterDAO.getStudentByR
egno()->Refer:page 7
{
int regno=Integer.parseInt(request.getParameter("regno"));
request.setAttribute("students", dao.getStudentByRegno(regno));
RequestDispatcher
requestdispatcher=request.getRequestDispatcher("UpdateStudent.jsp"); Forward:UpdateStudent.jsp[code:
Page 14]
requestdispatcher.forward(request, response);
} action:delete®no=[ViewStudent.jsp]
else if(action.equals("delete")) Call:dao.deleteStudent(regno); [refer page: 9]
int regno=Integer.parseInt(request.getParameter("regno"));
dao.deleteStudent(regno);
request.setAttribute("students", dao.getAllStudents());
After delete collect all
RequestDispatcher the student details and
requestdispatch=request.getRequestDispatcher("ViewStudent.jsp"); show in ViewStudent.jsp
requestdispatch.forward(request, response);
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
{
POJO class: RegisterStudent
register = new RegisterStudent();
Package:com.me.model
dao=new RegisterDAO();
int regno=Integer.parseInt(request.getParameter("txtRegno"));
String name=request.getParameter("txtName"); Collect form inputs
String course=request.getParameter("txtCourse");
float fees=Float.parseFloat(request.getParameter("txtFees"));
register.setRegno(regno);
register.setName(name); POJO class setMethods()
register.setCourse(course); Package:com.me.model
register.setFees(fees);
Add Student details in RegisterDAO.java
dao.addStudent(register);//database insertion Package:com.me.DAO [Refer:Page 5]
RequestDispatcher requestdispatch=request.getRequestDispatcher("Register.jsp");
requestdispatch.forward(request,response);
//doGet(request, response);
3) RegisterDAO.java
package com.me.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.me.Utils.DBUtil;
import com.me.model.RegisterStudent;
public class RegisterDAO
private Connection connection=null;
public RegisterDAO()
connection=DBUtil.getConnection();
public void addStudent(RegisterStudent register) DataBase Insertion Here
try
PreparedStatement ps=connection.prepareStatement("INSERT INTO STUDENT "+
"(REGNO,STUDENTNAME,COURSE,FEES) VALUES(?,?,?,?)");
ps.setInt(1, register.getRegno());
ps.setString(2, register.getName());
ps.setString(3, register.getCourse());
ps.setFloat(4, register.getFees());
ps.executeUpdate();
catch(SQLException e)
e.printStackTrace();
public List<RegisterStudent> getAllStudents() Collect all student details from database here
List<RegisterStudent>list=new ArrayList<RegisterStudent>();
try
Statement stmt=connection.createStatement();
RegisterStudent register;
ResultSet rs=stmt.executeQuery("SELECT * FROM STUDENT");
while(rs.next())
register=new RegisterStudent();
register.setRegno(rs.getInt("regno"));
register.setName(rs.getString("studentname"));
register.setCourse(rs.getString("course"));
register.setFees(rs.getFloat("fees"));
list.add(register);
catch(SQLException e)
e.printStackTrace();
return list;
}
Get Particular student detail based on
public List<RegisterStudent> getStudentByRegno(int regno) regno
{
List<RegisterStudent>list=new ArrayList<RegisterStudent>();
try
{
Statement stmt=connection.createStatement();
RegisterStudent register;
ResultSet rs=stmt.executeQuery("SELECT * FROM STUDENT WHERE REGNO="+regno);
while(rs.next())
register=new RegisterStudent();
register.setRegno(rs.getInt("regno"));
register.setName(rs.getString("studentname"));
register.setCourse(rs.getString("course"));
register.setFees(rs.getFloat("fees"));
list.add(register);
catch(SQLException e)
e.printStackTrace();
for(RegisterStudent o:list)
System.out.println(o.getRegno()+"\t"+o.getName()+"\t"+o.getCourse()+"\t"+o.getFees());
return list;
}
public void updateStudent(RegisterStudent register)
try
PreparedStatement ps=connection.prepareStatement("UPDATE STUDENT SET
STUDENTNAME=?, COURSE=?, FEES=? WHERE REGNO=?");
ps.setString(1, register.getName());
ps.setString(2, register.getCourse());
ps.setFloat(3, register.getFees());
ps.setInt(4, register.getRegno());
ps.executeUpdate();
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public void deleteStudent(int regno)
try
PreparedStatement ps=connection.prepareStatement("DELETE FROM STUDENT
WHERE REGNO=?");
ps.setInt(1, regno);
ps.executeUpdate();
catch(SQLException e)
e.printStackTrace();
4) DBUtil.java
package com.me.Utils;
Database connection
import java.io.IOException; Here
import java.io.InputStream; Read Property file
[db.properties] and
import java.sql.Connection; create DB
Connection
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil
private static Connection connection=null;
public static Connection getConnection()
if(connection!=null)
return connection;
else
{
try
Properties prop=new Properties();
InputStream
inputstream=DBUtil.class.getClassLoader().getResourceAsStream("/db.properties");
prop.load(inputstream);
String driver=prop.getProperty("driver");
String url=prop.getProperty("url");
String username=prop.getProperty("username");
String password=prop.getProperty("password");
Class.forName(driver);
connection=DriverManager.getConnection(url,username,password);
catch (IOException e)
e.printStackTrace();
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();
}
return connection;
5) ViewStudent.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Show Student Details</title>
</head>
<body>
<table border=1>
<tr>
<th>Regno</th><th>Student_Name</th><th>Course</th><th>Fees</th><th
colspan=2>Action</th> setAttribute(“students
</tr> ”,
<c:forEach items="${students}" var="student"> dao.getAllStudents())
<tr>
<td><c:out value="${student.regno}"></c:out></td> from RegisterServlet
<td><c:out value="${student.name}"></c:out></td>
<td><c:out value="${student.course}"></c:out></td> variable:student
<td><c:out value="${student.fees}"></c:out></td>
<td><a href="RegisterServlet?action=edit®no=<c:out Collect and display
value="${student.regno}"></c:out>">Update</a></td> details in table here
<td><a href="RegisterServlet?action=delete®no=<c:out
value="${student.regno}"></c:out>">Delete</a></td>
</tr>
</c:forEach>
</table>
<a href="Register.jsp">Register Student</a> Update hyperlink action:edit
</body> ®no=<c:out
</html>
value=”${student.regno}”>
Delete hyperlink action:edit Description Update Particular
®no=<c:out student based on regno.
value=”${student.regno}”>
Description Delete Particular
student based on regno.
Output
Update hyperlink
Delete hyperlink
For update operation(goto RegisterServlet?action=edit®no=1000 [URL Here]:for refer goto page no:3
RegisterServlet->doGet())
Submit button
UpdateStudent.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Register Student</title>
</head>
<body> Call:UpdateServlet, Method=post
<form action="UpdateServlet" method="post">
<table>
<c:forEach items="${students}" var="students">
<tr>
<td>Enter the Regno:</td>
<td><input type="hidden" name="txtRegno" value="<c:out
value="${students.regno}"></c:out>"></td>
</tr> Regno:hidden here
<tr>
<td>Enter the Student_Name:</td>
<td><input type="text" name="txtName" value="<c:out
value="${students.name}"></c:out>" ></td>
</tr>
<tr>
<td>Enter the Course:</td>
<td><input type="text" name="txtCourse" value="<c:out
value="${students.course}"></c:out>" ></td>
</tr>
<tr>
<td>Enter the Fees:</td>
<td><input type="text" name="txtFees" value="<c:out
value="${students.fees}"></c:out> "></td>
</tr>
</c:forEach>
<tr>
<td><input type="submit" name="submit" value="Update"></td>
<td><input type="reset" name="reset" value="Clear"></td>
</tr>
</table>
</form>
</body>
</html>
UpdateServlet
package com.me.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.me.DAO.RegisterDAO;
import com.me.model.RegisterStudent;
/**
* Servlet implementation class UpdateServlet
*/
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
RegisterDAO dao;
/**
* @see HttpServlet#HttpServlet()
*/
public UpdateServlet()
dao=new RegisterDAO();
// TODO Auto-generated constructor stub
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException
int regno = Integer.parseInt(request.getParameter("txtRegno"));
String name=request.getParameter("txtName");
String course=request.getParameter("txtCourse");
float fees=Float.parseFloat(request.getParameter("txtFees"));
RegisterStudent register=new RegisterStudent();
register.setRegno(regno); Call form inputs and set to the
register.setName(name); pojo class(RegisterStudent setter
method)
register.setCourse(course);
Call updateStudent of
register.setFees(fees); DAO(RegisterDAO.java) [Page:9]
dao.updateStudent(register);
request.setAttribute("students",dao.getAllStudents());
RequestDispatcher setAttribute set the
requestdispatcher=request.getRequestDispatcher("ViewStudent.jsp"); students details by
calling
requestdispatcher.forward(request, response); dao.getAllStudents()
} [code:Page 6]and
forward again to view
ViewStudent.jsp table
page[code:Page 12]
}
Program Flow
Post (Controller) Setter Methods
method
1
Sevlet 2
(Client) CRUD
request [RegisterSevlet] (Model) Operation
Browser Action:get (RegisterD Database
3 POJO class
Method AO.java)
[Register.jsp] [dbName:CSC]
(View) [RegisterStudent.
java] DBUtil.java
[Table:Student]
5 JSP
4
ViewStudent.jsp
response
Getter
UpdateStudent.jsp
Methods
Setter Methods
6 (Post Method) 7
(Controller)
UpdateServlet
Output
1) Run From Register.jsp
Submit button
Hyperlink ViewStudent.jsp
2) ViewStudent.jsp
3) UpdateStudent.jsp
UpdateServlet[Controller]
Submit button