Vous êtes sur la page 1sur 61

160060107043

PRACTICAL – 01

AIM: Create chat application using either TCP or UDP protocol.

Server code

import java.io.*;
import java.net.*;
public class GossipServer {
public static void main(String[] args) throws Exception
{
ServerSocket sersock = new ServerSocket(3000);
System.out.println("Server ready for chatting");
Socket sock = sersock.accept( );
// reading from keyboard (keyRead object)
BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in));
// sending to client (pwrite object)
OutputStream ostream = sock.getOutputStream();
PrintWriter pwrite = new PrintWriter(ostream, true);

// receiving from server ( receiveRead object)


InputStream istream = sock.getInputStream();
BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream));

String receiveMessage, sendMessage;


while(true)
{
if((receiveMessage = receiveRead.readLine()) != null)
{
System.out.println(receiveMessage);
}
sendMessage = keyRead.readLine();
pwrite.println(sendMessage);
pwrite.flush();
}
}

1
Advanced Java
160060107043

Client code

import java.io.*;
import java.net.*;
public class GossipServer {
public static void main(String[] args) throws Exception
{
ServerSocket sersock = new ServerSocket(3000);
System.out.println("Server ready for chatting");
Socket sock = sersock.accept( );
// reading from keyboard (keyRead object)
BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in));
// sending to client (pwrite object)
OutputStream ostream = sock.getOutputStream();
PrintWriter pwrite = new PrintWriter(ostream, true);

// receiving from server ( receiveRead object)


InputStream istream = sock.getInputStream();
BufferedReader receiveRead = new BufferedReader(new InputStreamReader(istream));

String receiveMessage, sendMessage;


while(true)
{
if((receiveMessage = receiveRead.readLine()) != null)
{
System.out.println(receiveMessage);
}
sendMessage = keyRead.readLine();
pwrite.println(sendMessage);
pwrite.flush();
}
}

2
Advanced Java
160060107043

Output:

Server:

Client:

3
Advanced Java
160060107043

PRACTICAL – 02

AIM: Implement TCP Server for transferring files using Socket and
ServerSocket.

Server code
import java.net.*;
import java.io.*;
import java.*;
public class server {
public static void main(String[] args) throws IOException
{
ServerSocket ss= new ServerSocket(777);
Socket s= ss.accept();
OutputStream os= s.getOutputStream();
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
PrintStream ps= new PrintStream(os);
String fname,str;
fname=br.readLine();
File f = new File(fname);
if(f.exists())
{
FileReader fr =new FileReader(f);
BufferedReader fread = new BufferedReader(fr);
while((str=fread.readLine())!=null){
ps.println(str);
}
}
Else
{

4
Advanced Java
160060107043

ps.println("file not found");


}
ps.close();
ss.close();
s.close();
}
}

