Practical 1

Simple Server-Side programming using Servlet

1.1. Write a servlet that accepts single-valued (Name, Mobile No.) as well as multi-valued (Languages known, Hobbies) parameters like check boxes and multiple selection list boxes from an HTML document and outputs them to the screen.

index.html

html

<head

<title>TODO supply a title</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body

<form method="post" action="abc">

<table border=1>

<tr

<td>Name</td>

<td<input type="text" name="Name"</td>

</tr

<tr

<td>Tel.No</td>

<td<input type="text" name="Telno"</td>

</tr

<tr

<td>Language</td>

<td<input type=checkbox name=language value=eng>Eng</td>

<td<input type=checkbox name=language value=mar>Marathi</td>

<td<input type=checkbox name=language value=hin>Hindi</td>

</tr

<tr

<td>Software</td>

<td

<select multiple size=5 name="software">

<option>Excel

<option>VB

<option>Java

<option>C++

</select</td</tr

<tr

<td<input type=submit value=submit</td>

<td<input type=reset</td>

</tr

</table>

</form>

</body>

</html>

abc.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.Enumeration;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/abc"})

public class abc extends HttpServlet

{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter())

{

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet abc</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Servlet abc at " + request.getContextPath() + "</h1>");

out.println("</body>");

out.println("</html>");

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

try

{

response.setContentType("text/html");

Enumeration e=request.getParameterNames();

PrintWriter out = response.getWriter();

while(e.hasMoreElements())

{

String name=(String)e.nextElement();

out.println(name);

String[] value=request.getParameterValues(name);

for(int i=0;i<value.length;i++)

{

out.print(value[i]+"<tr>");

}

}

}

catch(Exception e)

{

System.out.println("ERROR ="+e.getMessage());

}

}

}

}

@Override

public String getServletInfo()

{

return "Short description";

}

}

Output :

1.2. Write a Servlet program that accepts an integer n from html form calculates and displays the factorial of n. If the number is negative, it should redirect to a different error page having link to the html form.

index.html

html

<head

<title>Factorial</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body

<form action="Factorial" method="get">

Enter Number :<input type="text" name="t1">

<brbr

<input type="submit" value="submit">

</form>

</body>

</html>

Factorial.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/Factorial"})

public class Factorial extends HttpServlet

{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter()) {

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet Factorial</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Servlet Factorial at " + request.getContextPath() + "</h1>");

out.println("</body>");

out.println("</html>");

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter pw= response.getWriter())

{

int x=Integer.parseInt(request.getParameter("t1"));

int f=1;

for(int i=1;i<=x;i++)

{

f=f*i;

}

pw.println(f);

}

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

processRequest(request, response);

}

@Override

public String getServletInfo() {

return "Short description";

}

}

Output :

Practical 2

Advance Server-side programming using Servlets.

2.1.Write two servlets in which one servlet will display aform in which data entry can be done for the field’s dept-no,dept-name and location. In the same form place a button calledas submit and on click of that button this record should beposted to the table called as DEPT in the database. Thisinserting of record should be done in another servlet. Thesecond servlet should also display all the previous record

entered in the database.

NewServlet.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/NewServlet1"})

public class NewServlet1 extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter())

{

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet NewServlet1</title>");

out.println("</head>");

out.println("<body>");

out.println("<Form name=frm method="+"POST"+" action=NewServlet>");

out.println("DepartmentNo: <input type=text name=txtNobr>");

out.println("DepartmentName: <input type=text name=txtNamebr>");

out.println("Location: <input type=text name=txtLocbr>");

out.println("<input type=submit name=Submit>");

out.println("<input type=reset name=Reset>");

out.println("</form>");

out.println("</body>");

out.println("</html>");

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

processRequest(request, response);

}

@Override

public String getServletInfo()

{

return "Short description";

}

}

NewServlet1.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.ResultSetMetaData;

