0% found this document useful (0 votes)
6 views7 pages

Practical No.: 07

Java practical

Uploaded by

whackedbysahibr
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)
6 views7 pages

Practical No.: 07

Java practical

Uploaded by

whackedbysahibr
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/ 7

Practical No.

: 07
Name: Sairaj Rajendra Khedekar Date: / / .
Class: TY BSC IT Subject: Advanced Java Technology Roll No.: 05

Aim: A) Develop simple EJB application to demonstrate Servlet Hit count using Singleton Session
Beans.
Code:
CountServletHitsBean.java
package ejb;

import javax.ejb.Singleton;

@Singleton
public class CountServletHitsBean {

private int hitCount;

public synchronized int getCount()


{
return hitCount++;
}
}

ServletClient.java
package servlet;

import ejb.CountServletHitsBean;
import java.io.*;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

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


public class ServletClient extends HttpServlet {

@EJB
CountServletHitsBean obj;

@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws
ServletException,
IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.print("<b>Number of times this Servlet is accessed </b>: " + obj.getCount());
}
}

Output:

Aim: B) Develop simple visitor Statistics application using Message Driven Bean [Stateless
Session Bean].
Code:
index.jsp
<%@page import="javax.jms.JMSException"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.jms.Connection"%>
<%@page import="javax.jms.TextMessage"%>
<%@page import="javax.jms.MessageProducer"%>
<%@page import="javax.jms.Session"%>
<%@page import="javax.jms.Queue"%>
<%@page import="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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
Welcome to My Home Page
<%
try {
InitialContext ic = new InitialContext();
queue = (Queue) ic.lookup("jms/Queue");
connectionFactory = (ConnectionFactory) ic.lookup("jms/QueueFactory");
connection = connectionFactory.createConnection();
mySession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
messageProducer = mySession.createProducer(queue);
message = mySession.createTextMessage();
message.setText(request.getRemoteAddr());
messageProducer.send(message);
} catch (JMSException e) {
System.out.println("Exception Occoured " + e.toString());
}
%>
</body>
</html>

VisitorStatBean.java
package ejb;

import java.sql.*;
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 st = null;
private String query = null;

@PostConstruct
public void connect() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/visitorstat", "root", "tiger");
} catch (Exception e) {
System.err.println(e.getMessage());
}
}

@PreDestroy
public void disconnect() {
try {
conn.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}

public void addVisitor(String host) {


try {
st = conn.createStatement();
query = "insert into userstat (hostname,visits) values ('" + host + "','1')";
st.executeUpdate(query);
} catch (SQLException e) {
try {
st = conn.createStatement();
query = "update userstat set visits=visits+1 where hostname='" + host + "' ";
st.executeUpdate(query);

} catch (SQLException ex) {


System.err.println("Cannot Update" + e.getMessage());
}
}
}
}

BasicMessageBean.java
package ejb;

import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue =
"jms/Queue")
,
@ActivationConfigProperty(propertyName = "destinationType", propertyValue
= "javax.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();
}
}
}

Output:

Aim: C) Develop simple Marks Entry Application to demonstrate accessing Database using EJB.
Code:
SQL Command
create database marksdb;

use marksdb;

create table marks (id int primary key auto_increment, sname varchar(35), marks1 int, marks2 int,
marks3 int);

index.jsp
<%@page import="ejb.MarksEntryBean"%>
<%@page import="javax.naming.InitialContext"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%!
private static MarksEntryBean obj;

public void jspInit() {


try {
InitialContext ic = new InitialContext();
obj = (MarksEntryBean) ic.lookup("java:global/Pract7CMarksApp/MarksEntryBean");
} catch (Exception e) {
System.out.println(e);
}
}
%>
<%
if (request.getParameter("InsertMarks") != null) {
String sname;
int marks1, marks2, marks3;
sname = request.getParameter("sname");
marks1 = Integer.parseInt(request.getParameter("m1"));
marks2 = Integer.parseInt(request.getParameter("m2"));
marks3 = Integer.parseInt(request.getParameter("m3"));
obj.addMarks(sname, marks1, marks2, marks3);
out.print("Marks entered successfully..!!!!");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>Enter Details</h2>
<form name="result" method="post">
Enter student's name: <input type='text' name="sname" /><br>
Enter subject 1 marks: <input type='text' name="m1" /><br>
Enter subject 2 marks: <input type='text' name="m2" /><br>
Enter subject 3 marks: <input type='text' name="m3" /><br>
<input type='submit' name="InsertMarks" /><br>
</form>
</body>
</html>

MarksEntryBean.java
package ejb;

import java.sql.*;
import javax.ejb.Stateful;

@Stateful
public class MarksEntryBean {

String sname;
int m1, m2, m3;
Connection con = null;
Statement st = null;
String query = "";

public void addMarks(String sname, int m1, int m2, int m3) {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/marksdb", "root",
"123456789");
st = con.createStatement();
query ="insert into marks (sname,marks1,marks2,marks3) values ('"+sname+"' ,'"+m1+"'
,'"+m2+"' ,'"+m3+"' )";

st.executeUpdate(query);
System.out.print("Marks entered sucessfully!!");
} catch (Exception e) {
System.out.println(e);
}
}
}

Output:

You might also like