Client code
import java.net.*;
import java.io.*;
import java.util.*;
public class client {
public static void main(String args[]) throws IOException
{

Socket s= new Socket("localhost",777);


InputStream is= s.getInputStream();
OutputStream os = s.getOutputStream();
PrintStream ps = new PrintStream(os);
Scanner sc = new Scanner(System.in);
String str;
str=sc.nextLine();
ps.println(str);
BufferedReader br= new BufferedReader(new InputStreamReader (is));
while((str=br.readLine())!=null){
System.out.println(str);

}
}
5
Advanced Java
160060107043

Output:

Server:

Client:

6
Advanced Java
160060107043

PRACTICAL – 3

Aim: Implement any sorting algorithm using TCP\UDP on server application


and give input on client side and client should sorted output from server and
display output on input side.

Server code:

import java.net.*;
import java.io.*;
public class SortServer {
public static void main(String ar[]) throws Exception
{
ServerSocket s1=new ServerSocket(12345);
System.out.println("Server Started");
Socket s=s1.accept();
PrintWriter p=new PrintWriter(s.getOutputStream());
BufferedReader in=new BufferedReader(new
InputStreamReader(s.getInputStream()));
String num=in.readLine();
int n=Integer.parseInt(num);
System.out.println("Client want to sort "+n+" numbers");
String sarr[]=new String[n];
int arr[]=new int[n];
int swap,c,d;
System.out.println("received numbers::\n");
for(int i=0;i<n;i++)
{
sarr[i]=in.readLine();
arr[i]=Integer.parseInt(sarr[i]);
System.out.println("no. "+i+"="+arr[i]);

for (c = 0; c < ( n - 1 ); c++)


{
for (d = 0; d < n - c - 1; d++)
{
if (arr[d] > arr[d+1])
{
swap = arr[d];
arr[d] = arr[d+1];
arr[d+1] = swap;
}
}
}

System.out.println("\nSorted list of numbers");


String sendarr=new String();
10
Advanced Java
160060107043
for (c = 0; c < n; c++)
{
sendarr+="\nnum ("+c+")="+arr[c];
}
System.out.println(sendarr);
p.println(sendarr);
p.flush();
s.close();

}
}

Client code:

import java.net.*;
import java.io.*;
public class SortClient {
public static void main(String ar[]) throws Exception
{
Socket s=new Socket("localhost",12345);
PrintWriter p=new PrintWriter(s.getOutputStream());
BufferedReader in=new BufferedReader(new
InputStreamReader(s.getInputStream()));
BufferedReader ink=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("How many numbers to sort? ");
int num=Integer.parseInt(ink.readLine());
p.println(num);
p.flush();
System.out.println("Enter "+num+" numbers to sort :");
String sarr[]=new String[num];
for(int i=0;i<num;i++)
{
System.out.print("no. "+i+"=");
sarr[i]=ink.readLine();
p.println(sarr[i]);
p.flush();
}
String res;
System.out.println("\nSorted array::\n");
while((res=in.readLine())!=null)
{
System.out.println(res);
}
s.close();

10
Advanced Java
160060107043

Output:

Server:

Client:

9
Advanced Java
160060107043

PRACTICAL – 04

Aim: Implement Concurrent 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.

Server code:

import java.io.*;
import java.net.*;
public class p4s implements Runnable
{

Socket ss;
int l;
p4s(Socket c,int x)
{
this.ss = c;
this.l=x;
}
public static void main(String args[]) throws Exception
{
ServerSocket ss = new ServerSocket(777);
int x=0;
while (true)
{
Socket sock = ss.accept();
System.out.println("yash"+x+" is connected");
new Thread(new p4s(sock,x)).start();
x++;

}
}

10
Advanced Java
160060107043

public void run()


{

try
{
String str,str1;
PrintStream ps = new PrintStream(ss.getOutputStream());
BufferedReader br = new BufferedReader(new
InputStreamReader(ss.getInputStream()));
while(!((str=br.readLine()).isEmpty()))
{
str1=new StringBuilder(str).reverse().toString();
ps.println(str1);

}
ps.close();
ss.close();
} catch (IOException e)
{
System.out.println(e);
}
}
}

11
Advanced Java
160060107043

Client code:

import java.io.*;
import java.net.*;
import java.util.*;

public class p4c0


{

public static void main(String args[]) throws IOException


{
Socket s= new Socket("localhost",777);
BufferedReader br= new BufferedReader(new InputStreamReader (s.getInputStream()));
PrintStream ps = new PrintStream(s.getOutputStream());
Scanner sc = new Scanner(System.in);
String str;
while(!(str=sc.nextLine()).isEmpty())
{
ps.println(str);
str=br.readLine();
System.out.println("from server to yash:-"+str);

}
ps.println(str);
ps.close();
br.close();
s.close();
}
}

12
Advanced Java
160060107043

Output:

Server

Client 1

Client 2

13
Advanced Java
160060107043
PRACTICAL – 05

Aim: Write RMI application where client supplies two numbers and server
response by summing it. Provide your custom security policy for this
application.
Source code:

1).import java.rmi.*;

import java.rmi.server.*;
class TestAddImpl extends UnicastRemoteObject implements TestAdd
{
TestAddImpl() throws RemoteException
{
}
public int add (int i,int j) throws RemoteException
{
return (i+j);
}
}

2 ) . import java.rmi.*;

public interface TestAdd extends Remote


{
public int add (int i,int j) throws RemoteException;
}

3) . import java.rmi.*;

class Server{
public static void main(String args[]) throws RemoteException
{
try{
TestAddImpl t=new TestAddImpl();
Naming.rebind("obj",t);
}
catch(Exception e)
{}
}
}

4 ) . import java.rmi.*;

class Client{
public static void main(String args[])
{
try{
TestAdd t1=(TestAdd)Naming.lookup("rmi://localhost/obj");
int a=t1.add(5,6);
14
Advanced Java
160060107043
System.out.println("Add: "+a);
}
catch(Exception e)
{
}
}
}

Output:

15
Advanced Java
160060107043

PRACTICAL – 06

Aim: Implement Student Information system using JDBC and RMI.

