首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅创建了一个无状态bean

仅创建了一个无状态bean
EN

Stack Overflow用户
提问于 2013-04-06 02:33:13
回答 1查看 84关注 0票数 0

我创建了一个会话bean,并在servlet中调用它的方法,如下所示:

代码语言:javascript
复制
@WebServlet(name = "NewServlet1", urlPatterns = {"/NewServlet1"})
public class NewServlet1 extends HttpServlet {
@EJB NewSessionBean bean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet NewServlet1</title>");            
        out.println("</head>");
        out.println("<body>");
             out.println("<h2>"+bean.helloWorld()+"</h2>");
        out.println("<h1>Servlet NewServlet1 at " + request.getContextPath() + "</h1>");
        out.println("</body>");
        out.println("</html>");
    } finally {            
        out.close();
    }
}

这是我的会话bean:

代码语言:javascript
复制
@Stateless
public class NewSessionBean {
private int counter = 0;

public NewSessionBean() {
    System.out.println("Constructor works");
}

public String helloWorld(){

return "Hello you are: "+counter++;
}

当我部署这些源代码时,我在Glassfish中看到只创建了会话bean的一个实例--“Constructor works”只出现过一次。当我尝试从多台计算机刷新我的站点时,我发现只有一个bean实例存在。当我创建两个使用NewSessionBean的servlet时,仍然只有一个实例。当我读到会话bean时,我了解到应该有一个bean池,所以它应该是多个bean。那么为什么在我的示例中只创建了一个bean。帮我了解一下这种情况。

EN

Stack Overflow用户

回答已采纳

发布于 2013-04-06 02:56:55

只创建了一个servlet实例,并且由于它可以快速生成响应,因此不需要额外的无状态bean。如前所述,如果您将helloWorld实现为一个长操作,并在该操作完成之前生成一个新请求,您将看到创建了新的bean。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15841080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档