statelesssessionbean.jsp
来自「weblogic应用全实例」· JSP 代码 · 共 188 行
JSP
188 行
<!-- 这里我们使用 ("PAGETITLE") 变量来设置标题-->
<html>
<head>
<title>
<%= pagetitle %>
</title>
</head>
<body bgcolor=#FFFFFF>
<font face="Helvetica">
<h2>
<font color=#DB1260>
<%= pagetitle %>
</font>
</h2>
<!-- 使用"import" . 需要javax.naming.* 。
实例samples.j2ee.ejb.basic.statelessSession.*
参看WLE Stateless Session Bean Sample文档
-->
<%@ page import="
javax.naming.*,
samples.j2ee.ejb.basic.statelessSession.*
"%>
<%!
//声明
static final String pagetitle = "WLEC JSP Stateless Session Bean Sample";
static final String customerName = "Erin"; // Default name for the customer
static final int maxTransaction = 5; // no. transactions to do
// getInitialContext()方法返回一个InitialContext, 页面用它来
// 查找Trader主接口
public Context getInitialContext() throws Exception {
Hashtable env = new Hashtable();
// 指定连接池的名字
env.put(Context.PROVIDER_URL, "wlepool://StatelessSessionPool");
// 访问WLE域和全局名称服务构造器名字
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.beasys.jndi.WLEInitialContextFactory");
return new InitialContext(env);
}
String getStackTraceAsString(Exception e)
{
// 把异常转化成字符串
ByteArrayOutputStream ostr = new ByteArrayOutputStream();
e.printStackTrace(new PrintWriter(ostr));
return(ostr.toString());
}
%>
<%
Context ctx = null; // JNDI 上下文
Object objref = null; // 对象引用
String stockName = null; // 股票名
int numberOfShares = 0; // 股票编号
double cashBalance = 0.0; // 结算
TraderHome brokerage = null; // 主接口
Trader trader = null; // 远程对象
TradeResult tradeResult = null; // 交易结果
%>
<p><b>获取上下文</b>
<%
try {
// 创建上下文
ctx = getInitialContext();
if ( ctx == null ){
out.print("<p>Initial context is null!");
}
%>
<p><b>查找主接口并创建Trader对象</b>
<%
// 通过JNDI查找EJB;
objref = ctx.lookup("statelessSession.TraderHome");
/* 创建trader对象
*/
brokerage = (TraderHome) objref;
// 在WLE服务器中创建
trader = brokerage.create();
%>
<p><b>买卖一些股票</b>
<ul>
<%
for (int i = 1 ; i <= maxTransaction; i++) {
out.print("<p><li>开始交易 " + i + " 名字 " +
customerName);
/* 买
* 股票代号必须在描述符环境变量中定义
*/
stockName = "BEAS";
numberOfShares = 100 * i;
out.print("<br>买 " + numberOfShares + " 股: " + stockName);
tradeResult = trader.buy(customerName, stockName, numberOfShares);
out.print("...完成 " + tradeResult.numberTraded + " 以 $" +
tradeResult.priceSoldAt);
// 保存交易状态
cashBalance = cashBalance - (tradeResult.numberTraded *
tradeResult.priceSoldAt);
// 卖
stockName = "INTL";
numberOfShares = 100 * (i+1);
out.print("<br>卖 " + numberOfShares + " 股: " + stockName);
// WLE服务器中的TraderBean EJB执行sell()方法
tradeResult = trader.sell(customerName, stockName, numberOfShares);
out.print("...卖掉 " + tradeResult.numberTraded + " 以 $" +
tradeResult.priceSoldAt);
// 保存交易状态
cashBalance = cashBalance + (tradeResult.numberTraded *
tradeResult.priceSoldAt);
// 打印结果
out.print("<br>Change in Cash Account: $" + cashBalance);
out.print("<br>End of Transaction " + i + "\n");
}
%>
</ul>
<p><b>清除Trader对象</b>
<%
// 从WLE服务器中清除TraderBean EJB。
trader.remove();
}
catch (ProcessingErrorException pe) {
///异常处理
out.print("<p>Processing Error: " + pe);
out.print("<p>" + getStackTraceAsString(pe));
}
catch (Exception e) {
//其他异常
out.print("<p>:::::::::::::: Error :::::::::::::::::");
out.print("<p> Stack Trace:" + getStackTraceAsString(e));
}
%>
<p><b>Trader 清除完毕实例结束!</b>
<p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?