Java Code:

pakage UDPclient;

import java.sql.*;

public class p6

public static void main(String args[]) throw


classNotFoundException,SQLException

class.forName("com.mysql.jdbc.Driver");

connection
con=DriverManager.getConnection("jdbc:mysql://192.168.0.8/COMGB","COMGB","
123456");

statement st=con.createStatement();

Resultset rst=st.excuteQuery("Select * form dept");

while(rst.next())

System.out.println(rst.getInt(1) +"\t" + rst.getString(2) +"\t"+


rst.getString(3));

rst.close();

con.close();

16
Advanced Java
160060107043
Output:

17
Advanced Java
160060107043

PRACTICAL – 07

Aim: Create Servlet file which contains following functions:


1. Connect 2. Create Database 3. Create Table 4. Insert Records into
respective table 5. Update records of particular table of database 6. Delete
Records from table. 7. Delete table and also database.

Java Code:

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class servlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String c=request.getParameter("choice");
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>result</title>");
out.println("</head>");
18
Advanced Java
160060107043
out.println("<body>");
try{
Class.forName("com.mysql.jdbc.Driver");
Connection
cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sys","root","admin");
Statement st = cn.createStatement();
if(c.equals("insert")){

String h=request.getParameter("iemp_id")

String p="'"+request.getParameter("iemp_name")+"'";
String n=request.getParameter("ileaves");
out.print("<br><br>");
st.executeUpdate("insert into employee values ("+h+","+p+","+n+")");
out.println("data is inserted ");

}
else if(c.equals("update")){
String f=request.getParameter("uleaves");
String h="'"+request.getParameter("uemp_name")+"'";
st.executeUpdate("update employee set leaves="+f+" where emp_name="+h);
out.println("database is updated");

}
else if(c.equals("delete")){
String k=request.getParameter("demp_id");
st.executeUpdate("delete from employee where emp_id="+k);
out.println("data is deleted");
}
else if(c.equals("display")){
ResultSet rs = st.executeQuery("Select * from employee");

19
Advanced Java
160060107043
out.println("emp_id<t> ");
out.println("emp_name <t> ");
out.println("leaves");
out.println("<br><br>");
while(rs.next())
{
int l=rs.getInt("emp_id");
String sname=rs.getString("emp_name");
int bd=rs.getInt("leaves");
out.println(l+" ");
out.println(sname+" ");
out.println(bd);
out.println("<br><br>");
}

}
}catch( ClassNotFoundException | SQLException e){out.print(e);}
out.println("<br><br>");
out.println("<a href=index.html>go to home page</a>");
out.println("</body>");
out.println("</html>");

}
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

20
Advanced Java
160060107043

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);

@Override
public String getServletInfo() {
return "Short description";
}

Html Code:

<html>
<head>
<title>employee leaves</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body >
<h1>employee leaves</h1><br><br>
<form action="servlet">
Choice:<input type="radio" name="choice" value="insert">insert
<input type="radio" name="choice" value="update">update
<input type="radio" name="choice" value="delete">delete
<input type="radio" name="choice" value="display">show table<br><br>
insertion data:<br><br>
employee id. :<input type="text" name="iemp_id" placeholder="employee id">
employee name :<input type="text" name="iemp_name" placeholder="employee name" >
21
Advanced Java
160060107043
total leaves :<input type="text" name="ileaves" placeholder="total leaves"><br><br><br>
update data :<br><br>
New total leaves:<input type="text" name="uleaves" placeholder="enter new total leaves">
employee name:<input type="text" name="uemp_name" placeholder="name of
employee"><br><br><br><br>
delete data:<br><br>
employee id.:<input type="text" name="demp_id" placeholder="employee
id"><br><br><br><br>
<input type="submit" value="submit"><br><br><br><br>
</form>
</html>

Output:

22
Advanced Java
160060107043

23
Advanced Java
160060107043

24
Advanced Java
160060107043

PRACTICAL – 08

Aim: User can create a new database and also create new table under that
database. Once database has been created then user can perform database
operation by calling above functions. Use following Java Statement interface
to implement program:
1. Statement 2. Prepared statement 3. Callable statement.

Source Code:

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class prestatment extends HttpServlet