importjava.sql.SQLException;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/NewServlet"})

public class NewServlet extends HttpServlet

{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter())

{

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet NewServlet</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");

out.println("</body>");

out.println("</html>");

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

String a,b,c,d,e,f;

int i;

Connection con = null;

try

{

response.setContentType("text/html");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:First");

String Query="insert into dept Values(?,?,?)";

java.sql.Statementst=con.createStatement();

PreparedStatementps;

ps=con.prepareStatement(Query);

a=(String)request.getParameter("txtNo");

b=(String)request.getParameter("txtName");

c=(String)request.getParameter("txtLoc");

ps.setString(1,a);

ps.setString(2,b);

ps.setString(3,c);

ps.executeUpdate();

PrintWriter out=response.getWriter();

ResultSetrs=st.executeQuery("select * from dept");

ResultSetMetaData md=rs.getMetaData();

intnum=md.getColumnCount();

out.println("<html<body<table border=1<tr>");

for(i=1;i<=num;i++)

{

out.print("<th>"+md.getColumnName(i)+"</th>");

}

out.println("</tr>");

while(rs.next())

{

d=rs.getString(1);

e=rs.getString(2);

f=rs.getString(3);

out.println("<tr<td>"); out.println(d);

out.println("</td<td>"); out.println(e);

out.println("</td<td>"); out.println(f);

out.println("</td</tr>");

}

out.println("</table>");

con.commit();

out.println("<a href=Newservlet1.java>BACK</a>");

out.println("</body</html>");

}

catch ( ClassNotFoundException | SQLException | IOExceptionae)

{

System.out.println(ae.getMessage());

}

}

Output :

2.2. Write a Servlet that accepts a username from a HTML form and stores it as a session variable. Write another Servlet that returns the value of this session variable and displays it.

index.html

html

<head

<title>TODO supply a title</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body

<form action="Servlet1">

Name :

<input type="text" name="Username"/<br

<input type="submit" value="go"/>

</form>

</body>

</html>

NewServlet.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

@WebServlet(urlPatterns = {"/NewServlet"})

public class NewServlet extends HttpServlet

{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter()) {

String n= request.getParameter("Username");

out.print("Welcome" +n);

HttpSession session=request.getSession();

session.setAttribute("Uname",n);

out.print("<a href = 'NewServlet1'>Visit</a>");

}

}

NewServlet1.java

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

@WebServlet(urlPatterns = {"/NewServlet1"})

public class NewServlet1 extends HttpServlet

{

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter())

{

HttpSession session=request.getSession(false);

String n=(String)session.getAttribute("Uname");

out.print("Hello " +n);

}

}

Output :

Practical 3

Simple Server-side programming using JSP

3.1. Write JSP files that accept a number from the HTML form and

  • Displays whether it is even or odd.
  • It’s Factorial
  • Multiplication table.

Index.html

html

<head

<title>TODO supply a title</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body

<form action="NewJSP.jsp">

Enter Number :

<brbr

<input type="text" name="n">

<input type="submit" value="Submit">

</form>

</body>

</html>

NewJSP.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

<h4>

<%int n=0,i;

int fact=1;

String ns=request.getParameter("n");

n=Integer.parseInt(ns);

if(n>1)

{

fact=1;

for(i=1;i<=n;i++)

{

fact=fact*i;

}

}

out.println("Factorial of that number is= "+ fact);

%>

<brbr

<%

if(n%2==0)

{

out.println("This number is even");

}

else

{

out.println("This number is odd");

}

%>

<brbr

<%

for(int k=1;k<=10;k++)

{

out.println(n*k);

}

%>

</h4>

</body>

</html>

Output:

3.2. Write a JSP page to accept two numbers (m,n) from the user, on click of the submit button display on a new JSP page all prime numbers between m and n. If the number m is not less than n (m<n), it should redirect to a different error page having link to the JSP form.

Index.html

html

<head

