A - 69 - 180770107233 - Apj Lab Manual
A - 69 - 180770107233 - Apj Lab Manual
COMPUTER ENGINEERING
Laboratory Manual
1
VISION
To create competent professionals in the field of Computer Engineering and promote research
with a motive to serve as a valuable resource for the IT industry and society.
MISSION
PEO1: To provide the fundamentals of science, mathematics, electronics and computer science and
engineering and skills necessary for a successful IT professional.
PEO2: To provide scope to learn, apply skills, techniques and competency to use modern
engineering tools to solve computational problems.
PEO3: To enable young graduates to adapt to the challenges of evolving career opportunities in their
chosen fields of career including higher studies, research avenues, entrepreneurial activities
etc.
PEO4: To inculcate life-long learning aptitude, leadership qualities and teamwork ability with sense
of ethics for a successful professional career in their chosen field.
2
PROGRAM OUTCOMES (POs) Engineering Graduates will be able to:
3
ADVANCED JAVA PROGRAMMING PRACTICAL BOOK
It gives us immense pleasure to present the first edition of Advanced Java Practical Book
for the B.E. 3rd year students of Silver Oak Group of Institutes.
The theory and laboratory course of Advanced Java, at Silver Oak Group of Institutes,
Ahmedabad, is designed in such a manner that students can develop the basic
understanding of the subject during theory classes and gain the hands-on practical
experience during their laboratory sessions. Java being one of the most prominent
languages opens the door to many application developments involving naïves of
Input/output, Networking, the standard utilities, Applets, Frameworks, GUI-based
controls and much more. Many of these concepts were detailed in our first part in Object
Oriented Programming using Java. In this second part of java, Advanced Java, we will
look into networking concepts using TCP/UDP, Java Database Connectivity, web
application development with Servlet, JSP and JSF, frameworks like Hibernate and
Spring.
The Laboratory Manual presented here takes you onto the learning journey of advanced
concepts of Java. In this you will be exploring the wide range of topics like creating a
network application with help of TCP/UDP connection, linking & communication a
database with java application using JDBC, creating a dynamic server side web
application using Servlet, Java Server Pages and Java Server Faces. We will also look into
the hibernate Object Relational Mapping (ORM) framework and application
frameworkSpring.
Lab Manual Revised by: Prof. Viren Patel, Silver Oak College of Engineering and Technology
4
INSTRUCTIONS TO STUDENTS
1. Be prompt in arriving to the laboratory and always come well prepared for the
experiment.
2. Students need to maintain a proper decorum in the computer lab. Students must use
the equipment with care. Any damage is caused is punishable.
3. Students are instructed to come to lab in formal dresses only.
4. Students are supposed to occupy the systems allotted to them and are not supposed to
talk or make noise in the lab.
5. Students are required to carry their observation book and lab records with completed
exercises while entering the lab.
6. Lab records need to be submitted every week.
7. Students are not supposed to use pen drives in the lab.
8. The grades for the Advanced Java Practical course work will be awarded based on
your performance in the laboratory, regularity, recording of experiments in the
Advanced Java practical Final Notebook, lab quiz, regular viva-voce and end-term
examination.
9. Find the answers of all the questions mentioned under the section, Post Practical
Questions‟ at the end of each experiment in the Advanced Java Practical Book.
5
CERTIFICATE
-2021
6
TABLE OF CONTENT
Page No
Marks
Date of Date of
Experiment Title Sign (out of
Sr. Start Completion
10)
No To From
7
Design a web page that takes
the Username from user and if
it is a valid username prints
8
“Welcome Username”. Use
JSF to implement.
Write Hibernate application to
store customer records and
9 retrieve the customer record
including name, contact
number, address.
Write an application to keep
record and retrieve record of
student. The record includes
10 student id, enrollment number,
semester, SPI. Use MVC
architecture.
8
PRACTICAL SET – 1
The java.net package of the J2SE APIs contains a collection of classes and interfaces that provide
the low-level communication details, allowing you to write programs that focus on solving the
problem athand.
The java.net package provides support for the two common network protocols
−
The two key classes from the java.net package used in creation of server and client programs are:
ServerSocket
Socket
A server program creates a specific type of socket that is used to listen for client requests (server
socket), In the case of a connection request, the program creates a new socket through which it
will exchange data with the client using input and output streams. The socket abstraction is very
like the file concept: developers must open a socket, perform I/O, and close it. Figure illustrates
key steps involved in creating socket-based server and client programs.
Socket-based client and server programming
TCP/IP SOCKET PROGRAMMING
A simple Server Program in Java The steps for creating a simple server program are:
1. Open the ServerSocket:
ServerSocket server = new ServerSocket (PORT );
2. Wait for the Client Request:
Socket client =server.accept();
3. Create I/O streams for communicating to theclient
DataInputStream is = new DataInputStream(client.getInputStream());
DataOutputStream os = new DataOutputStream(client.getOutputStream());
4. Perform communication withclient
Receive from client: String line = is.readLine();
Send to client: os.writeBytes(“Hello\n”);
5. Close socket:
client.close()
;
A simple Client Program in Java The steps for creating a simple client program are:
1. Create a SocketObject:
Socket client = new Socket (server, port_id);
2. Create I/O streams for communicating with the server.
is = newDataInputStream(client.getInputStream());
os = new DataOutputStream(client.getOutputStream());
3. Perform I/O or communication with theserver:
Receive data from the server: String line = is.readLine();
Send data to the server: os.writeBytes(“Hello\n”);
4. Close the socket when done:
client.close();
References:
[1] http://www.buyya.com/java/Chapter13.pdf
[2] Complete Reference J2EE Publisher :McGrawpublication
Aim : Implement TCP Server for transferring files using Socket and ServerSocket.
Code:
Server Code:
import java.io.*;
import java.net.*;
class Server
ServerSocketss=new ServerSocket(7777);
Socket s=ss.accept();
System.out.println("connected..........");
DataOutputStreamdout=new DataOutputStream(s.getOutputStream());
int r;
while((r=fin.read())!=-1)
dout.write(r);
System.out.println("\nFiletranfer Completed");
s.close();
ss.close();
}
Client Code:
import java.io.*;
import java.net.*;
if(s.isConnected())
System.out.println("Connected to server");
int r;
while((r=din.read())!=-1)
fout.write((char)r);
s.close();
}
Output:
Conclusion: : From this practical, we learned about how socket programming works and how to transfer any data
using socket programming.
PRACTICAL SET – 2
java.io.DataInputStream.readUTF() Method
Parameters: NA
Exception:
IOException − If the stream is closed or the or
java.io.DataOutputStream.writeUTF() Method
Description: The java.io.DataOuputStream.writeUTF(String str) method writes a string to the
underlying output stream using modified UTF-8 encoding.
Declaration: public final void writeUTF(String str)
Parameters: str − a string to be written to
Exception:
IOException − If an I/O error occurs.
Datagrams:
TCP guarantees the delivery of packets and preserves their order on destination. Sometimes these
features are not required and since they do not come without performance costs, it would be better
to use a lighter transport protocol. This kind of service is accomplished by the UDP protocol which
conveys datagram packets.
Datagram packets are used to implement a connectionless packet delivery service supported by the
UDP protocol. Each message is transferred from source machine to destination based on
information contained within that packet. That means, each packet needs to have destination
address and each packet might be routed differently, and might arrive in any order. Packet delivery
is not guaranteed.
The format of datagram packet is:
| Msg | length | Host | serverPort |
Java supports datagram communication through the following classes:
● DatagramPacket
● DatagramSocket
The class DatagramPacket contains several constructors that can be used for creating packet
object.
One of them is:
DatagramPacket(byte[] buf, int length, InetAddress address, int port);
This constructor is used for creating a datagram packet for sending packets of length length to the
specified port number on the specified host. The message to be transmitted is indicated in the
firstargument.
The key methods of DatagramPacket class are:
byte[]getData(): Returns the data buffer.
intgetLength(): Returns the length of the data to be sent or the length of the data received.
void setData(byte[]buf): Sets the data buffer for thispacket.
void setLength(intlength) : Sets the length for thispacket.
The class DatagramSocket supports various methods that can be used for transmitting or
receiving data a datagram over the network.
References:
[1] https://www.tutorialspoint.com/java/io/dataoutputstream_writeutf.htm
[2] Complete Reference J2EE Publisher :McGraw publication
Aim - Implement TCP Server programming in which more than one client can connect and
communicate with Server for sending the string and server returns the reverse of string to each of
client.
Code:
Server Code:
import java.net.*;
import java.io.*;
while(true)
{
new RevThread(ss.accept(),count).start();
System.out.println(count+" client connected");
count++;
}
}
}
{
Socket s=null;
int n;
{
System.out.println("receiving from client "+n);
DataInputStream din=new DataInputStream(s.getInputStream());
String str=din.readUTF();
System.out.println("processing data of Client "+n);
{
System.out.println(e);
}
}
}
Client Code:
import java.io.*;
import java.net.*;
public class Client
{
public static void main(String[] args) throws Exception
{
Socket s=new Socket("127.0.0.1",7878);
if(s.isConnected())
{
System.out.println("Connected to Server....");
}
while(true)
{
}
}
Output:
Conclusion:
From this practical, we learned about how socket programming works and how to transfer any data using socket
programming.
PRACTICAL SET – 3
In a web application, server may be responding to several clients at a time so session tracking is a
way by which a server can identify the client. As we know HTTP protocol is stateless which means
client needs to open a separate connection every time it interacts with server and server treats each
request as a newrequest.
Now to identify the client, server needs to maintain the state and to do so , there are several session
tracking techniques.
a) Cookies
b) HiddenFields
c) URLRewriting
d) SessionObject
Cookie
Cookie is a key value pair of information, sent by the server to the browser and then browser
sends back this identifier to the server with every request there on.
There are two types of cookies:
Session cookies - are temporary cookies and are deleted as soon as user closes the browser. The
next time user visits the same website, server will treat it as a new client as cookies are already
deleted.
Persistent cookies - remains on hard drive until we delete them or they expire.
URL Rewriting
URL Rewriting is the approach in which a session (unique) identifier gets appended with each
request URL so server can identify the user session.
Main.jsp file
<%@ 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>Insert title here</title>
</head>
<body>
<%
// Create cookies for first and last names.
Cookie firstName = new Cookie("first_name", request.getParameter("first_name"));
</head>
<body>
<center>
<h1>Setting Cookies</h1>
</center>
<ul>
<li><p><b>First Name:</b>
<%= request.getParameter("first_name")%>
</p></li>
<li><p><b>Last Name:</b>
<%= request.getParameter("last_name")%>
</p></li>
</ul>
</body>
</html>
</body>
</html>
hello.jsp file
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action = "main.jsp" method = "GET">
First Name: <input type = "text" name = "first_name">
<br />
</body>
Output:
Conclusion: From this practical we learned how to set particular cookies. This above practical will display the
first name and the last name on your screen and will also set two cookies firstName and lastName. These cookies
will be passed back to the server the next time you click the Submit button
PRACTICAL SET – 4
Action Tags: JSP provides various action tags or elements. Each JSP action tag is used to perform
some specific tasks. The action tags are used to control the flow between pages and to use Java
Bean. A Java Bean is a java class that should follow following conventions: It should have a no-
arg constructor. It should be Serializable. It should provide methods to set and get the values of
the properties, known as getter and setter methods. A bean encapsulates many objects into one
object, so we can access this object from multiple places. Here, are mentioned action tags used
with Bean Class:
The <jsp:useBean> action tag is used to locate or instantiate a bean class. If bean object of the
Bean class is already created, it doesn't create the bean depending on the scope. But if object of
bean is not created, it instantiates the bean.
<jsp:useBean id = "students" class = "Bean.StudentBean">
The setProperty and getProperty action tags are used for developing web application with Java
Bean. In web devlopment, bean class is mostly used because it is a reusable software component
that represents data.
The jsp:setProperty action tag sets a property value or values in a bean using the setter method.
<jsp:setProperty name="bean" property="username" value="abc" />
The jsp:getProperty action tag returns the value of the property.
<jsp:getProperty name="obj" property="name" />
JSP implicit objects are created by servlet container while translating JSP page to Servlet source
to help developers. We can use implicit objects in JSP directly in scriptlets that goes in service -
method. However we can‟t use
jsp implicit objects in JSP
declaration because that code
will go at class level.
Syntax:
request.getParameters(“Name”); ( where “Name” is the formelement)
Session Object : Session object is of class HttpSession and used to maintain the session
information. It stores the information in Name-Value pair.
Syntax:
session.setAttribute(“Name”,”Id”); | session.getAttribute("Name");
References:
[1] https://www.javatpoint.com/jsp-implicit-objects
[2] https://www.tutorialspoint.com/jsp/jsp_implicit_objects.htm
Aim: Implement the shopping cart for users for the online shopping. Apply the concept of session.
Code :
CartItemBean:
package in.techfreaks.shoppingcart.beans;
}
public void setPartNumber(String strPartNumber) {
this.strPartNumber = strPartNumber;
}
public String getModelDescription() {
return strModelDescription;
}
public void setModelDescription(String strModelDescription) {
this.strModelDescription = strModelDescription;
}
public double getUnitCost() {
return dblUnitCost;
}
public void setUnitCost(double dblUnitCost) {
this.dblUnitCost = dblUnitCost;
}
public int getQuantity() {
return iQuantity;
}
public void setQuantity(int quantity) {
iQuantity = quantity;
}
}
}
CartBean:
package in.techfreaks.shoppingcart.beans;
import java.util.ArrayList;
public class CartBean {
private ArrayList alCartItems = new ArrayList();
alCartItems.remove(iItemIndex - 1);
calculateOrderTotal();
} catch(NumberFormatException nfe) {
System.out.println("Error while deleting cart item: "+nfe.getMessage());
nfe.printStackTrace();
}
}
iItemIndex = Integer.parseInt(strItemIndex);
iQuantity = Integer.parseInt(strQuantity);
if(iQuantity>0) {
cartItem = (CartItemBean)alCartItems.get(iItemIndex-1);
dblUnitCost = cartItem.getUnitCost();
dblTotalCost = dblUnitCost*iQuantity;
cartItem.setQuantity(iQuantity);
cartItem.setTotalCost(dblTotalCost);
calculateOrderTotal();
}
} catch (NumberFormatException nfe) {
System.out.println("Error while updating cart: "+nfe.getMessage());
nfe.printStackTrace();
}
dblUnitCost = Double.parseDouble(strUnitCost);
iQuantity = Integer.parseInt(strQuantity);
if(iQuantity>0) {
dblTotalCost = dblUnitCost*iQuantity;
cartItem.setPartNumber(strModelNo);
cartItem.setModelDescription(strDescription);
cartItem.setUnitCost(dblUnitCost);
cartItem.setQuantity(iQuantity);
cartItem.setTotalCost(dblTotalCost);
alCartItems.add(cartItem);
calculateOrderTotal();
}
return dblOrderTotal;
}
public void setOrderTotal(double dblOrderTotal) {
this.dblOrderTotal = dblOrderTotal;
}
dblTotal+=cartItem.getTotalCost();
}
setOrderTotal(dblTotal);
}
CartController:
package in.techfreaks.shoppingcart.servlet;
import in.techfreaks.shoppingcart.beans.CartBean;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
addToCart(request);
} else if (strAction.equals("Update")) {
updateCart(request);
} else if (strAction.equals("Delete")) {
deleteCart(request);
}
}
response.sendRedirect("../ShoppingCart.jsp");
}
} else {
cartBean = new CartBean();
}
cartBean.updateCartItem(strItemIndex, strQuantity);
}
if(objCartBean!=null) {
cartBean = (CartBean) objCartBean ;
} else {
cartBean = new CartBean();
session.setAttribute("cart", cartBean);
}
ShoppingCart.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>www.tech-freaks.in - Shopping Cart</title>
<td colspan="4"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">- Cart is currently empty -<br/>
</tr>
</c:if>
<c:forEach var="cartItem" items="${cart.cartItems}" varStatus="counter">
<form name="item" method="POST" action="servlet/CartController">
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><c:out
value="${cartItem.partNumber}"/></b><br/>
<c:out value="${cartItem.modelDescription}"/></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><input type='hidden' name='itemIndex'
value='<c:out value="${counter.count}"/>'><input type='text' name="quantity" value='<c:out
value="${cartItem.quantity}"/>' size='2'> <input type="submit" name="action" value="Update">
<br/> <input type="submit" name="action" value="Delete"></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$<c:out
value="${cartItem.unitCost}"/></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$<c:out
value="${cartItem.totalCost}"/></font></td>
</tr>
</form>
</c:forEach>
<tr>
<td colspan="2"> </td>
<td> </td>
</tr>
</table>
</body>
</html>
Output:
Conclusion: In this practical, implementation of shopping cart for users for online shopping using concept of
session is described .
PRACTICAL SET – 5
JDBC stands for Java Database Connectivity, which is a standard Java API for database-
independent connectivity between the Java programming language and a wide range of databases.
The JDBC library includes APIs for each of the tasks mentioned below that are commonly
associated with database usage.
● JavaApplications
● JavaApplets
● JavaServlets
● Java ServerPages(JSPs)
● Enterprise JavaBeans(EJBs).
These different executables can use a JDBC driver to access a database, and take advantage of
the storeddata.
1) public ResultSet execute Query(String sql): is used to execute SELECT query. It returns the
object of ResultSet.
2) public int executeUpdate(String sql): is used to execute specified query, it may be create,
drop, insert, update, delete etc.
3) public boolean execute(String sql): is used to execute queries that may return multiple
results.
PreparedStatement
The PreparedStatement interface is a sub interface of Statement. It is used to execute
parameterizedquery.
Let's see the example of parameterized query:
1. String sql="insert into emp values(?,?,?)";
As you can see, we are passing parameter (?) for the values. Its value will be set by calling the
setter methods of PreparedStatement.
Method Description
public void setInt(int paramIndex, int value) sets the integer value to the given
parameterindex.
public void setString(int paramIndex, String sets the String value to the given parameter
value) index.
public void setFloat(int paramIndex, float sets the float value to the given parameter
value) index.
public void setDouble(int paramIndex, double sets the double value to the given
value) parameterindex.
CallableStatement
We can have business logic on the database using stored procedures and functions that will make
the performance better because these are precompiled.
Suppose you need the get the age of the employee based on the date of birth, you may create a
function that receives date as the input and returns age of the employee as the output.
must not have the return type. must have the return type.
Procedure supports input and output Function supports only input parameter.
parameters.
Exception handling using try/catch block can Exception handling using try/catch can't be used
be used in stored procedures. in user defined functions.
References:
[1] https://www.tutorialspoint.com/jdbc/jdbc-sample-code.htm
Aim : Implement student registration form with enrollment number, first name, last name,
semester, contact number. Store the details in database. Also implement search, delete and modify
facility for student records.
Code:
Form.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>Insert title here</title>
</head>
<body>
<form action="Insert.jsp">
<table border="1px solid black">
<tr>
<td>ENROLLMENT_NUMBER: </td>
<td><input type="text" name="en"></td>
</tr>
<tr>
<td>FIRSTNAME: </td>
<td><input type="text" name="fn"></td>
</tr>
<tr>
<td>LASTNAME: </td>
<td><input type="text" name="ln"></td>
</tr>
<tr>
<td>SEMESTER: </td>
<td><input type="text" name="se"></td>
</tr>
<tr>
<td>CONTACT_NUMBER: </td>
<td><input type="text" name="no"></td>
</tr>
<tr>
<td><input type="submit" value="Save"></td>
</tr>
</table>
</form>
<a href="Search.jsp">Search</a>
</body>
</html>
Insert.jsp
Search.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.sql.*"%>
<!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>Insert title here</title>
</head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection
c=DriverManager.getConnection("jdbc:mysql://localhost:3306/manual","root","root");
Statement st = c.createStatement();
ResultSet rs = st.executeQuery("select* from Prac5");
%>
<table border="1px solid black">
<tr>
<th>ID</th>
<th>ENROLLMENT_NUMBER</th>
<th>FIRSTNAME</th>
<th>LASTNAME</th>
<th>SEMESTER</th>
<th>CONTACT_NUMBER</th>
<th>Action</th>
</tr>
<%
while(rs.next())
{
int id = rs.getInt("id");
String en = rs.getString("Enrollment");
String fn = rs.getString("Firstname");
String ln = rs.getString("Lastname");
String se = rs.getString("Semester");
String no = rs.getString("Contactno");
%>
<tr>
<td><% out.println(id);%></td>
<td><% out.println(en);%></td>
<td><% out.println(fn);%></td>
<td><% out.println(ln);%></td>
<td><% out.println(se);%></td>
<td><% out.println(no);%></td>
<td><a href="Delete.jsp?x=<%=id%>">Delete</a></td>
<td><a href="Edit.jsp?y=<%=id%>">Edit</a></td>
</tr>
<%
}
%>
</body>
</html>
Edit.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.sql.*"%>
<!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>Insert title here</title>
</head>
<body>
<%
int id = Integer.parseInt(request.getParameter("y"));
int i=0;
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/manual","root","root");
Statement st = c.createStatement();
ResultSet rs =st.executeQuery("select * from Prac5 where id = "+ id);
%>
<%
while(rs.next())
{
int id1 = rs.getInt("id");
String en = rs.getString("Enrollment");
String fn = rs.getString("Firstname");
String ln = rs.getString("Lastname");
String se = rs.getString("Semester");
String no = rs.getString("Contactno");
%>
<form action="Update.jsp">
<table border="1px solid black">
<tr>
<td><input type="hidden" name="id1" value='<%=id1%>'></td>
</tr>
<tr>
<td>ENROLLMENT_NUMBER: </td>
<td><input type="text" name="en" value="<%=en%>"></td>
</tr>
<tr>
<td>FIRSTNAME: </td>
<td><input type="text" name="fn" value="<%=fn%>"></td>
</tr>
<tr>
<td>LASTNAME: </td>
<td><input type="text" name="ln" value="<%=ln%>"></td>
</tr>
<tr>
<td>SEMESTER: </td>
<td><input type="text" name="se" value="<%=se%>"></td>
</tr>
<tr>
<td>CONTACT_NUMBER: </td>
<td><input type="text" name="no" value="<%=no%>"></td>
</tr>
<tr>
<td><input type="submit" value="Update"></td>
</tr>
</table>
</form>
<%
}
c.close();
st.close();
%>
</body>
</html>
Update.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.sql.*"%>
<!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>Insert title here</title>
</head>
<body>
<%
int id =Integer.parseInt( request.getParameter("id1"));
String en = request.getParameter("en");
String fn = request.getParameter("fn");
String ln = request.getParameter("ln");
String se = request.getParameter("se");
String no = request.getParameter("no");
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/manual","root","root");
Statement st =c.createStatement();
st.executeUpdate("update Prac5 set Enrollment='"+en+"', Firstname='"+fn+"',
Lastname='"+ln+"',
Semester='"+se+"', Contactno='"+no+"' where id='"+id+"'");
st.close();
c.close();
response.sendRedirect("Search.jsp");
%>
</body>
</html>
Delete.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="java.sql.*"%>
<!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>Insert title here</title>
</head>
<body>
<%
int id = Integer.parseInt(request.getParameter("x"));
Class.forName("com.mysql.jdbc.Driver");
Connection
c=DriverManager.getConnection("jdbc:mysql://localhost:3306/manual","root","root");
Statement st = c.createStatement();
st.executeUpdate("delete from Prac5 where id="+id);
st.close();
c.close();
response.sendRedirect("Search.jsp");
%>
</body>
</html>
Output
Conclusion:
In this practical, student registration form is displayed with its all functionalities .
PRACTICAL SET – 6
Servlets: Servlets are small programs that execute on the server side of a web connection, it
dynamically extends the functionality of a web server. It is used to create a web application that
reside on the server side and generate a dynamic web page.
The javax.servlet and javax.servlet.http packages provide interfaces and classes for writing our
own servlets. The javax.servlet package contains many interfaces and classes that are used by the
servlet or web container. These are not specific to any protocol. The
javax.servlet.http package contains interfaces and classes that are responsible for http requests
only. All servlets must implement the javax.servlet.Servlet interface, which defines servlet
lifecycle methods. When implementing a generic service, we can extend the GenericServlet class
provided with the Java Servlet API. The HttpServlet class provides methods, such as doGet() and
doPost(), for handling HTTP-specificservices.
Code:
import java.io.*;
import javax.servlet.*;
res.setContentType("text/html");
//get stream obj
PrintWriter pw = res.getWriter();
//write req processing logic
java.util.Date date = new java.util.Date();
Conclusion:
In this practical, current system date and time is displayed using servlet
PRACTICAL SET – 7
Web.xml : The most important file of a Servlet application is web.xml file. The web.xml file is the
standard deployment descriptor for the Web application that the Web service is a part of. It declares
the filters and servlets used by the service. The general format of the web.xml is as given below.
It includes the servlet which are part of your application and its mapping to the appropriate url-
pattern, through which it can be accessed. All the Servlet used in application are mentioned in the
web.xmlfile.
<web-app …>
<?xml version="1.0" encoding="UTF-8"?>
<servlet>
<servlet-name>Demo1</servlet-name>
<servlet-class>Demo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo1</servlet-name>
<url-pattern>Demo1</servlet-class>
</servlet-mapping>
</web-app>
Apart from the Servlets, filters, listeners, configuration/initialization parameters, error pages,
welcome files, security and session management concepts can be included in web.xml file. The
initialization parameters can be included either for a specific servlet or for all the servlet in a
application, with help of init-param and context-param tags respectively. They can be accessed
with help of methods of ServletConfig and ServletContext interface, alongwith
getinitparameter(name) method. To add a initialization parameter to a particular servlet, it can
written as below, within the servlet tag:
<servlet>….
<init-param>
<param-name> semester </param-name>
<param-value> 6 </param-value>
</init-param>
</servlet>
RequestDispatcher : Defines an object that receives requests from the client and sends them to
any resource (such as a servlet, HTML file, or JSP file) on the server. The servlet container creates
the RequestDispatcher object, which is used as a wrapper around a server resource located at a
particular path or given by a particular name. This interface is intended to wrap servlets, but a
servlet container can create RequestDispatcher objects to wrap any type of resource. The
RequestDispatcher interface provides two important methods. Theyare:
1. public void forward(ServletRequest request, ServletResponse response) throws
ServletException, java.io.IOException: Forwards a request from a servlet to another
resource (servlet, JSP file, or HTML file) on theserver.
References:
[1] Java-2, The Complete Reference, by HerbertSchildt
[2] https://docs.oracle.com/
Aim : Write a Servlet to create a Login form with help of request dispatcher. If the login fails, it
should redirect back to loginpage, else to the next page.
Code:
index.html
Validation.java
import java.io.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
{
response.setContentType("text/html");
PrintWriter pwriter = response.getWriter();
String name=request.getParameter("uname");
String pass=request.getParameter("upass");
if(name.equals("Chaitanya") &&
pass.equals("beginnersbook"))
{
RequestDispatcher dis=request.getRequestDispatcher("welcome");
dis.forward(request, response);
}
else
{
pwriter.print("User name or password is incorrect!");
RequestDispatcher dis=request.getRequestDispatcher("index.html");
dis.include(request, response);
}
}
}
WelcomeUser.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
response.setContentType("text/html");
PrintWriter pwriter = response.getWriter();
String name=request.getParameter("uname");
pwriter.print("Hello "+name+"!");
pwriter.print(" Welcome to Beginnersbook.com");
}
web.xml
<web-app>
<display-name>BeginnersBookDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>Validation</servlet-class>
</servlet>
<servlet>
<servlet-name>Welcome</servlet-name>
<servlet-class>WelcomeUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/loginPage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Welcome</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Output:
Error screen:
Conclusion: we learned how to set the condition for checking a particular string and redirect the page if the string
match and show some pages on the browser using servlet.
PRACTICAL SET – 8
JavaServer Faces (JSF) is a MVC web framework that simplifies the construction of User Interfaces (UI) for server-
based applications using reusable UI components in a page. JSF provides a facility to connect UI widgets with data
sources and to server-side event handlers. The JSF specification defines a set of standard UI components and
provides an Application Programming Interface (API) for developing components. JSF enables the reuse and
extension of the existing standard UI components.
Code:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
Login.java
import java.io.IOException;
import java.io.PrintWriter;
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;
@WebServlet("/loginPage")
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
public Login() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
response.setContentType("text/html");
{
RequestDispatcher dis=request.getRequestDispatcher("welcome");
dis.forward(request, response);
}
else
{
pwriter.print("Username or password is incorrect!");
RequestDispatcher dis=request.getRequestDispatcher("index.html");
dis.include(request, response);
}
}
}
Welcome.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/welcome")
public class Welcome extends HttpServlet {
ServletException, IOException {
doGet(request, response);
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String name=request.getParameter("uname");
pw.print("Hello "+name+"!<br>");
pw.print(" Welcome to this site!");
}
}
Web.xml
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>Login</servlet-class>
</servlet>
<servlet>
<servlet-name>Welcome</servlet-name>
<servlet-class>Welcome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/loginPage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Welcome</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Output:
Conclusion: In this practical, login form with its functionalities is created in Servlet.
PRACTICAL SET – 9
It was started in 2001 by Gavin King as an alternative to EJB2 style entity bean. Hibernate is a
pure Java object-relational mapping (ORM) and persistence framework that allows you to map
plain old Java objects to relational database tables. The main goal of hibernate is to relieve the
developer from the common data persistence related tasks. It maps the objects in the java with the
tables in the database very efficiently and also you can get maximum using its data query and
retrieval facilities. Mainly by using Hibernate in your projects you can save incredible time and
effort. Hibernate framework simplifies the development of java application to interact with the
database. Hibernate is an open source, lightweight, ORM (Object Relational Mapping)tool.
Advantages of Hibernate
Opensource and Lightweight: Hibernate framework is
opensource under the LGPL license and lightweight.
Fast performance: The performance of hibernate
framework is fast because cache is internally used in
hibernate framework. There are two types of cache in
hibernate framework first level cache and second level
cache. First level cache is enabled by default.
Database Independent query: HQL (Hibernate Query
Language) is the object-oriented version of SQL. It
generates the database independent queries. So you don't
need to write database specific queries.
Automatic table creation: Hibernate framework provides
the facility to create the tables of the database
automatically. So there is no need to create tables in the
database manually. Directory Structure
Simplifies complex join: To fetch data from multiple tables is easy in hibernate framework.
References:
[1] https://www.javatpoint.com/jsp-implicit-objects
[2] Hibernate 2nd edition, Jeff Linwood and Dave Minter, Beginning Aprèspublication
Aim: Write Hibernate application to store customer records and retrieve the customer record including
name, contact number, address.
Code:
RegController.java File
package com.controller;
import java.io.IOException;
import java.util.List;
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 javax.servlet.http.HttpSession;
import com.dao.RegDAO;
import com.vo.RegVO;
/**
* Servlet implementation class RegController
*/
@WebServlet("/RegController")
public class RegController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RegController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
if(flag.equals("Delete"))
{
Delete(request,response);
Search(request,response);
}
if(flag.equals("Edit"))
{
Edit(request,response);
}
if(flag.equals("Update"))
{
Update(request,response);
Search(request,response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String flag = request.getParameter("flag");
if(flag.equals("Insert")){
Insert(request,response);
response.sendRedirect("form.jsp");
}
}
protected void Insert(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
String fn = request.getParameter("fn");
String ln = request.getParameter("ln");
String cn = request.getParameter("cn");
String add = request.getParameter("add");
RegVO regVO = new RegVO();
regVO.setFn(fn);
regVO.setLn(ln);
regVO.setCn(cn);
regVO.setAdd(add);
RegDAO regDAO = new RegDAO();
regDAO.Insert(regVO);
}
protected void Search(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
RegDAO regDAO = new RegDAO();
List searchList = regDAO.Search();
ServletException, IOException {
int idu = Integer.parseInt(request.getParameter("idupdate"));
String fn1 = request.getParameter("fn");
String ln1 = request.getParameter("ln");
String cn1 = request.getParameter("cn");
regVO3.setLn(ln1);
regVO3.setCn(cn1);
regVO3.setAdd(add1);
RegDAO regDAO = new RegDAO();
regDAO.Update(regVO3);
}
}
RegDAO.java File
package com.dao;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.vo.RegVO;
public class RegDAO {
public void Insert(RegVO regVO) {
session.close();
}
public List Search() {
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
session.close();
return searchList;
}
public void Delete(RegVO regVO1)
{
try
{
SessionFactory sessionFactory = new
AnnotationConfiguration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
session.delete(regVO1);
transaction.commit();
session.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
{
SessionFactory sessionFactory = new
AnnotationConfiguration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
}
catch(Exception ex)
{
ex.printStackTrace();
}
return ls1;
}
public void Update(RegVO regVO3) {
try
{
transaction.commit();
session.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
RegVO.java File
package com.vo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="hibernate_tbl")
@Column(name="FirstName")
private String fn;
@Column(name="LastName")
private String ln;
@Column(name="Contact_Number")
return id;
}
public void setId(int id) {
this.id = id;
}
}
public String getLn() {
return ln;
}
public void setLn(String ln) {
this.ln = ln;
}
public String getCn() {
return cn;
}
}
public void setAdd(String add) {
this.add = add;
}
hibernate.cfg.xml File
<?xml version="1.0" encoding="UTF-8"?>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/manual</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping class="com.vo.RegVO"/>
</session-factory>
</hibernate-configuration>
form.jsp File
<%@ 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>Insert title here</title>
</head>
<body>
<form action="RegController" method="post">
<table border="1px solid black">
<tr>
<td>First_Name: </td>
</tr>
<tr>
<td>Contact_Number: </td>
<td><input type="text" name="cn"></td>
</tr>
<tr>
<td>Address: </td>
<td><input type="text" name="add"></td>
<td><input type="hidden" name="flag" value="Insert"></td>
</tr>
<tr>
<td><input type="submit" value="Save"></td>
</tr>
</table>
</form>
<a href="RegController?flag=Search">Search</a>
</body>
</html>
edit.jsp File
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<body>
<form action="RegController" method="get">
<table border="1px solid black">
<c:forEach var="i" items = "${sessionScope.data1}">
<input type=hidden name=idupdate value="${i.id}">
<tr>
<td>First_Name: </td>
<td><input type="text" name="fn" value="${i.fn}"></td>
</tr>
<tr>
<td>Last_Name: </td>
<td><input type="text" name="ln" value="${i.ln}"></td>
</tr>
<tr>
<td>Contact_Number: </td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
search.jsp File
<%@ 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>Insert title here</title>
</head>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<body>
<table border="1px solid black">
<tr>
<th>Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Contact Number</th>
<th>Address</th>
<th>Action</th>
</tr>
<c:forEach items="${sessionScope.data}" var="i" varStatus="j">
<tr>
<td>${j.count}</td>
<td>${i.fn}</td>
<td>${i.ln}</td>
<td>${i.cn}</td>
<td>${i.add}</td>
<td><a href="RegController?flag=Delete&x=${i.id}">Delete</td>
<td><a href="RegController?flag=Edit&y=${i.id}">Edit</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
Output:
Conclusion: In this practical, customers records is stored and retrieved using hibernate application.
PRACTICAL SET – 10
It was developed by Rod Johnson in 2003. Spring framework makes the easy development of
JavaEE application. It is helpful for beginners and experienced persons. Spring is a
lightweight framework. It can be thought of as a framework of frameworks because it provides
support to various frameworks such as Struts, Hibernate, EJB, JSF etc. The framework, in broader
sense, can be defined as a structure where we find solution of the various technical problems.
Spring is lightweight when it comes to size and transparency. Spring framework targets to make
J2EE development easier to use and promote good programming practice by enabling a POJO-
based programmingmodel.
Advantages of Spring
Directory Structure
Spring Framework
References:
[1] https://www.javatpoint.com/jsp-implicit-objects
[2] Spring in Action 3rd edition , Craig walls, ManningPublication
Aim: Write an application to keep record and retrieve record of student. The record includes student id,
enrollment number, semester, SPI. Use MVC architecture.
Code:
Index.jsp
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>INDEX PAGE</title>
</head>
<body>
<a href="load.html">INSERT</a>
<br />
<a href="search.html">SEARCH</a>
<br />
</body>
</html>
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com"/><!-- base package name which contains con,dao,vo packages -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" /><!--exclude index page all other jsp pages are
include in WEB-INF folder-->
<property name="suffix" value=".jsp" /><!--extension of those pages-->
</bean>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedClasses">
<list>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>spring</servlet-name><!--servlet name should be same as per file name-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
Registration.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>REGISTRATION PAGE</title>
</head>
<%@taglib prefix="f" uri="http://www.springframework.org/tags/form"%>
<body>
<f:form action="insert.html" post="Post" modelAttribute="RegVO">
<tr>
<td>ENROLLMENT_NUMBER:</td>
<td> <f:input path="enrollment" /></td>
</tr>
<tr>
<td>SEMESTER:</td>
<td><f:input path="semester" /></td>
</tr>
<tr>
<td>SPI:</td>
<tr>
<td> <input type="submit" value="Submit"></td>
</tr>
</table>
</f:form>
</body>
</html>
Search.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>
<th>SEMESTER</th>
<th>SPI</th>
<th>ACTION</th>
</tr>
<c:forEach items="${SearchList}" var="p">
<tr>
<td>${p.id}</td>
<td>${p.studentID}</td>
<td>${p.enrollment}</td>
<td>${p.semester}</td>
<td>${p.SPI}</td>
<td colspan="2"><a href="delete.html?id=${p.id}">Delete</a> <a
href="edit.html?id=${p.id}">Edit</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
RegController.java
package com.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.dao.RegDAO;
import com.model.RegVO;
@Controller
regDAO.insert(regVo);
return new ModelAndView("redirect:/search.html");
}
@RequestMapping(value = "search.html", method = RequestMethod.GET)
public ModelAndView Search() {
RegDAO.java
package com.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.model.RegVO;
@Repository
public class RegDAO {
@Autowired
SessionFactory sessionFactory;
public void insert(RegVO regVO) {
try {
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
session.saveOrUpdate(regVO);
transaction.commit();
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
session.close();
return ls;
}
public void delete(RegVO regVO) {
Session session = sessionFactory.openSession();
return ls;
}
}
RegVO.java
package com.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Spring")
@Column(name="Semester")
private String semester;
@Column(name="SPI")
private String spi;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
public String getEnrollment() {
return enrollment;
}
}
public void setSemester(String semester) {
this.semester = semester;
}
public String getSPI() {
return spi;
}
public void setSPI(String spi) {
this.spi = spi;
}
}
Output:
Conclusion: From this practical we learned about spring mvc framework and its implementation with CRUD
operation