Advance Java Lab: Ssipmt
Advance Java Lab: Ssipmt
SSIPMT
CERTIFICATE
2020-21.
Signature of Faculty
Date:
Index
GRADE : _________________________
<web-app>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>DateDisplay</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/DateDisplay</url-pattern>
</servlet-mapping>
</web-app>
Experiment 2
Write a server-side program for Finding Factorial of number.
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;
long fact(long a) {
if (a <= 1)
return 1;
else {
a = a * fact(a - 1);
return a;
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>servletBasicExample</display-name>
<servlet>
<servlet-name>FactorialServlet</servlet-name>
<servlet-class>simpleServletExample.FactorialServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FactorialServlet</servlet-name>
<url-pattern>/factorialServlet</url-pattern>
</servlet-mapping>
</web-app>
Experiment 3
Write a Server-side program in JSP/SERVLET for performing
Addition of two no accept numbers from client side by using
HTML form
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;
JSP code
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Class.forName(dbDriver);
Connection con = DriverManager.getConnection(dbURL + dbName,
dbUsername,
dbPassword);
return con;
}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// Servlet Name
@WebServlet("/InsertData")
public class InsertData extends HttpServlet {
private static final long serialVersionUID = 1L;
switch (menu) {
case 1:
System.out.print("Enter student ID: ");
int ID = scan.nextInt();
System.out.print("Enter Name: ");
String name = scan.next();
System.out.print("Enter Address: ");
String address = scan.next();
System.out.println("Enter Phone No: ");
int no = scan.nextInt();
FileWriter fw = new FileWriter(new File("directory.txt"), true);
BufferedWriter out = new BufferedWriter(fw);
out.write(ID + " " + name + " " + address + " " + no);
out.newLine();
out.close();
break;
case 2:
System.out.print("Enter name to search information: ");
String n = scan.next();
File f = new File("directory.txt");
try {
BufferedReader freader = new BufferedReader(new
FileReader(f));
String s;
while ((s = freader.readLine()) != null) {
String[] st = s.split(" ");
String id = st[0];
String nm = st[1];
String add = st[2];
String phoneNo = st[3];
if (n.equals(nm)) {
System.out .println(********Information********");
System.out.println("Address : " + add);
System.out.println("PhoneNo : " + phoneNo);
}
}
freader.close();
} catch (Exception e) {
}
break;
case 3:
File file = new File("directory.txt");
FileInputStream fstream = new FileInputStream(file);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(
new InputStreamReader(in));
String strLine;
ArrayList list = new ArrayList();
while ((strLine = br.readLine()) != null) {
list.add(strLine);
}
int j = 0;
Directory data[] = new Directory[list.size()];
try {
Iterator itr;
for (itr = list.iterator(); itr.hasNext();) {
String str = itr.next().toString();
String[] splitSt = str.split(" ");
String id = "", nn = "", add = "", pno = "";
for (int i = 0; i < splitSt.length; i++) {
id = splitSt[0];
nn = splitSt[1];
add = splitSt[2];
pno = splitSt[3];
}
data[j] = new Directory();
data[j].setId(Integer.parseInt(id));
data[j].setName(nn);
data[j].setAddress(add);
data[j].setPhoneNo(Integer.parseInt(pno));
j++;
}
case 4:
FileInputStream fis = new FileInputStream(new File(
"directory.txt"));
DataInputStream dis = new DataInputStream(fis);
BufferedReader reader = new BufferedReader(
new InputStreamReader(dis));
String st;
ArrayList al = new ArrayList();
while ((st = reader.readLine()) != null) {
al.add(st);
}
Iterator itr;
for (itr = al.iterator(); itr.hasNext();) {
String str = itr.next().toString();
String[] splitSt = str.split(" ");
String id = "", na = "", ada = "", ph = "";
for (int i = 0; i < splitSt.length; i++) {
id = splitSt[0];
na = splitSt[1];
ada = splitSt[2];
ph = splitSt[3];
}
System.out.println(id + " " + na + " " + ada + " " + ph);
}
break;
case 5:
quit = true;
break;
default:
System.out.println("Invalid Entry!");
}
} while (!quit);
}
}
HTML CODE
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>login</title>
</head>
<body>
<form action="login.jsp" method="post">
User name :<input type="text" name="usr" /><br>
password :<input type="password" name="password" /><br>
<input type="submit" /> </form>
<p>New user. <a href="register.html">Login Here</a>. </body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*,java.util.*"%>
<%
String userid=request.getParameter("userid");
session.putValue("userid",userid);
String password=request.getParameter("password");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root",""
);
Statement st= con.createStatement();
ResultSet rs=st.executeQuery("select * from users where userid='"+userid+"'
and password='"+password+"'");
try{
rs.next();
if(rs.getString("password").equals(password)&&rs.getString("userid").equals(
userid))
{
out.println("Welcome " +userid);
}
else{
out.println("Invalid password or username.");
}
}
catch (Exception e) {
e.printStackTrace();
}
%>
register.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>new registration</title>
</head>
<body>
<form action="reg-process.jsp" method="post">
First name :<input type="text" name="fname" />
Last name :<input type="text" name="lname" />
Email ID :<input type="text" name="email" />
User name :<input type="text" name="userid" />
password :<input type="password" name="password" />
<input type="submit" />
</form>
</body>
</html>
reg-process.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*,java.util.*"%>
<%
String fname=request.getParameter("fname");
String lname=request.getParameter("lname");
String email=request.getParameter("email");
String userid=request.getParameter("userid");
String password=request.getParameter("password");
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root",
"");
Statement st=conn.createStatement();
int i=st.executeUpdate("insert into
users(fname,lname,email,userid,password)values('"+fname+"','"+lname+"','"+
email+"','"+userid+"','"+password+"')");
out.println("Thank you for register ! Please <a href='index.html'>Login</a> to
continue.");
}
catch(Exception e)
{
System.out.print(e);
e.printStackTrace();
}
%>
Experiment 8
Write a Server-side program in JSP/SERVLET for solving
Quadratic Equation accept necessary parameters from HTML
form.
Index.jsp
<html>
<body>
<font color="gray" size="5">
Program For Quadratic Equation.
</font>
<form action="quad.jsp" method="GET">
<table><tr><td> Enter coefficients a : </td><td><input type="text"
name="a"><br><br></td></tr>
<tr><td> Enter coefficients b : </td><td><input type="text"
name="b"><br><br></td></tr>
<tr><td> Enter coefficients c : </td><td><input type="text"
name="c"><br><br></td></tr>
<br />
<tr><td><input type="submit" value="Submit" /></td></tr>
</table>
</form>
</body>
</html>
Quad.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quadratic Equation</title>
</head>
<body>
<h1>Quadratic Equation </h1>
<%
double a, b, c, determinant,r1,r2, real, imag;
String f1 = request.getParameter("a");
String f2 = request.getParameter("b");
String f3 = request.getParameter("c");
a = Double.parseDouble(f1);
b = Double.parseDouble(f2);
c = Double.parseDouble(f3);
determinant=b*b-4*a*c;
if (determinant>0)
{
r1= (-b+Math.sqrt(determinant))/(2*a);
r2= (-b-Math.sqrt(determinant))/(2*a);
out.println("Roots are : = "+r1+" and "+r2);
}
else if (determinant==0)
{
r1 = r2 = -b/(2*a);
out.println("Roots are : = "+r1+" and "+r2);
}
else
{
real= -b/(2*a);
imag = Math.sqrt(-determinant)/(2*a);
out.println("Roots are : = "+real+" and "+imag);
}
%>
<font color =" gray" size="5">
<%
%>
</font>
</body>
</html>
Experiment 9
Develop JSP program to display the grade of a student by
accepting the marks of five subject.
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
</head>
<body>
<center>
<h1>Student marks</h1>
<form action="marks.jsp" method="get">
Enter Makrs in Java : <input type="text" name="java"> <br><br>
Enter NMA Marks : <input type="text" name="NMA"><br><br>
Enter MCAD Marks :<input type="text" name="MCAD"><br><br>
Enter PPUD Marks :<input type="text" name="PPUD"><br><br>
Enter Project Marks :<input type="text" name="pro"><br><br>
<input type="submit">
</form>
</center>
</body>
</html>
*Marks.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
int java=Integer.parseInt(request.getParameter("java"));
int NMA=Integer.parseInt(request.getParameter("NMA"));
int MCAD=Integer.parseInt(request.getParameter("MCAD"));
int PPUD=Integer.parseInt(request.getParameter("PPUD"));
int Project=Integer.parseInt(request.getParameter("pro"));
int c=java+NMA+MCAD+PPUD+Project;
double avg=c/5;
if(avg > 90 )
{
out.println(" your grade is A");
}else if (avg >= 80) {
out.println("your grade is b");
} else if (avg >= 70) {
out.println("your grade is c");
} else if (avg >= 60) {
out.println("your grade is d");
} else {
out.println("your grade is e");
}
%>
</body>
</html>
Experiment 10
Create tables in the database which contain the details of items
(books in our case like Book name, Price, Quantity, Amount)) of
each category. Modify your catalogue page in such a way that you
should connect to the database and extract data from the tables
and display them in the catalogue page using JDBC.
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
</dependencies>
public Book() {
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
connect();
while (resultSet.next()) {
int id = resultSet.getInt("book_id");
String title = resultSet.getString("title");
String author = resultSet.getString("author");
float price = resultSet.getFloat("price");
resultSet.close();
statement.close();
disconnect();
return listBook;
}
connect();
connect();
if (resultSet.next()) {
String title = resultSet.getString("title");
String author = resultSet.getString("author");
float price = resultSet.getFloat("price");
resultSet.close();
statement.close();
return book;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Books Store Application</title>
</head>
<body>
<center>
<h1>Books Management</h1>
<h2>
<a href="/new">Add New Book</a>
<a href="/list">List All Books</a>
</h2>
</center>
<div align="center">
<table border="1" cellpadding="5">
<caption><h2>List of Books</h2></caption>
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th>Price</th>
<th>Actions</th>
</tr>
<c:forEach var="book" items="${listBook}">
<tr>
<td><c:out value="${book.id}" /></td>
<td><c:out value="${book.title}" /></td>
<td><c:out value="${book.author}" /></td>
<td><c:out value="${book.price}" /></td>
<td>
<a href="/edit?id=<c:out value='${book.id}' />">Edit</a>
<a href="/delete?id=<c:out value='${book.id}' />">Delete</a>
</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Books Store Application</title>
</head>
<body>
<center>
<h1>Books Management</h1>
<h2>
<a href="/new">Add New Book</a>
<a href="/list">List All Books</a>
</h2>
</center>
<div align="center">
<c:if test="${book != null}">
<form action="update" method="post">
</c:if>
<c:if test="${book == null}">
<form action="insert" method="post">
</c:if>
<table border="1" cellpadding="5">
<caption>
<h2>
<c:if test="${book != null}">
Edit Book
</c:if>
<c:if test="${book == null}">
Add New Book
</c:if>
</h2>
</caption>
<c:if test="${book != null}">
<input type="hidden" name="id" value="<c:out value='${book.id}' />"
/>
</c:if>
<tr>
<th>Title: </th>
<td>
<input type="text" name="title" size="45"
value="<c:out value='${book.title}' />"
/>
</td>
</tr>
<tr>
<th>Author: </th>
<td>
<input type="text" name="author" size="45"
value="<c:out value='${book.author}' />"
/>
</td>
</tr>
<tr>
<th>Price: </th>
<td>
<input type="text" name="price" size="5"
value="<c:out value='${book.price}' />"
/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Save" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* ControllerServlet.java
* This servlet acts as a page controller for the application, handling all
* requests from the user.
* @author www.codejava.net
*/
public class ControllerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private BookDAO bookDAO;
try {
switch (action) {
case "/new":
showNewForm(request, response);
break;
case "/insert":
insertBook(request, response);
break;
case "/delete":
deleteBook(request, response);
break;
case "/edit":
showEditForm(request, response);
break;
case "/update":
updateBook(request, response);
break;
default:
listBook(request, response);
break;
}
} catch (SQLException ex) {
throw new ServletException(ex);
}
}
private void listBook(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
List<Book> listBook = bookDAO.listAllBooks();
request.setAttribute("listBook", listBook);
RequestDispatcher dispatcher = request.getRequestDispatcher("BookList.jsp");
dispatcher.forward(request, response);
}
}
}
public void init() {
String jdbcURL = getServletContext().getInitParameter("jdbcURL");
String jdbcUsername = getServletContext().getInitParameter("jdbcUsername");
String jdbcPassword = getServletContext().getInitParameter("jdbcPassword");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getServletPath();
try {
switch (action) {
case "/new":
showNewForm(request, response);
break;
case "/insert":
insertBook(request, response);
break;
case "/delete":
deleteBook(request, response);
break;
case "/edit":
showEditForm(request, response);
break;
case "/update":
updateBook(request, response);
break;
default:
listBook(request, response);
break;
}
} catch (SQLException ex) {
throw new ServletException(ex);
}
}
private void listBook(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
List<Book> listBook = bookDAO.listAllBooks();
request.setAttribute("listBook", listBook);
RequestDispatcher dispatcher = request.getRequestDispatcher("BookList.jsp");
dispatcher.forward(request, response);
}
This method uses the DAO class to retrieve all books from the database, and then
forward to the BookList.jsp page for displaying the result. Similar logic is
implemented for the rest methods.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Books Management Web Application</display-name>
<context-param>
<param-name>jdbcURL</param-name>
<param-value>jdbc:mysql://localhost:3306/bookstore</param-value>
</context-param>
<context-param>
<param-name>jdbcUsername</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>jdbcPassword</param-name>
<param-value>P@ssw0rd</param-value>
</context-param>
<servlet>
<servlet-name>ControllerServlet</servlet-name>
<servlet-class>net.codejava.javaee.bookstore.ControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControllerServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Error.jsp</location>
</error-page>
</web-app>