[go: up one dir, main page]

0% found this document useful (0 votes)
7 views29 pages

Wa0007.

The document contains a series of Java programming experiments focusing on various concepts such as threading, synchronization, exception handling, applets, JavaBeans, and servlets. Each experiment includes an aim, code implementation, and demonstrates practical applications of Java programming techniques. Key topics include producer-consumer problems, servlet lifecycle methods, and dynamic responses based on query parameters.

Uploaded by

phaltuidme
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views29 pages

Wa0007.

The document contains a series of Java programming experiments focusing on various concepts such as threading, synchronization, exception handling, applets, JavaBeans, and servlets. Each experiment includes an aim, code implementation, and demonstrates practical applications of Java programming techniques. Key topics include producer-consumer problems, servlet lifecycle methods, and dynamic responses based on query parameters.

Uploaded by

phaltuidme
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Experiment 11

AIM :: write a program for loop & methods of thread like join,wait , sleep and suspend

CODE ::

public class ThreadExample {

static class MyThread extends Thread {

@Override

public void run() {

synchronized (this) {

for (int i = 1; i <= 5; i++) {

System.out.println("Child Thread: Count " + i);

try {

// Sleep for 1 second

Thread.sleep(1000);

} catch (InterruptedException e) {

System.out.println("Child thread interrupted.");

try {

System.out.println("Child Thread entering wait() for 2 seconds...");

wait(2000); // Thread waits for 2 seconds

System.out.println("Child Thread resumed after wait.");

} catch (InterruptedException e) {

System.out.println("Wait interrupted.");

}
public static void main(String[] args) {

MyThread t1 = new MyThread();

System.out.println("Starting child thread...");

t1.start();

try {

// Wait for t1 to finish

t1.join();

} catch (InterruptedException e) {

System.out.println("Main thread interrupted.");

System.out.println("Main thread finished.");

}
Experiment 12

AIM :: WAP To Implement Synchronization In Threads And Remove Deadlock.

CODE ::

public class Hritij_SyncDemo {

static class SharedResource {

// Two lock objects to simulate shared resources

final Object lock1 = new Object();

final Object lock2 = new Object();

// Non-static methods can access instance variables

void printFromThread1() {

synchronized (lock1) {

System.out.println("Thread 1: Acquired lock1 - Hritij_JAVA");

try { Thread.sleep(100); } catch (InterruptedException e) {}

synchronized (lock2) {

System.out.println("Thread 1: Acquired lock2 - Hritij_JAVA");

void printFromThread2() {

synchronized (lock1) {

System.out.println("Thread 2: Acquired lock1 - Hritij_JAVA");

try { Thread.sleep(100); } catch (InterruptedException e) {}

synchronized (lock2) {

System.out.println("Thread 2: Acquired lock2 - Hritij_JAVA");

}
}

public static void main(String[] args) {

SharedResource resource = new SharedResource();

Thread t1 = new Thread(resource::printFromThread1);

Thread t2 = new Thread(resource::printFromThread2);

t1.start();

t2.start();

try {

t1.join();

t2.join();

} catch (InterruptedException e) {

System.out.println("Main thread interrupted.");

System.out.println("Main Thread Finished - Hritij_JAVA");

}
Experiment 13

AIM :: WAP To Implement Producer Consumer Problem In Java.

CODE ::

public class Hritij_ProducerConsumer {

static class SharedBuffer {

private int data;

private boolean hasData = false;

// Producer adds data to the buffer

public synchronized void produce(int value) {

while (hasData) {

try {

wait(); // wait until the buffer is empty

} catch (InterruptedException e) {

System.out.println("Producer interrupted.");

data = value;

hasData = true;

System.out.println("Producer produced: " + data + " - Hritij_JAVA");

notify(); // notify the consumer

// Consumer consumes data from the buffer

public synchronized void consume() {


while (!hasData) {

try {

wait(); // wait until there is data to consume

} catch (InterruptedException e) {

System.out.println("Consumer interrupted.");

System.out.println("Consumer consumed: " + data + " - Hritij_JAVA");

hasData = false;

notify(); // notify the producer

static class Producer extends Thread {

private final SharedBuffer buffer;

public Producer(SharedBuffer buffer) {

this.buffer = buffer;

@Override

public void run() {

for (int i = 1; i <= 5; i++) {

buffer.produce(i);

try {

Thread.sleep(500); // simulate time to produce

} catch (InterruptedException e) {

System.out.println("Producer sleep interrupted.");

}
}

static class Consumer extends Thread {

private final SharedBuffer buffer;

public Consumer(SharedBuffer buffer) {

this.buffer = buffer;

@Override

public void run() {

for (int i = 1; i <= 5; i++) {

buffer.consume();

try {

Thread.sleep(800); // simulate time to consume

} catch (InterruptedException e) {

System.out.println("Consumer sleep interrupted.");

public static void main(String[] args) {

SharedBuffer buffer = new SharedBuffer();

Producer producer = new Producer(buffer);

Consumer consumer = new Consumer(buffer);

producer.start();

consumer.start();
try {

producer.join();

consumer.join();

} catch (InterruptedException e) {

System.out.println("Main thread interrupted.");

System.out.println("Main Thread Finished - Hritij_JAVA");

}
Experiment 14

AIM :: WAP To Implement Try-Catch-Finally Block In Java

CODE ::

public class Hritij_TryCatchFinally {

public static void main(String[] args) {

int a = 10;

int b = 0; // This will cause division by zero

try {

// Risky operation: division by zero

int result = a / b;

System.out.println("Result: " + result + " - Hritij_JAVA");

} catch (ArithmeticException e) {

// Catch block handles the exception

System.out.println("Exception caught: Division by zero - Hritij_JAVA");

} finally {

// This block will always execute

System.out.println("This is the finally block - Hritij_JAVA");

System.out.println("Program continues... - Hritij_JAVA");

}
Experiment 15

AIM :: WAP to implement a basic applet in java

CODE ::

import java.applet.Applet;

import java.awt.Graphics;

/*

<applet code="Hritij_Applet.class" width="300" height="150">

</applet>

*/

public class Hritij_Applet extends Applet {

public void paint(Graphics g) {

g.drawString("Hello, Hritij_JAVA", 50, 75);

}
Experiment 16

AIM :: WAP to implement a moving banner in java using applet and awt

CODE ::

import javax.swing.*;

import java.awt.*;

public class Hritij_MovingBannerSwing extends JPanel implements Runnable {

String message = "Welcome, Hritij_JAVA ";

int x = 0;

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.BLUE);

g.drawString(message, x, 100);

public void run() {

while (true) {

x += 5;

if (x > getWidth()) {

x = 0;

repaint();

try {

Thread.sleep(100);

} catch (InterruptedException e) {}

}
public static void main(String[] args) {

JFrame frame = new JFrame("Moving Banner - Hritij_JAVA");

Hritij_MovingBannerSwing banner = new Hritij_MovingBannerSwing();

frame.add(banner);

frame.setSize(400, 200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

Thread t = new Thread(banner);

t.start();

}
Experiment 17

AIM :: WAP to call a frame using applet and awt.

CODE ::

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

/*

<applet code="Hritij_AppletFrame.class" width="300" height="200">

</applet>*/

public class Hritij_AppletFrame extends Applet implements ActionListener {

Button openFrameButton;

public void init() {

openFrameButton = new Button("Open Frame - Hritij_JAVA");

add(openFrameButton);

openFrameButton.addActionListener(this);

public void actionPerformed(ActionEvent e) {

new Hritij_Frame(); // Call the frame when button is clicked

// Frame Class

class Hritij_Frame extends Frame {

Hritij_Frame() {

setTitle("Hritij_JAVA Frame");

setSize(300, 150);
setLayout(new FlowLayout());

Label label = new Label("Hello, Hritij_JAVA!");

add(label);

setVisible(true);

// Add window closing functionality

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent we) {

dispose();

});

}
Experiment 18

AIM :: WAP to implement employee javabean and access it using another java file.

CODE ::

// Employee.java

import java.io.Serializable;

public class Employee implements Serializable {

private int id;

private String name;

private double salary;

// No-arg constructor

public Employee() {

System.out.println("Employee Bean Created - Hritij_JAVA");

// Getters and setters

public int getId() {

return id;

public void setId(int id) {

this.id = id;

public String getName() {

return name;}

public void setName(String name) {

this.name = name;

public double getSalary() {

return salary;
}

public void setSalary(double salary) {

this.salary = salary;

// EmployeeTest.java

public class EmployeeTest {

public static void main(String[] args) {

// Create and use the Employee bean

Employee emp = new Employee();

emp.setId(101);

emp.setName("Hritij_JAVA");

emp.setSalary(55000.0);

// Output the details

System.out.println("=== Employee Details ===");

System.out.println("ID : " + emp.getId());

System.out.println("Name : " + emp.getName());

System.out.println("Salary : ₹" + emp.getSalary());

}
Experiment 19

AIM :: WAP to implement student javabean and access it using another java file.

CODE ::

// Student.java

import java.io.Serializable;

public class Student implements Serializable {

private int rollNo;

private String name;

private String course;

// No-argument constructor

public Student() {

System.out.println("Student Bean Created - Hritij_JAVA");

// Getters and Setters

public int getRollNo() {

return rollNo;

public void setRollNo(int rollNo) {

this.rollNo = rollNo;

public String getName() {

return name;

}public void setName(String name) {

this.name = name; }

public String getCourse() {

return course;}

public void setCourse(String course) {

this.course = course;
}

// StudentTest.java

public class StudentTest {

public static void main(String[] args) {

// Create and use the Student bean

Student s = new Student();

s.setRollNo(10);

s.setName("Hritij_JAVA");

s.setCourse("Java Programming");

// Output

System.out.println("=== Student Details ===");

System.out.println("Roll No : " + s.getRollNo());

System.out.println("Name : " + s.getName());

System.out.println("Course : " + s.getCourse());

}
Experiment 20

AIM :: Write a servlet using Web-Servlet to handle GET req. & display HTML response.

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

@WebServlet("/hritij")

public class HritijServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// Set content type to HTML

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// HTML response

out.println("<html>");

out.println("<head><title>Welcome Page</title></head>");

out.println("<body style='font-family:sans-serif;'>");

out.println("<h1 style='color:green;'>Welcome to Servlet!</h1>");

out.println("<h2 style='color:blue;'>Hello, Hritij_JAVA</h2>");

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

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

}
Experiment 21

AIM :: WAP using GenericServlet to handle requests and generate an HTML response

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

@WebServlet("/hritij-generic")

public class HritijGenericServlet extends GenericServlet {

@Override

public void service(ServletRequest request, ServletResponse response)

throws ServletException, IOException {

// Set content type to HTML

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// HTML Response

out.println("<html>");

out.println("<head><title>Generic Servlet Example</title></head>");

out.println("<body style='font-family:sans-serif;'>");

out.println("<h1>Welcome from GenericServlet!</h1>");

out.println("<h2>Hello, Hritij_JAVA</h2>");

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

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

}
Experiment 22

AIM :: WAP to show lifecycle method like init(), service(), and destroy() of a
GenericServlet.

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

@WebServlet("/lifecycle")

public class HritijServletLifecycle extends GenericServlet {

@Override

public void init() throws ServletException {

System.out.println("init() called - Hritij_JAVA");

@Override

public void service(ServletRequest request, ServletResponse response)

throws ServletException, IOException {

System.out.println("service() called - Hritij_JAVA");

response.setContentType("text/html");

PrintWriter out = response.getWriter();

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

out.println("<h2>GenericServlet Lifecycle Demo</h2>");

out.println("<p>Method: <b>service()</b> executed successfully.</p>");


out.println("<p>Hello, Hritij_JAVA</p>");

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

@Override

public void destroy() {

System.out.println("destroy() called - Hritij_JAVA");

}
Experiment 23

AIM :: - WAP To show dynamically servlet resp. based on query parameters in the URL.

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

@WebServlet("/welcome")

public class DynamicServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// Get the "name" parameter from the URL

String userName = request.getParameter("name");

if (userName == null || userName.trim().isEmpty()) {

userName = "Guest";

// Set the response type to HTML

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// Generate HTML response

out.println("<html>");
out.println("<head><title>Dynamic Servlet Response</title></head>");

out.println("<body style='font-family:Arial;'>");

out.println("<h2>Hello, " + userName + "!</h2>");

out.println("<p>This is a dynamic servlet response.</p>");

out.println("<p>Servlet by <strong>Hritij_JAVA</strong></p>");

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

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

}
Experiment 24

AIM :: - WAP To show Login With HTTP Servlet

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

@WebServlet("/welcome")

public class DynamicServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

// Get the "name" parameter from the URL

String userName = request.getParameter("name");

if (userName == null || userName.trim().isEmpty()) {

userName = "Guest";

// Set the response type to HTML

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// Generate HTML response

out.println("<html>");

out.println("<head><title>Dynamic Servlet Response</title></head>");

out.println("<body style='font-family:Arial;'>");
out.println("<h2>Hello, " + userName + "!</h2>");

out.println("<p>This is a dynamic servlet response.</p>");

out.println("<p>Servlet by <strong>Hritij_JAVA</strong></p>");

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

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

}
Experiment 25

AIM :: - WAP To Implement Cookie Servlet

CODE ::

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

@WebServlet("/cookie")

public class CookieServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

// Create a cookie named 'user' with a sample value

Cookie userCookie = new Cookie("user", "Hritij_JAVA");

userCookie.setMaxAge(60 * 5); // Cookie will last 5 minutes

reponse.addCookie(userCookie);

out.println("<html><body style='font-family: Arial;'>");

out.println("<h2>Cookie has been set with name 'user' and value 'Hritij_JAVA'</h2>");

out.println("<p>Go to <a href='readcookie'>/readcookie</a> to view the cookie.</p>");

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

import java.io.*;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

@WebServlet("/readcookie")
public class ReadCookieServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

Cookie[] cookies = request.getCookies();

String userName = "Not Found";

if (cookies != null) {

for (Cookie cookie : cookies) {

if ("user".equals(cookie.getName())) {

userName = cookie.getValue();

out.println("<html><body style='font-family: Arial;'>");

out.println("<h2>Reading Cookie</h2>");

out.println("<p>Cookie Value: " + userName + "</p>");

out.println("<p>Servlet by <strong>Hritij_JAVA</strong></p>");

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

You might also like