
Originariamente inviata da
Scara95
Certo, questo forum è ricco di veggenti!
Otterrai sicuramente una risposta con queste informazioni (:
allora riporto il codice. ho creato un EJB project con all'interno questo package.
codice:
package ejb;
import javax.ejb.Remote;
@Remote
public interface Calcolatrice {
public float somma(float numero1, float numero2);
public float moltiplicazione(float numero1, float numero2);
public float sottrazione(float numero1, float numero2);
public float divisione(float numero1, float numero2);
}
e questa classe
codice:
package ejb;
import javax.ejb.Stateless;
@Stateless
public class ImplementazioneCalcolatrice implements Calcolatrice{
@Override
public float somma(float numero1, float numero2) {
// TODO Auto-generated method stub
return numero1 + numero2;
}
@Override
public float moltiplicazione(float numero1, float numero2) {
// TODO Auto-generated method stub
return numero1 * numero2;
}
@Override
public float sottrazione(float numero1, float numero2) {
// TODO Auto-generated method stub
return numero1 - numero2;
}
@Override
public float divisione(float numero1, float numero2) {
try{
return numero1 / numero2;
}
catch (Exception e){
System.out.println("ERRORE DIVISIONE PER 0");
return 0;
}
}
}
poi un dinamic web project con all'interno una servlet:
codice:
package ejb;
import java.io.IOException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
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;
/**
* Servlet implementation class CalcolatriceServlet
*/
@WebServlet("/CalcolatriceServlet")
public class CalcolatriceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CalcolatriceServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession sessione = request.getSession(true);
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/index.jsp");
float numero1 = Float.parseFloat(request.getParameter("numero1")+"");
float numero2 = Float.parseFloat(request.getParameter("numero2")+"");
char operatore = request.getParameter("operatore").charAt(0);
float result = 0;
try {
Context contesto = new InitialContext();
Calcolatrice calcolatrice = (Calcolatrice) contesto.lookup("ImplementazioneCalcolatrice/remote-ejb.Calcolatrice");
switch(operatore){
case '+': result=calcolatrice.somma(numero1, numero2); break;
case '-': result=calcolatrice.sottrazione(numero1, numero2); break;
case '/': result=calcolatrice.divisione(numero1, numero2); break;
case '*': result=calcolatrice.moltiplicazione(numero1, numero2); break;
}
sessione.setAttribute("risultato", result);
request.setAttribute("numero1", numero1);
request.setAttribute("numero2", numero2);
}
catch(NamingException e){
sessione.setAttribute("errore",e.getMessage());
}
rd.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response);
}
}
ed un index su webcontent:
codice:
<%@ 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>Calcolatrice</title>
</head>
<body>
<h2><b><u>Benvenuto nella tua prima applicazione con gli EJB</u></b></h2>
<%
float numero1 = 2;
float numero2 = 1;
if(request.getAttribute("numero1") != null)
numero1 = Float.parseFloat(request.getAttribute("numero1")+"");
if(request.getAttribute("numero2") != null)
numero2 = Float.parseFloat(request.getAttribute("numero2")+"");
%>
<form method="post" action="CalcolatriceServlet">
<b>Numero 1:</b><input type="text" name="numero1" value="<%=numero1 %>" /><br />
<b>Numero 2:</b><input type="text" name="numero2" value="<%=numero2 %>" /><br />
<u><b>Opzioni:</b></u><br />
<ul>
<li>
<b>+</b><input type="radio" name="operatore" value="+" checked>
</li>
<li>
<b>-</b><input type="radio" name="operatore" value="-">
</li>
<li>
<b>*</b><input type="radio" name="operatore" value="*" >
</li>
<li>
<b>/</b><input type="radio" name="operatore" value="/" >
</li>
</ul>
<input type="submit" value="INVIA" /></form>
<font color="brown"> Il risultato è:</font><b><%=session.getAttribute("risultato") %></b><br />
<font color="red"> Si è verificato il seguente errore:</font><b><%=session.getAttribute("errore") %></b><br />
</body>
</html>