龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

如何结合使用EJB 3和Ajax(1)(7)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
最后一个页面允许您输入有关请求参数的信息。在本示例中,我们将使用一个名为 userInput 的参数: 498)this.width=498;' onmousewheel = 'javascript:return big(this)' sr

最后一个页面允许您输入有关请求参数的信息。在本示例中,我们将使用一个名为 userInput 的参数:

图20

单击 Finish 生成 AdServlet 类:

图21

现在,我们需要修改 servlet。首先,添加以下注入 AdSession bean 的行,这样我们可以在 servlet 的 doGet() 方法中访问它:

import javax.ejb.EJB;
...
public class AdServlet extends HttpServlet {

    @EJB(name="AdSession")
    private AdSession adSession;
    ...
}

在本示例中,我们希望 doGet() 方法返回一个 Ajax 响应,该响应将包含从 AdEntity 实例中提取的信息。userInput 参数的值传递给 AdSession bean 的 selectAd() 方法。业务方法返回一个 AdEntity 实例,通过 setAttribute() 将该实例存储到请求作用域中。之后,doGet() 设置 Content-Type 和 Cache-Control 头,并包括由 AdResponse.jsp 页面生成的内容。以下是 AdServlet 类的完整源代码:

package ajaxejb;

import javax.ejb.EJB;
import java.io.IOException;

import javax.servlet.*;
import javax.servlet.http.*;

public class AdServlet extends HttpServlet {

    @EJB(name="AdSession")
    private AdSession adSession;

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
                throws ServletException, IOException {
        String userInput = request.getParameter("userInput");
        AdEntity adEntity = adSession.selectAd(userInput);
        request.setAttribute("adEntity", adEntity);
        response.setHeader("Cache-Control", "no-cache");
        response.setContentType("text/xml");
        request.getRequestDispatcher("/AdResponse.jsp")
            .include(request, response);
    }   
}

创建响应页面

在 Applications 导航器中,右键单击 ajaxejb 项目的 Web Content 文件夹并单击 New。在 New Gallery 窗口的左侧面板中,展开 Web Tier 节点并选择 JSP。然后,在该窗口的右侧面板中选择 JSP 并单击 OK:

图22

精彩图集

赞助商链接