<title>TODO supply a title</title>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body

<form action="PrimeNumber.jsp">

Enter the lower bound :

<input type="text" name="n">

<brbr

Enter the upper bound :

<input type="text" name="n1">

<brbr

<input type="submit" value="submit">

</form>

</body>

</html>

PrimeNumber.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

<%

intp,d=2;

intPrimeflag;

String r1=request.getParameter("n");

int n=Integer.parseInt(r1);

String r2=request.getParameter("n1");

int n1=Integer.parseInt(r2);

for(p=n;p<=n1;p++)

{

Primeflag=1;

for(d=2;d<=p-1;d++)

{

if(p%d==0)

{

Primeflag=0;

}

}

if(Primeflag==1)

out.print("\t" +p);

}

%>

</body>

</html

Output :

Practical 4

Advance Server-side programming using JSP.

4.1. Write a JSP page, which displays three text boxesfor Department Number, Department Name and Location. Onclick of the submit button call another JSP page which will enter the values in the database with the help ofPreparedStatement class. Also use jspInit() and jspDestroy() toopen and close the connection. (Register.jsp).

DeptForm.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

<form method=GET action="Register1.jsp">

table

tr<td>DepartmentNo: </td<td> <input type=text name=txtNo</td</tr

tr<td>DepartmentName: </td<td<input type=text name=txtName</td</tr

tr<td>Location:</td<td> <input type=text name=txtLoc</td</tr

</table>

<input type=submit value=Submit>

<input type=reset name=Reset>

</Form>

</body>

</html>

Resigter1.jsp

<%--

Document : Register1

Created on : Feb 20, 2017, 10:18:03 PM

Author : USER

--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<%@ page import="java.sql.*" %>

<%! String a,b,c,d,e,f,Query; %>

<%! Connection con;

Statement st;

PreparedStatementps; %>

<%! inti,num; %>

<%!

public void jspInit()

{

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con=DriverManager.getConnection("jdbc:odbc:connect");

st=con.createStatement();

Query="insert into Dept values(?,?,?)";

ps=con.prepareStatement(Query);

}

catch(Exception e){System.out.println("Error: "+e.getMessage());}

}

%>

<%

a=(String)request.getParameter("txtNo");

b=(String)request.getParameter("txtName");

c=(String)request.getParameter("txtLoc");

ps.setInt(1,Integer.parseInt(a));

ps.setString(2,b);

ps.setString(3,c);

ps.executeUpdate();

con.commit();

ResultSetrs=st.executeQuery("select * from Dept");

%>

html

<head

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP Page</title>

</head>

<body

<table border=1>

trthDept No </ththDept Name</thth>Location</th</tr

<%

while(rs.next())

{

%>

tr

<% for(int j=0;j<=2;j++)

{

Object obj=rs.getObject(j+1);

%>

td<%=obj.toString()%</td>

<%

}

}

%>

</tr

</table>

<%!

public void jspDestroy()

{ try

{

ps.close();

st.close();

}

catch(Exception e){System.out.println("Error:"+e.getMessage());}

}%>

</body>

</html>

Output :

4.2. Create a java bean that gives information about the current time. The bean has getter properties for time, hour, minute, second. Write a JSP page that uses the bean and display all the information.

CalenderB.java

packagemyclass;

importjava.util.Calendar;

importjava.util.Date;

public class CalenderB

{

private final Calendar calendar;

publicCalenderB()

{

calendar = Calendar.getInstance();

}

public Date Time;

public Date getTime()

{

returncalendar.getTime();

}

publicint Hour;

publicintgetHour()

{

returncalendar.get(Calendar.HOUR_OF_DAY);

}

publicint Minute;

publicintgetMinute()

{

returncalendar.get(Calendar.MINUTE);

}

publicint Second;

publicintgetSecond()

{

returncalendar.get(Calendar.SECOND);

}

}

BeanTime.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

<jsp:useBean class="myclass.CalenderB" id="cal"/>

