JBossIDE Eclispe 开发EJB2.1实例[原创](2)
2008-02-23 09:23:22来源:互联网 阅读 ()
运行成功后,项目中
fibonaci.interfaces和META-INF被创建。
至此,ejb创建完成。
2.3开发Servlet
创建HTTP Servlet
输入Package:fibonaci.Web Name:ComputeServlet,选中init()/service()/doPost()方法,点击Finish。
在项目中看到ComputeServlet.java,添加代码
ComputeServlet.java代码:
package fibonaci.web;
import javax.rmi.PortableRemoteObject;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import java.io.*;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.Context;
import javax.naming.InitialContext;
import fibonaci.interfaces.Fibo;
import fibonaci.interfaces.FiboHome;
public class ComputeServlet extends HttpServlet {
private FiboHome home;
public ComputeServlet() {
super();
}
public void init(ServletConfig config) throws ServletException {
try {
Context context = new InitialContext();
Object ref = context.lookup("java:/comp/env/ejb/Fibo");
home = (FiboHome)PortableRemoteObject.narrow(ref, FiboHome.class);
} catch (Exception e) {
throw new ServletException("Lookup of java:/comp/env/ failed");
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>");
out.println("Fibonaci Computation");
out.println("</title></head>");
out.println("<body>");
out.println("<h1>");
out.println("Fibonaci Computation");
out.println("</h1>");
try {
Fibo bean = home.create();
int limit = 0;
String value = req.getParameter("limit");
if (value != null) {
try {
limit = Integer.parseInt(value);
} catch (Exception e) {
}
}
double[] result = bean.compute(limit);
bean.remove();
out.println("<p>");
out.print("The ");
out.print(limit);
out.print(" first Fibonacci numbers ");
for (int i = 0; i < result.length; i ) {
out.println("<br>");
out.println(i);
out.println(" : ");
out.println(result[i]);
}
out.println("</p>");
} catch(Exception e) {
out.println(e.getMessage());
e.printStackTrace(out);
} finally {
out.println("</body></html>");
out.close();
}
}
}
代码添加完毕后,需要添加XDoclet tags,在开始注释处输入@web,如下图:
设置内容如下:
/**
* Servlet Class
* @web.servlet name="Compute"
* display-name="Computation Servlet"
* description="Servlet that compute Fibonacci suite"
* @web.servlet-mapping url-pattern="/Compute"
* @web.ejb-ref name="ejb/Fibo"
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有