{
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, ClassNotFoundException, SQLException
{
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 prestatment</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet prestatment at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");

Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student2
","root","");
PreparedStatement ps=con.prepareStatement("insert into student_info1 values(?,?,?)");
//PreparedStatement ps=con.prepareStatement("delete from student_info1 where sname
= “pqr'");

25
Advanced Java
160060107043
//PreparedStatement ps=con.prepareStatement("update student_info1 set sname="pqr"
where seno='2'");
//PreparedStatement ps=con.prepareStatement("drop table student_info1");
//PreparedStatement ps=con.prepareStatement("drop database student2");
//ps.setInt(1, 1);
//ps.setString(2,"xyz");
//ps.setString(3,"cse");
ps.executeUpdate();
con.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
processRequest(request, response);
} catch (ClassNotFoundException ex) {
Logger.getLogger(prestatment.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(prestatment.class.getName()).log(Level.SEVERE, null, ex);
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
processRequest(request, response);
} catch (ClassNotFoundException ex)
{
Logger.getLogger(prestatment.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex)
{
Logger.getLogger(prestatment.class.getName()).log(Level.SEVERE, null, ex);
}
}

@Override
public String getServletInfo()
{
return "Short description";
}
}

26
Advanced Java
160060107043

Output:

Insert

Update

27
Advanced Java
160060107043

Delete

Delete table

Delete database

28
Advanced Java
160060107043

PRACTICAL – 09

Aim: Create Servlet file and study web descriptor file.

Source code:

import javax..servlet.*;
import java.io.*;
public class demo extends GenericServlet
{
public void service(ServletRequest request,ServletResponse response)
{
try
{
out.println("<html>");
out.println("<body>");
out.println("<Hello World!>");
out.println("</body>");
out.println("</html>");
}
catch(Exception e)
{
out.println(e);
}
}
}

WEB.XML

<web-app>
<servlet>
<servlet-name>ser1</servlet-name>
<servlet-class>ser1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ser1</servlet-name>
<url-pattern>/ser1</url-pattern>
</servlet-mapping>
</web-app>

DESCRIPTION OF WEB.XML FILE:

<SERVLET>
29
Advanced Java
160060107043
<SERVLET-NAME>:
Servlet-name defines the canonical name of the servlet,use to reference the servlet
definition elsewhere in the deployment descriptor.

<SERVLET-CLASS>:
The fully-qualified class name of the servlet.

<SERVLET-MAPPING>:
<SERVLET-NAME>:
The name of the servlet too which you are mapping a URL pattern.This name
corresponds to the name you assigned a servlet in a <SERVLET> declaration tag.

<URL-MAPPING>:
<URL-MAPPING> describes a pattern used to resolve URLs.The portion of the URL
after the http://host:port+WebAppName is compared to the <url-pattern> by weblogic server.If
the patterns match,the servlet mapped in this element will be called.

30
Advanced Java
160060107043

PRACTICAL – 10

Aim: Create login form and perform state management using Cookies,
HttpSession and URL Rewriting.

Source code:

Cookie:

Index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="main">
User Name:<input type="text" name="user"><br><br>
Password:<input type="text" name="pass"><br><br>
<input type="submit" value="Add Cookies"><br><br>
</form>
<form action="getcookie">
<input type="submit" value="Get Cookies">
</form>

</body>
</html>

getcookie.java:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/getcookie")
public class getcookie extends HttpServlet {
private static final long serialVersionUID = 1L;
public getcookie() {
super();
31
Advanced Java
160060107043
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType("text/html");
Cookie ck[]=request.getCookies();
PrintWriter out=response.getWriter();
for(int i=0;i<ck.length;i++)
{
out.print(ck[i].getName()+":");
out.print(ck[i].getValue()+"</br>");
}
}
}

main.java:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/main")
public class main extends HttpServlet {
private static final long serialVersionUID = 1L;
public main() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//response.setContentType("text/html");
String user=request.getParameter("user");
String pass=request.getParameter("pass");
Cookie u=new Cookie(user,pass);
//Cookie p=new Cookie("pass",pass);
u.setMaxAge(30*60);
// p.setMaxAge(30*60);
response.addCookie(u);
//response.addCookie(p);
response.sendRedirect("input.html");}

Output:

32
Advanced Java
160060107043

Session:

index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="main">
User Name:<input type="text" name="user"><br><br>
Password:<input type="text" name="pass"><br><br>
<input type="submit" value="Add Session"><br><br>
</form>
<form action="getcookie">
<input type="submit" value="Get Session">
</form>
</body>
</html>

getsession.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;
import javax.servlet.http.HttpSession;
@WebServlet("/getcookie")
public class getcookie extends HttpServlet {
private static final long serialVersionUID = 1L;
public getcookie() {
33
Advanced Java
160060107043
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(false);
String user=(String)session.getAttribute("user");
String pass=(String)session.getAttribute("pass");
out.print("Hello "+user+"\n your pass is:"+pass);
out.close();
}catch(Exception e){System.out.println(e);}
}
}

