`
suhuanzheng7784877
  • 浏览: 701397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47681
社区版块
存档分类
最新评论

JavaEE5学习笔记07-Web层与EJB集成总结(1):servlet与EJB集成

阅读更多

1.       集成时的感受

单丝不成线,孤木不成林。尽管JavaEE5标准不只是作为Web系统而提出的,但是所有的软件系统都是给人用的,都离不开UI处理。而EJB可以作为单机程序SwingAWT的后台支持,也可以作为B/S的后台支持。既然是B/S就离不开Web框架。JSF也是JavaEE5的标准,它的规范中提出:“可以将EJB组建通过EJB容器注入到Web组件当中”。简而言之,JSF的托管Bean可以像之前咱们笔记中其他EJB组件一样,被容器注入EJB组建以供其Web控制器层(笔者个人觉得托管Bean就可以当做MVC的控制器)使用。而Servlet,你别看一般项目都不用,而是用StrutsStruts框架自己封装了Servlet,他叫做Action),Servlet也是JavaEE5的标准,所以EJB容器的实现必须也能支持将EJB组件注入到Servlet中(呵呵,享受到了家庭定制标准的温暖啊,好歹咱也是个标准啊~~)。那么Struts有点可惜了,暂时不能享受EJB容器提供的服务。不过Struts可以像一般客户端一样,采用JNDI查找服务对象的方式来获取EJB组件。(笔者这么说其实有点儿废话,其实任何的客户端都可以通过JNDI来查找服务对象啊~~)。不过这里稍微说一下,也是稍微抱怨一下~~~JavaEE5标准中部署有点麻烦,稍微不注意就抛异常,这个我们之后还会提到。这在JavaEE6标准中得到了缓解,JavaEE6允许在一个WAR项目中就可以识别EJB组件,并且注入其中,不需要提供部署ear文件。

2.       Servlet+EJB+JBoss集成Demo

下面我们先来看一个SessionBean,这个SessionBeanEJB和其他Web层集成的时候也会用到

SessionBean接口

package ejb.sessionBean;

import javax.ejb.Local;

import ejb.messageDrivenBean.dto.UserDTO;

 

/**

 * 本地添加用户信息的sessionBean

 * @author liuyan

 *

 */

@Local

public interface UserService {

    public boolean insertUser(UserDTO userDTO);

}

SessionBean实现类

/**

 * 容器管理事务的用户添加的SessionBean

 *

 * @author liuyan

 */

@Stateless

@TransactionManagement(TransactionManagementType.CONTAINER)

@TransactionAttribute(TransactionAttributeType.REQUIRED)

public class UserServiceEAOImpl implements UserService {

 

    /**

     * 资源注入

     */

    @Resource(mappedName = "java:/jbossdemo")

    private DataSource dataSource;

 

    @Resource

    private SessionContext sessionContext;

 

    /**

     * 添加方法实现

     */

    @Override

    public boolean insertUser(UserDTO userDTO) {

 

       if (userDTO == null || userDTO.getId() == 0

              || userDTO.getName() == null) {

           return false;

       }

 

       Connection connection = null;

       Statement statement = null;

       try {

           connection = dataSource.getConnection();

           statement = connection.createStatement();

           StringBuffer insertSQL = new StringBuffer(

                  "insert into person values(");

 

           insertSQL.append(userDTO.getId()).append(",'").append(

                  userDTO.getName()).append("')");

           System.out.println("SQL::" + insertSQL.toString());

           statement.executeUpdate(insertSQL.toString());

           statement.close();

           connection.close();

           return true;

       } catch (Exception e) {

           System.out.println("事务回滚~~");

           sessionContext.setRollbackOnly();

           e.printStackTrace();

           return false;

       }

    }

 

}

以上就是为Web层服务的SessionBean了,它的作用很简单,就是往数据库插入记录。参数是UserDTO实体,因为此实体很简单,只有idname,这2个属性在此不再给出代码了。

下面来看Servlet

/**

 * 使用EJB组建的Servlet

 *

 * @author liuyan

 *

 */

public class EJBServlet extends HttpServlet {

 

    /**

     *

     */

    private static final long serialVersionUID = -8245899459149632416L;

 

    /**

     * 注入其他EJB组件

     */

    @EJB(beanName = "UserServiceEAOImpl")

    private UserService userService;

 

    /**

     * Constructor of the object.

     */

    public EJBServlet() {

       super();

    }

       

    public void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       this.doPost(request, response);

    }

 

    /**

     * 执行业务

     */

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       String id = request.getParameter("id");

       String name = request.getParameter("name");

       name = new String(name.getBytes("iso8859-1"), "utf-8");

       UserDTO userDTO = new UserDTO();

       userDTO.setId(Integer.parseInt(id));

       userDTO.setName(name);

       userService.insertUser(userDTO);

       response.sendRedirect(request.getContextPath()

              + "/insertUserFormList.jsp");

    }

 

    public void init() throws ServletException {

       // Put your code here

    }

}

这个Servlet只注意2部分就行,一个是注入的EJB组件,就是刚刚的SessionBean组件,另一个就是直接调用了该组件的insertUser方法。

  • 大小: 45.8 KB
  • 大小: 55.6 KB
分享到:
评论

相关推荐

    JavaEE5学习笔记07-Web层与EJB集成总结

    ### JavaEE5学习笔记07-Web层与EJB集成总结 #### 一、JavaEE5框架中的Web层与EJB集成概述 在JavaEE5(即Java Platform, Enterprise Edition 5)中,Web层与EJB(Enterprise JavaBeans)的集成是构建企业级应用的...

    JavaEE5学习笔记01-JTA和数据库事务

    ### JavaEE5学习笔记01-JTA和数据库事务:深入解析与应用 #### 一、JavaEE5概览与核心组件 JavaEE5是Java Enterprise Edition的第五个版本,标志着企业级Java应用的一个重要里程碑。它引入了一系列重要的新特性,...

    JavaEE学习笔记

    ### JavaEE 学习笔记概览 #### 一、JavaEE 概念及发展历程 JavaEE(Java Platform, Enterprise Edition)是Sun Microsystems公司为简化企业级应用开发而提出的一套标准化平台,它提供了构建分布式系统的基本框架和...

    javaEE学习笔记

    以上就是JavaEE学习笔记中可能涵盖的关键知识点,它们构成了JavaEE开发的基础,并且每个部分都有深入研究的价值。通过学习和实践这些技术,开发者能够构建出高效、稳定和可扩展的企业级Web应用。

    JavaEE学习笔记.pdf

    作为JavaEE学习笔记,以下是相关的知识点总结: JavaEE架构 JavaEE架构主要由以下几个部分组成: * 客户端(Client):使用Java编写的应用程序,通过网络与服务器通信。 * web服务器(Web Server):负责处理...

    javaee思维导图版笔记-吉林大学

    "javaee思维导图版笔记-吉林大学" 本笔记主要涵盖了Java EE的基础知识,包括Servlet、JSP、JNDI、JPA等方面的内容。 一、Servlet概述 Servlet是Java EE中的一种服务器端组件,用于处理HTTP请求并返回响应。...

    javaee经典学习资料大全

    - J2EEWeb应用开发技术教材:Web层的开发是Java EE应用中的关键部分,学习如何构建动态Web应用是必不可少的。 5. 学习工具和资源: - Java EE API技术文档:是开发者获取技术细节和API实现的权威资源。 - Java EE 5...

    java学习笔记

    ### Java学习笔记知识点总结 #### 一、Java/JavaEE概览 - **定义与特点**: - **Java**是一种广泛使用的面向对象的编程语言,由Sun Microsystems于1995年推出。 - **JavaEE**是Java平台企业版的简称,是一套为...

    《java学习》-Java 学习笔记.zip

    本压缩包文件“《java学习》-Java 学习笔记.zip”包含了丰富的学习资源,帮助初学者和进阶者深入理解Java编程。 1. **Java基础知识** - **语法**:Java的基础语法包括变量、数据类型、运算符、流程控制语句(如if-...

    Tomcat&Servlet笔记1

    本笔记将对Web相关概念、Tomcat服务器以及Servlet入门进行简要介绍。 1. **Web相关概念** - **C/S架构**(Client/Server):在这种模式中,客户端(如桌面应用)直接与服务器端通信,服务器负责处理业务逻辑和数据...

    Javaee课堂笔记精华总结就业必备

    这个"Javaee课堂笔记精华总结就业必备"显然是一份针对求职者或初入职场的开发者准备的学习材料,旨在帮助他们掌握JavaEE的核心概念和技术,以提升就业竞争力。 JavaEE平台包括一组服务、APIs和协议,用于构建分布式...

    JavaEE2017最新版基础班学习笔记

    本"JavaEE2017最新版基础班学习笔记"涵盖了JavaEE入门所需的基本概念和技术,是新手学习JavaEE的良好参考资料。以下将详细介绍其中可能涉及的关键知识点: 1. **Servlet与JSP**:Servlet是JavaEE中处理HTTP请求的...

    达内培训笔记

    【JavaEE技术体系详解】 JavaEE(Java Platform, Enterprise ...达内培训笔记涵盖了这些JavaEE的重要概念和技术,对于初学者和进阶开发者都是宝贵的学习资料,通过深入学习和实践,可以掌握企业级应用开发的关键技能。

Global site tag (gtag.js) - Google Analytics