<pre

Time : <jsp:getProperty name="cal" property="time"/> <br

Hour :jsp:getProperty name="cal" property="hour"/> <br

Minute : <jsp:getProperty name="cal" property="minute"/> <br

Second : <jsp:getProperty name="cal" property="second"/> <br

</pre>

</body>

</html>

Output :

Practical 5

Developing Simple Enterprise Java Beans

5.1. Develop Converter Stateless Session Bean. Write enterprise application for converting Japanese Yen currency to Eurodollars currency. Converter consists of an enterprise bean, which performs the calculations, and a web client(JSP/Servlet) or Application Client.

Jspfile :

<%@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

<form method = "get" action="ConverterServlet">

<table border="2">

<tr

<td> Enter Amount </td>

<td> <input type="text" name="txtnum"> </td>

</tr

<tr

<td> <input type="Submit" name="Submit"> </td>

</tr>

</table>

</form>

</body>

</html>

ConverterBeanoneRemote.java

package Server;

importjava.math.BigDecimal;

importjavax.ejb.Remote;

@Remote

public interface ConverterBeanoneRemote

{

BigDecimaldollarToYen(BigDecimal dollars);

BigDecimalyenToEuro(BigDecimal yen);

}

ConverterBeanone.java

package Server;

importjava.math.BigDecimal;

importjavax.ejb.Stateless;

@Stateless

public class ConverterBeanone implements ConverterBeanoneRemote

{

privateBigDecimaleuroRate=new BigDecimal("0.0070");

privateBigDecimalyenRate=new BigDecimal("112.58");

@Override

publicBigDecimaldollarToYen(BigDecimal dollars)

{

BigDecimal result=dollars.multiply(yenRate);

returnresult.setScale(2,BigDecimal.ROUND_UP) ;

}

@Override

publicBigDecimalyenToEuro(BigDecimal yen)

{

BigDecimal result=yen.multiply(euroRate);

returnresult.setScale(2,BigDecimal.ROUND_UP);

}

}

ConverterServlet.java

package server;

importServer.ConverterBeanoneRemote;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.math.BigDecimal;

importjavax.ejb.EJB;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet(name = "ConverterServlet", urlPatterns = {"/ConverterServlet"})

public class ConverterServlet extends HttpServlet

{

@EJB(name = "Conv")

privateConverterBeanoneRemoteconv;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException

{

response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter())

{

out.println("<!DOCTYPE html>");

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet ConverterServlet</title>");

out.println("</head>");

out.println("<body>");

String str=request.getParameter("txtnum");

inttxtnum=Integer.parseInt(str);

BigDecimalnum=new BigDecimal(txtnum);

out.println("<h2> Dollar To Yen"+conv.dollarToYen(num)+ "</h2>");

out.println("<h2> yen to euro" +conv.yenToEuro(num)+" </h2>");

out.println("</body>");

out.println("</html>");

}

}

Output :

5.2. . Develop Calculator Stateless Session Bean. Write enterprise application for adding, subtracting, multiplying and dividing two numbers. Calculator consists of an enterprise bean, which performs the calculations, and a web client(JSP/Servlet) or Application Client.

CalculatorBeanOne.java

@Stateless

public class CalculatorBeaneOne implements CalculatorBeaneOneRemote

{

@Override

publicint add(int x, int y)

{

returnx+y;

}

publicint sub(int x, int y)

{

return x-y;

}

publicintmul(int x, int y)

{

return x*y;

}

publicint div(int x, int y)

{

return x/y;

}

}

CalculatorBeanOneRemote.java

package server1;

importjavax.ejb.Remote;

@Remote

public interface CalculatorBeaneOneRemote

{

int add(int y, int x);

int sub(int x, int y);

intmul(int x, int y);

int div(int x, int y);

}

Calc.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

<form action="fetch" method="get">

<h2>Enter First Number : </h2>