0% found this document useful (0 votes)
4 views14 pages

Prac 7

The document outlines the implementation of three EJB applications demonstrating different types of Beans. Part A focuses on a hit counter using Singleton Session Beans, Part B showcases a visitor statistics application using Message Driven Beans, and Part C presents a marks entry application utilizing Stateless Beans for database access. Each part includes code snippets for HTML forms, Java Servlets, and EJB classes, along with SQL queries for database setup.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views14 pages

Prac 7

The document outlines the implementation of three EJB applications demonstrating different types of Beans. Part A focuses on a hit counter using Singleton Session Beans, Part B showcases a visitor statistics application using Message Driven Beans, and Part C presents a marks entry application utilizing Stateless Beans for database access. Each part includes code snippets for HTML forms, Java Servlets, and EJB classes, along with SQL queries for database setup.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Practical No.

7
Implement the following EJB applications with different types of Beans.

Part A:

Aim: Develop simple EJB application to demonstrate Servlet Hit count using Singleton
Session Beans.

Files Used:

Project Name: Prac_7A


Java File: counterServlet
Package Name: demoC
Java Bean File: CounterBean
Package Name: mybean

Code: index.html

<!DOCTYPE html>
<html>
<head>
<title>Hit Counter</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="counterServlet">
<input type="submit" value="Check Hit Counter">
</form>
</body>
</html>

counterServlet.java

HRITESH SHARMA ROLL NO. 68


package demoC;

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;
import javax.ejb.EJB;
import mybean.CounterBean;

public class counterServlet extends HttpServlet {


@EJB mybean.CounterBean obj;

protected void service(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h1> Hit Count: " + obj.getCount() +". </h1>");
}
}

CounterBean.java

package mybean;
import javax.ejb.Singleton;
@Singleton
public class CounterBean {
private int hitcount=0;
public int getCount()

HRITESH SHARMA ROLL NO. 68


{
hitcount=hitcount+1;
return hitcount;
}
}

Output:

Part B:

Aim: Develop simple visitor Statistics application using Message Driven Bean [Stateless

HRITESH SHARMA ROLL NO. 68


Session Bean].

Files Used:
index.jsp
BasicMessageBean
VisitorStatBean.java

Code:
SQL Queries:
mysql> create database visitorstats;
Query OK, 1 row affected (0.03 sec)
mysql> use visitorstats;
Database changed
mysql> create table userstats(hostname varchar(30) PRIMARY KEY, visits int);
Query OK, 0 rows affected (0.06 sec)

index.jsp:
<%@page import="javax.jms.JMSException, javax.naming.InitialContext,
javax.jms.TextMessage, javax.jms.MessageProducer, javax.jms.Session,
javax.jms.Connection, javax.jms.Queue, javax.jms.ConnectionFactory" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%!
private static ConnectionFactory connectionFactory;
private static Queue queue;
Connection connection = null;
Session mysession = null;
MessageProducer messageProducer = null;
TextMessage message = null;
%>
<html>
<head>

HRITESH SHARMA ROLL NO. 68


<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome To Message Bean Demo</title>
</head>
<body style="background-color: aquamarine;">
<h1>Welcome Message Bean Demo</h1>
<%
try {
InitialContext ctx = new InitialContext();
queue = (Queue) ctx.lookup("jms/Queue");
connectionFactory = (ConnectionFactory) ctx.lookup("jms/QueueFactory");
connection = connectionFactory.createConnection();
mysession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
messageProducer = mysession.createProducer(queue);
message = mysession.createTextMessage();
message.setText(request.getRemoteHost());
messageProducer.send(message);
} catch (JMSException e) {
System.out.println("Exception occurred: " + e.toString());
}
%>
</body>
</html>

BasicMessageBean.java

package ejb;
import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;

HRITESH SHARMA ROLL NO. 68


import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue =
"javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue =
"jms/Queue")
})
public class BasicMessageBean implements MessageListener {
@EJB
VisitorStatBean vs;
@Resource
private MessageDrivenContext mdc;
public BasicMessageBean() {
}
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage msg = (TextMessage) message;
vs.addVisitor(msg.getText());
}
} catch (JMSException e) {
mdc.setRollbackOnly();
}
}
}

HRITESH SHARMA ROLL NO. 68