main.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;
import javax.servlet.http.HttpSession;
@WebServlet("/main")
public class main extends HttpServlet {
private static final long serialVersionUID = 1L;
public main() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
response.setContentType("text/html");
String user=request.getParameter("user");
String pass=request.getParameter("pass");
HttpSession session=request.getSession();
session.setAttribute("user",user);
session.setAttribute("pass",pass);
response.sendRedirect("input.html");
}catch(Exception e){System.out.println(e);}
}}

Output:

34
Advanced Java
160060107043

35
Advanced Java
160060107043
PRACTICAL – 11

Aim: Implement Authentication filter using filter API.

Myfilter.java

import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyFilter implements Filter {

@Override
public void init(FilterConfig fc) throws ServletException {

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)


throws IOException, ServletException {
response.setContentType("text/html");

String username = request.getParameter("username");


String password = request.getParameter("password");

if(username.equals("admin") && password.equals("admin")){


chain.doFilter(request, response);
}else{
PrintWriter out = response.getWriter();
out.print("<h4>Sorry UserName or Password Error!</h4>");
RequestDispatcher rd=request.getRequestDispatcher("/index.html");
rd.include(request, response);
}

}
@Override
public void destroy() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of
generated methods, choose Tools | Templates.
}
}

36
Advanced Java
160060107043
LoginServlet.java

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;

public class LoginServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, 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 LoginServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Welcome Admin</h1>");
out.println("</body>");
out.println("</html>");
}
}
}

Index.html

<!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>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form method="post" action ="NewServlet">
<p> enter username<input type="text" name="username" required/></p><br>
<p>password<input type="password" name="password" required/></p><br>
<p><input type="submit" value="login"></p><br>
</form>
</body>
</html>
37
Advanced Java
160060107043
Web.xml

<?xml version="1.0" encoding="UTF-8"?>


<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<servlet>
<servlet-name>NewServlet</servlet-name>
<servlet-class>NewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NewServlet</servlet-name>
<url-pattern>/NewServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>

Output:

38
Advanced Java
160060107043

39
Advanced Java
160060107043

PRACTICAL – 12

Aim: Create database of student subject-wise data and retrieve all data using
JSP and generate xml structure along with DTD and XML Schema
definition.

Source code:

index.jsp

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

<!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=UTF-8">

<TITLE>Database Lookup</TITLE>

</head>

<body>

<H1>Database Lookup</H1>

<FORM ACTION="basic.jsp" METHOD="POST">

Please enter the ID of the publisher you want to find:

<BR>

<INPUT TYPE="TEXT" NAME="id">

<BR>

<INPUT TYPE="SUBMIT" value="Submit">

</FORM>

40
Advanced Java
160060107043

</body>

</html>

basic.jsp

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


<% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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=UTF-8">
<TITLE>Fetching Data From a Database</TITLE>
</head>
<body>
<H1>Fetching Data From a Database</H1>
<%
Connection con = DriverManager.getConnection("jdbc:odbc:std","","");
Statement st = con.createStatement();

Connection connection = DriverManager.getConnection(


"jdbc:odbc:data", "YourName", "password");

Statement statement = connection.createStatement();

String id = request.getParameter("id");

ResultSet resultset =
st.executeQuery("select * from std where ID = '" + id + "'") ;

if(!resultset.next())
{
out.println("Sorry, could not find that publisher. ");
}
else
{
%>

<TABLE BORDER="1">
<TR>
<TH>ID</TH>
<TH>Name</TH>
<TH>Age</TH>
</TR>
<TR>
<TD> <%= resultset.getString(1) %> </TD>
41
Advanced Java
160060107043
<TD> <%= resultset.getString(2) %> </TD>
<TD> <%= resultset.getString(3) %> </TD>

</TR>
</TABLE>
<BR>
<%
}
con.close();
%>

</body>
</html>

OUTPUT:

42
Advanced Java
160060107043

43
Advanced Java
160060107043

PRACTICAL – 13

AIM: Refer Practical 11 and apply XSLT (Style) to generated xml document
and print your result.

Index.html

