J2EEå®è·µç¬¬äºé¨å-å建ä¸ä¸ªç®åçEJB Webç¨åºï¼ç梦空é´çï¼
æ¨å¤©æä¸ååå¦ä¸èµ·å»çµå½±é¢çäºIMAXçççæ¢¦ç©ºé´ï¼æä¸åå®¶ååäºä¸ªæ¢¦ï¼ç«ç¶æ¢¦è§èªå·±åäºä¸ªæ¢¦--æ©ä¸éæ¥ï¼æåç°èªå·±ååäºä¸ä¸ªæ¢¦ä¸æ¢¦ãè¿é乿以ç¨äºâåâï¼é£æ¯å 为èªå·±ç»å¸¸ä¼åæ¢¦ä¸æ¢¦ï¼å¾æå²ãåµåµï¼åå°æ£é¢ä¸ï¼ç梦空é´è¿é¨çµå½±å¾ç²¾å½©ï¼ä»å¤©ä»ç¶å峿 ç©·ï¼èä¸å 为è¿é¨çµå½±å¯¼è´çµæå¤§åï¼äºæ¯åäºè¿ä¸ªEJBçå°ä¾åï¼ä¹å°±æ¯EJBçæ¢¦ç©ºé´çã
åå¤ï¼
æå»ºå¼åç¯å¢ï¼
JDK: 1.6.0
eclipse: ææ°çHeliosWTPçæ¬
Webæå¡å¨: Jboss 5.1
åºæ¯ï¼
ç®ä¾¿èµ·è§ï¼è¿æ¯ä¸ä¸ªé常ç®åçå°ä¾åï¼ç¨æ·éè¿Web页é¢è¾å ¥ä¸¤ä¸ªæ°åï¼åå°ç±æ¬å°çejb计ç®åï¼å°ç»æè¿åå°ç¨æ·ã
1. é¦å å建ä¸ä¸ªEJB项ç®ï¼ååå«SumEJBï¼ç¶åå¨è¿éå°å®èªå¨å ³èå°EARä¸ï¼å«SumEARãè¿æ ·å®æåï¼eclipseä¼èªå¨å建ä¸ä¸ªSumEAR项ç®ã
2.ä¸ç¨å建EJB Client Projectäºï¼è¿éä¸ç¨éæ©ãæå宿项ç®çå建ã
3.ç¶åå建ä¸ä¸ªLocalçSession Beanï¼SessionBean主è¦è´è´£ä¸å¡é»è¾çå¤çãè¿éæä»¬çWeb页é¢åå®é½å¨å䏿å¡å¨éï¼æä»¥ç¨äºLocalç±»åï¼è¿æ ·å¯ä»¥æé«æ§è½ã
å建好ejbåï¼å¼å§ç¼å代ç ï¼
ï¼1ï¼é¦å æ¯SumToolLocalæ¥å£ï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
packagecom.sap.demo.sum.ejb;
importjavax.ejb.Local;
@Local
public interface SumToolLocal {
public float add(float f1, float f2);
}
ï¼2ï¼ç¶åæ¯å®çå®ç°ç±»ï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
packagecom.sap.demo.sum.ejb;
importjavax.ejb.Stateless;
/**
* Session Bean implementation class SumTool
*/
@Stateless
public class SumTool implements SumToolLocal {
/**
* Default constructor.
*/
public SumTool() {
// TODOAuto-generated constructor stub
}
public float add(float f1, float f2) {
return f1 + f2;
}
}
4.ç¶åå建ä¸ä¸ªWeb Projectï¼ååå«SumWeb,乿å®éå°add to SumEARã
5.ç¶åå³é®éæ©å®ç屿§ï¼å¨Project Refereceä¸ï¼éæ©EJBåEAR项ç®:
6.ç±äºè¦ç¨å°EJB,æä»¥æä»¬éæ© ProjectçBuild pathï¼å°SumEJBå å ¥å°BUILD PATHä¸ã
7.å®æè®¾ç½®åï¼å¼å§ç¼å代ç äºï¼
ï¼1ï¼å æ¯åä¸ä¸ªæ®éçjava beanï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
packagecom.sap.demo.sum.model;
public class Number {
private float param1 = 0;
private float param2 = 0;
private float result = 0;
public float getResult() {
return result;
}
public void setResult(float result) {
this.result = result;
}
public float getParam1() {
return param1;
}
public void setParam1(float param1) {
this.param1 = param1;
}
public float getParam2() {
return param2;
}
public void setParam2(float param2) {
this.param2 = param2;
}
}
ï¼2ï¼ç¶åæ¯ä¸¤ä¸ªjsp页é¢ï¼index.jspåresult.jspï¼å¾ç®åï¼å嫿¯è¾å ¥åè¾åºé¡µé¢ï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
index.jsp:
<%@ pagelanguage="java" contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE htmlPUBLIC "-//W3C//DTDHTML 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 titlehere</title>
</head>
<body>
<FORM ACTION="SumServlet">
First Parameter: <INPUT TYPE="TEXT"NAME="param1"><BR>
Second Parameter: <INPUT TYPE="TEXT"NAME="param2"><BR>
<CENTER><INPUT TYPE="SUBMIT"></CENTER>
</FORM>
</body>
</html>
result.jsp:
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
<%@ pagelanguage="java" contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE htmlPUBLIC "-//W3C//DTDHTML 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 titlehere</title>
</head>
<body>
<jsp:useBean id="number"
type="com.sap.demo.sum.model.Number"
scope="request" />
<jsp:getProperty name="number"property="param1" /><br>
<jsp:getProperty name="number"property="param2" /><br>
<jsp:getProperty name="number"property="result" /><br>
</body>
</html>
ï¼3ï¼æåå建ä¸ä¸ªServletï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
packagecom.sap.demo.sum.model;
import java.io.IOException;
import javax.ejb.EJB;
importjavax.servlet.RequestDispatcher;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.sap.demo.sum.ejb.SumTool;
/**
* Servlet implementation class SumServlet
*/
public class SumServletextends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private SumTool sumtool;
/**
* @see HttpServlet#HttpServlet()
*/
public SumServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");
float f1 = Float.parseFloat(param1);
float f2 = Float.parseFloat(param2);
float result = sumtool.add(f1, f2);
Number b = new Number();
b.setParam1(f1);
b.setParam2(f2);
b.setResult(result);
request.setAttribute("number", b);
RequestDispatcher dispatcher =request.getRequestDispatcher("result.jsp");
dispatcher.forward(request, response);
}
/**
* @seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
8.é¨ç½²ç¨åºå¹¶è¿è¡ï¼
é¦å è¾å ¥ä¸¤ä¸ªæ°åï¼
ç¶åç¹æäº¤åï¼æä»¬å°±å¯ä»¥çå°EJB计ç®çç»æäºï¼
9. å°ç»ï¼
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]><style> <!-- table.MsoNormalTable {line-height:115%; font-size:11.0pt; font-family:"Calibri","sans-serif"} --> </style><![endif]-->
1.è¿ä¸ªä¾åæå¤§ç亮ç¹ï¼å°±æ¯ä½¿ç¨äºEJB 3.0çInseptionã大家å¯ä»¥ä»Servletç代ç éçå°ï¼åªæ¯ç®åçç¨æ³¨é@EJB对Session Beanåäºä¸ä¸ªå£°æãç¨åºè¿è¡æ¶å°±å¯ä»¥ç´æ¥ä½¿ç¨è¿ä¸ªEJBäºï¼Inceptionæç¶å¼ºå¤§ã
2.ç¶åéè¦æ³¨æçå°æ¹æ¯ï¼è¿ä¸ªç®åçåºç¨è½ç¶ç®åï¼ä½æ¯ç»æå®æ´ï¼å®å æ¬äº3个项ç®ï¼SumEJB, SumWeb, SumEARãæåéè¿SumEARèªå¨çæ.earæä»¶è¿è¡é¨ç½²ï¼earéå å«äºWEBç.waræä»¶åEJBçjaræä»¶ï¼è宿¬èº«ä¹æ¯jaræä»¶ï¼åªæ¯æ¢äºä¸ä¸ªåç¼åã
è¿æ¯ä¸ä¸ªé常ç®åEJBçå°ä¾åï¼ä½æ¯å±ç¤ºSessionBeançç¨æ³ä»¥åEJBçæ³¨å
¥åè½ãä¸ä¸é¨åï¼ææ³ä»ç»ä¸ä¸EJBçEntity Bean以åç»åAPJç使ç¨ã