VisitorStatBean.java
package ejb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Stateless;

@Stateless
public class VisitorStatBean {
private Connection conn = null;
private ResultSet rs;
private Statement stmt = null;
private String query = null;

@PostConstruct
public void connect() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/visitorstats", "root",
"root");
System.out.println("Database connection established successfully.");
} catch(Exception e) {
System.err.println("Sorry failed to connect to the Database.");
}
}

HRITESH SHARMA ROLL NO. 68


@PreDestroy
public void disconnect() {
try {
conn.close();
System.out.println("Database connection closed successfully.");
} catch(SQLException e) {
System.err.println("Cannot close the database connection: " + e.getMessage());
}
}

public void addVisitor(String host) {


try {
stmt = conn.createStatement();
query = "INSERT INTO userstats (hostname, visits) VALUES('" + host + "','1')";
stmt.executeUpdate(query);
} catch(SQLException e) {
try {
stmt = conn.createStatement();
query = "UPDATE userstats SET visits = visits + 1 WHERE hostname = '" + host +
"'";
stmt.executeUpdate(query);
} catch(SQLException ex) {
System.err.println("Cannot update: " + ex.getMessage());
}
}
}
}

Output:

HRITESH SHARMA ROLL NO. 68


HRITESH SHARMA ROLL NO. 68
Part C:

Aim: Develop simple Marks Entry Application to demonstrate accessing Database using
EJB.

Files Used:

Project Name: Prac_7C


Java File: MarksEntry
Package Name: demoM
Java Bean File: MarksBean
Package Name: mybean

Code: index.html

<!DOCTYPE html>
<html>
<head>
<title>Marks Entry</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="MarksEntry">
<center>
<h2>Student Details</h2><br>
Enter Student Name: <input type="text" name="txtName"><br><br>
Enter Subject 1 Marks: <input type="text" name="marks1"><br><br>
Enter Subject 2 Marks: <input type="text" name="marks2"><br><br>
Enter Subject 3 Marks: <input type="text" name="marks3"><br><br>
Enter Subject 4 Marks: <input type="text" name="marks4"><br><br>
Enter Subject 5 Marks: <input type="text" name="marks5"><br><br>
<input type="submit" value="Insert"> <input type="reset" value="Clear">

HRITESH SHARMA ROLL NO. 68


</center>
</form>
</body> </html>
MarksEntry.java

package demoM;
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;
import javax.ejb.EJB;
import mybean.MarksBean;

public class MarksEntry extends HttpServlet {


@EJB mybean.MarksBean obj;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

String msg="";
String Studname=request.getParameter("txtName");
int marks1=Integer.parseInt(request.getParameter("marks1"));
int marks2=Integer.parseInt(request.getParameter("marks2"));
int marks3=Integer.parseInt(request.getParameter("marks3"));
int marks4=Integer.parseInt(request.getParameter("marks4"));
int marks5=Integer.parseInt(request.getParameter("marks5"));
int totalmarks=marks1+marks2+marks3+marks4+marks5;
msg=obj.marksEntry(Studname,marks1,marks2,marks3,marks4,marks5,totalmarks);

HRITESH SHARMA ROLL NO. 68


out.println(msg);
}
}
MarksBean.java

package mybean;
import javax.ejb.Stateless;
import java.sql.*;
@Stateless
public class MarksBean {
public String marksEntry(String name,int mrk1, int mrk2,int mrk3, int mrk4, int mrk5, int
total)
{
String confirmationMsg="";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/StudentMarks","root","root
");
PreparedStatement pstm=con.prepareStatement("insert into stdmarks
value(?,?,?,?,?,?,?)");
pstm.setString(1,name);
pstm.setInt(2,mrk1);
pstm.setInt(3,mrk2);
pstm.setInt(4,mrk3);
pstm.setInt(5, mrk4);
pstm.setInt(6, mrk5);
pstm.setInt(7,total);
int r=pstm.executeUpdate();
if(r==1)
{
confirmationMsg=" <h2><b> Marks of Student Name: " + name + " have been
updated successfully</b><h2>";

HRITESH SHARMA ROLL NO. 68


}
}
catch(Exception e)
{
}
return confirmationMsg;
}
}

Output:

MySQL

HRITESH SHARMA ROLL NO. 68


HRITESH SHARMA ROLL NO. 68

You might also like