<html>
<head>
<title>Filter API</title>
</head>
<div>
<form action="MyF" style="text-align:center;">
<h1>My First Filter API</h1>
Username: <input class="side" type="text" name="name"
placeholder="UserName"><br>
Password: <input class="side" type="password" name="password"
placeholder="Password" style=margin-top:-5px;"><br>
<input class="b1" type="submit" value="Login">
</form>
</div>
</body>
</html>
MyFilter.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
public class MyFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain c)
throws IOException, ServletException {
PrintWriter pw = resp.getWriter();
String un = req.getParameter("name");
String pwd = req.getParameter("password");
if (un.equals("hardik") && pwd.equals("1234")) {
pw.print("welcome..." + un + "You have sucessfully login.... ");
} else {
pw.print("Invalid Username or Password");
}
}
@Override
public void destroy() {
}
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
Advanced Java
160060107043
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/MyF</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>

Output:

45
Advanced Java
160060107043
PRACTICAL – 14

AIM: Create web service which provides student information.

Index.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>Login here</title>
</head>
<body>
<form action=”RegController" method="post">
<input type="hidden" name="flag" value="verify">
Username: <input type="text" name="un1">
Password: <input type="password" name="pd1">
<input type="submit" value="login">
</form>
</body>
</html>
RegContoller.java
import java.io.*;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;
@WebServlet("/RegController")
public class RegController extends HttpServlet {
private static final long serialVersionUID = 1L;
public RegController() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
String s=request.getParameter("flag");
if(s.equals("verify")){
try {
doVerify(request,response);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
private void doVerify(HttpServletRequest request, HttpServletResponse response) throws
ClassNotFoundException, SQLException, IOException {
46
Advanced Java
160060107043
String s=request.getParameter("un1");
String l=request.getParameter("pd1");
if(s.equals("admin") && l.equals("admin")){
doSearch(request,response);
}
}
private void doSearch(HttpServletRequest request, HttpServletResponse response) throws
ClassNotFoundException, SQLException, IOException {
RegDAO rd=new RegDAO();
PrintWriter out=response.getWriter();
List l = rd.verify();
HttpSession session=request.getSession();
session.setAttribute("lsearch", l);
response.sendRedirect("welcome.jsp");
}
}
RegDAO.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class RegDAO {
public List verify() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
RegVO rv = new RegVO();
List ls = new ArrayList();
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/students", "root",
"1234");
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery("select * from student");
while (rs.next()) {
rv.setRoll(rs.getInt("roll"));
rv.setName(rs.getString("name"));
rv.setEmail(rs.getString("email"));
ls.add(rv);
}
return ls;
}
}

RegVO.java

public class RegVO {


private int roll;
private String name;
private String email;
public int getRoll() {
return roll;
}
public void setRoll(int roll) {
this.roll = roll;
}

47
Advanced Java
160060107043
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Welcome.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">
</head>
<body>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<c:forEach items="${sessionScope.lsearch}" var="i">
${i.roll} ${i.name} ${i.email}<br>
</c:forEach>
</body>
</html>

Output:

48
Advanced Java
160060107043

PRACTICAL – 15

AIM: Create Web Service client which consume above service and display
student data by entering student id.

Index.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>Login here</title>
</head>
<body>
<form action="RegController" method="post">
<input type="hidden" name="flag" value="verify">
Username: <input type="text" name="un1">
Password: <input type="password" name="pd1">;
<input type="submit" value="login">
</form>
</body>
</html>

RegController.java

import java.io.*;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;
@WebServlet("/RegController")
public class RegController extends HttpServlet {
private static final long serialVersionUID = 1L;
public RegController() {
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 {
PrintWriter out = response.getWriter();
49
Advanced Java
160060107043
String s = request.getParameter("flag");
if (s.equals("verify")) {
try {
doVerify(request, response);
} catch (ClassNotFoundException | SQLException e) {
}
}
if (s.equals("search")) {
try {
doSearch(request, response);
} catch (ClassNotFoundException ex) {

} catch (SQLException ex) {


}
}
}
private void doVerify(HttpServletRequest request, HttpServletResponse response) throws
ClassNotFoundException, SQLException, IOException {
try {
String s = request.getParameter("un1");
String l = request.getParameter("pd1");
if (s.equals("admin") && l.equals("admin")) {
response.sendRedirect("search.jsp");
}
} catch (Exception e) {
}
}
private void doSearch(HttpServletRequest request, HttpServletResponse response) throws
ClassNotFoundException, SQLException, IOException {
try {
PrintWriter out = response.getWriter();
RegVO rv = new RegVO();
int x = Integer.parseInt(request.getParameter("roll"));
rv.setRoll(x);
RegDAO rd = new RegDAO();
List l = rd.verify(rv);
HttpSession session = request.getSession();
session.setAttribute("lsearch", l);
response.sendRedirect("welcome.jsp");
} catch (Exception e) {
System.out.println("Exception :" + e);
}
}
}

RegDAO.java

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class RegDAO {

50
Advanced Java
160060107043
public List verify(RegVO r) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
RegVO rv = new RegVO();
List ls = new ArrayList();
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/students", "root",
"1234");
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery("select * from student where roll = "+r.getRoll());
while (rs.next()) {
rv.setRoll(rs.getInt("roll"));
rv.setName(rs.getString("name"));
rv.setEmail(rs.getString("email"));
ls.add(rv);
}
return ls;
}
}

RegVO.java

public class RegVO {


private int roll;
private String name;
private String email;
public int getRoll() {
return roll;
}
public void setRoll(int roll) {
this.roll = roll;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

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>

51
Advanced Java
160060107043
<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">
<input type="hidden" name="flag" value="search">
Enroll no: <input type="text" name="roll">
<br>
<input type="submit" value="search">
</body>
</html>
Welcome.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>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<c:forEach items="${sessionScope.lsearch}" var="i">
${i.roll} ${i.name} ${i.email}<br>
</c:forEach>
</body>
</html>

Output:

52
Advanced Java
160060107043

53
Advanced Java
160060107043

PRACTICAL – 16

AIM: Study and implement Hibernate.

Hibernate is an Object-Relational Mapping(ORM) solution for JAVA and it raised as an open


source persistent framework created by Gavin King in 2001. It is a powerful, high performance
Object-Relational Persistence and Query service for any Java Application.
Hibernate maps Java classes to database tables and from Java data types to SQL data types and
relieve the developer from 95% of common data persistence related programming tasks.
Hibernate sits between traditional Java objects and database server to handle all the work in
persisting those objects based on the appropriate O/R mechanisms and patterns.

Hibernate Advantages:

 Hibernate takes care of mapping Java classes to database tables using XML files and
without writing any line of code.
 Provides simple APIs for storing and retrieving Java objects directly to and from the
database.
 If there is change in Database or in any table then the only need to change XML file
properties.
 Abstract away the unfamiliar SQL types and provide us to work around familiar Java
Objects.
 Hibernate does not require an application server to operate.
 Manipulates Complex associations of objects of your database.
 Minimize database access with smart fetching strategies.
 Provides Simple querying of data.
The Hibernate architecture is layered to keep you isolated from having to know the underlying
APIs. Hibernate makes use of the database and configuration data to provide persistence
services (and persistent objects) to the application.

54
Advanced Java
160060107043

Create POJO Classes:

A POJO (Plain Old Java Object) is a Java object that doesn't extend or implement some
specialized classes and interfaces respectively required by the EJB framework. All normal Java
objects are POJO.

public class Employee {


private int id;
private String firstName;
private String lastName;
private int salary;

public Employee() {}
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
public intgetId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
55
Advanced Java
160060107043
public void setFirstName( Stringfirst_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( Stringlast_name ) {
this.lastName = last_name;
}
public intgetSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}

Create Database Tables:

create table EMPLOYEE (


id INT NOT NULL auto_increment,
first_nameVARCHAR(20)default NULL,
last_name VARCHAR(20)default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);

Create Mapping Configuration File:

This step is to create a mapping file that instructs Hibernate how to map the defined class or
classes to the database tables.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<classname="Employee"table="EMPLOYEE">
<metaattribute="class-description">
This class contains the employee detail.
</meta>
<idname="id"type="int"column="id">
<generatorclass="native"/>
</id>
<propertyname="firstName"column="first_name"type="string"/>
<propertyname="lastName"column="last_name"type="string"/>
<propertyname="salary"column="salary"type="int"/>
</class>
</hibernate-mapping>

56
Advanced Java
160060107043

Create Application Class:

Finally, we will create our application class with the main() method to run the application. We
will use this application to save few Employee's records and then we will apply CRUD
operations on those records.
importjava.util.List;
importjava.util.Date;
importjava.util.Iterator;

importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;

publicclassManageEmployee{
privatestaticSessionFactory factory;
publicstaticvoid main(String[]args){
try{
factory =newConfiguration().configure().buildSessionFactory();
}catch(Throwable ex){
System.err.println("Failed to create sessionFactory object."+ ex);
thrownewExceptionInInitializerError(ex);
}
ManageEmployee ME =newManageEmployee();

/* Add few employee records in database */


Integer empID1 =ME.addEmployee("mit","patel",50000);
Integer empID2 =ME.addEmployee("mrugesh","patel",50000);
Integer empID3 =ME.addEmployee("pranav","rangwala",50000);
Integer empID4 =ME.addEmployee("megha","jogiya",50000);

/* List down all the employees */


ME.listEmployees();

/* Update employee's records */


//ME.updateEmployee(empID1,50000);

/* Delete an employee from the database */


//ME.deleteEmployee(empID2);

/* List down new list of the employees */


ME.listEmployees();
}
/* Method to CREATE an employee in the database */
publicIntegeraddEmployee(Stringfname,Stringlname,int salary){
Sessionsession=factory.openSession();
Transactiontx=null;
IntegeremployeeID=null;
57
Advanced Java
160060107043
try{
tx=session.beginTransaction();
Employeeemployee=newEmployee(fname,lname, salary);
employeeID=(Integer)session.save(employee);
tx.commit();
}catch(HibernateException e){
if(tx!=null)tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
returnemployeeID;
}
/* Method to READ all the employees */
publicvoidlistEmployees(){
Sessionsession=factory.openSession();
Transactiontx=null;
try{
tx=session.beginTransaction();
List employees =session.createQuery("FROM Employee").list();
for(Iteratoriterator=
employees.iterator();iterator.hasNext();){
Employeeemployee=(Employee)iterator.next();
System.out.print("First Name: "+employee.getFirstName());
System.out.print(" Last Name: "+employee.getLastName());
System.out.println(" Salary: "+employee.getSalary());
}
tx.commit();
}catch(HibernateException e){
if(tx!=null)tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
/* Method to UPDATE salary for an employee */
publicvoidupdateEmployee(IntegerEmployeeID,int salary ){
Sessionsession=factory.openSession();
Transactiontx=null;
try{
tx=session.beginTransaction();
Employeeemployee=
(Employee)session.get(Employee.class,EmployeeID);
employee.setSalary( salary );
session.update(employee);
tx.commit();
}catch(HibernateException e){
if(tx!=null)tx.rollback();
e.printStackTrace();
}finally{
session.close();
58
Advanced Java
160060107043
}
}
/* Method to DELETE an employee from the records */
publicvoiddeleteEmployee(IntegerEmployeeID){
Sessionsession=factory.openSession();
Transactiontx=null;
try{
tx=session.beginTransaction();
Employeeemployee=
(Employee)session.get(Employee.class,EmployeeID);
session.delete(employee);
tx.commit();
}catch(HibernateException e){
if(tx!=null)tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
}

Compilation and Execution:

Here are the steps to compile and run the above mentioned application. Make sure you have set
PATH and CLASSPATH appropriately before proceeding for the compilation and execution.
 Create hibernate.cfg.xml configuration file as explained in configuration chapter.
 Create Employee.hbm.xml mapping file as shown above.
 Create Employee.java source file as shown above and compile it.
 Create ManageEmployee.java source file as shown above and compile it.
 Execute ManageEmployee binary to run the program.
You would get following result, and records would be created in EMPLOYEE table.
$java ManageEmployee
.......VARIOUS LOG MESSAGES WILL DISPLAY HERE........

FirstName:mitLastName:patelSalary:50000
FirstName:mrugeshLastName:patelSalary:50000
FirstName:pranavLastName:rangwalaSalary:50000
FirstName:meghaLastName:jogiyaSalary:50000

59
Advanced Java
160060107043

PRACTICAL – 17

AIM: Study and implement MVC using Spring Framework.

Beans.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"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id = "helloWorld" class = "springexample.HelloWorld">
<property name = "message" value = "Hello World!"/>
<property name = "msg" value = "Welcome"/>
</bean>
</beans>

HelloWorld.java

package springexample;
public class HelloWorld {
public String message;
public String msg;

public String getMsg() {


System.out.println("Msg: "+msg);
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getMessage() {
System.out.println("Message: "+message);
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

SpringExample.java

package springexample;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringExample {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj=(HelloWorld) context.getBean("helloWorld");
60
Advanced Java
160060107043
obj.getMessage();
obj.getMsg();
}
}

Output:

61
Advanced Java

Vous aimerez peut-être aussi