javaee企业级应用开发教程电子书(求:轻量级javaee企业应用实战(第三版)-Struts2+spring3+hibernate整合开发书中的源代码!(李刚著))

本文目录
- 求:轻量级javaee企业应用实战(第三版)-Struts2+spring3+hibernate整合开发书中的源代码!(李刚著)
- 怎样写一个javaee企业应用实验,体系结构中包含web层,ejb层与jpa
求:轻量级javaee企业应用实战(第三版)-Struts2+spring3+hibernate整合开发书中的源代码!(李刚著)
一、Spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。 二、STRUCTS Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。 三、Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
怎样写一个javaee企业应用实验,体系结构中包含web层,ejb层与jpa
转载1. 1.本文主要技术采用了Servlet + JSP + EJB 3.0 + JPA,开发环境用的是EclipseHelios + JDK 1.6 + JBOSS 5.1 + MySQL 5.1数据库。
2. 2. 示例场景:用户通过Web页面对Employee进行创建、查找和删除。这个小例子重点是演示JPA的使用。JPA是JavaPersistence API的缩写,主要是将关系数据库的操作对象化,它的j2ee的标准规范,由于其自身简单易用的优点,也是SAP推荐使用的数据库技术。
3. 3.准备工作:
(1) 安装JBOSS 5.1
(2) 安装MySQL 5.1
(3) 给Jboss配置数据源
首先启动mysql后,创建一个数据库叫ejbtest,然后创建一个用户jboss,密码是password,并将ejbtest的权限赋给它。
然后在路径jboss-5.1.0.GA/server/default/deploy下放入mysql-ds.xml文件。
Mysql-ds.xml:
《datasources》
《local-tx-datasource》
《jndi-name》MySqlDS《/jndi-name》
《connection-url》jdbc:mysql://localhost:3306/ejbtest《/connection-url》
《driver-class》com.mysql.jdbc.Driver《/driver-class》
《user-name》jboss《/user-name》
《password》password《/password》
《/local-tx-datasource》
《/datasources》
4. 4.开发
4.1先创建一个EJB Project,名字叫EmployeeEJB。
然后在META-INF目录下新建一个persistence.xml文件
4.2开始创建我们的Entity Bean:Employee类,它是一个简单的Java Bean。
package com.sap.demo.ejb.employee.model;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Employee {
@Id
privateint id;
publicint getId() {
returnid;
}
publicvoid setId(int id) {
this.id= id;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
privateString name;
}
4.3 在ejb项目中创建一个Local的SessionBean,名字叫EmployeeServicel,它的主要功能是对employee进行数据的操作,包括创建、查找、删除。
接口声明:
package com.sap.demo.ejb.employee.ejb;
import javax.ejb.Local;
importcom.sap.demo.ejb.employee.model.Employee;
@Local
public interface EmployeeServiceLocal {
publicEmployee createEmployee(int id, String name);
publicEmployee findEmployee(int id);
publicvoid deleteEmployee(int id);
}
这里是接口的实现:
package com.sap.demo.ejb.employee.ejb;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
importcom.sap.demo.ejb.employee.model.Employee;
/**
*Session Bean implementation class EmployeeService
*/
@Stateless
public class EmployeeService implementsEmployeeServiceLocal {
@PersistenceContext(unitName= "EmployeeDS")
privateEntityManager em;
@Override
publicEmployee createEmployee(int id, String name) {
Employeeemp = new Employee();
emp.setId(id);
emp.setName(name);
em.persist(emp);
returnemp;
}
@Override
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
publicEmployee findEmployee(int id) {
returnem.find(Employee.class, new Integer(id));
}
@Override
publicvoid deleteEmployee(int id) {
Employeeemp = findEmployee(id);
if(emp != null) {
em.remove(emp);
}
}
}
这样EJB项目就创建完毕了。
4 4.4 然后创建Web Project,名字叫EmployeeWeb。这个项目很简单,包含一个Servlet和两个页面index.jsp和result.jsp。用户在index.jsp对employee进行创建、查找、删除,然后由result.jsp负责展示结果。
Index.jsp
《%@ pagelanguage="java" contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%》
***隐藏网址***
《html》
《head》
***隐藏网址***
《title》Insert titlehere《/title》
《/head》
《body》
《FORM ACTION="ShowResult"》
Id:
《INPUTTYPE="text" NAME="id"/》《P》
Name:
《INPUTTYPE="TEXT" NAME="name"/》
《INPUTTYPE="hidden" NAME="method"VALUE="create" /》
《INPUTTYPE="SUBMIT" VALUE="Createemployee and show result."》
《/FORM》
《FORM ACTION="ShowResult"》
Id:
《INPUTTYPE="text" NAME="id"/》
《inputTYPE="hidden" NAME="method"VALUE="find" /》
《INPUTTYPE="SUBMIT" VALUE="Find employeeand show result."》
《/FORM》
《FORM ACTION="ShowResult"》
Id:
《INPUTTYPE="text" NAME="id"/》
《inputTYPE="hidden" NAME="method"VALUE="delete" /》
《INPUTTYPE="SUBMIT" VALUE="Deleteemployee and show result."》
《/FORM》
《/body》
《/html》
result.jsp
《%@ pagelanguage="java" contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%》
***隐藏网址***
《html》
《head》
***隐藏网址***
《title》Insert titlehere《/title》
《/head》
《body》
《jsp:useBean id="employee"type="com.sap.demo.ejb.employee.model.Employee"scope="request"/》
id:《jsp:getProperty name="employee"property="id"/》,
name:《jsp:getProperty name="employee"property="name"/》
《/body》
《/html》
最后是Servlet ShowResult:
package com.sap.demo.ejb.servlets;
import java.io.IOException;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
***隐藏网址***
***隐藏网址***
***隐藏网址***
import com.sap.demo.ejb.employee.ejb.EmployeeServiceLocal;
importcom.sap.demo.ejb.employee.model.Employee;
/**
*Servlet implementation class ShowResult
*/
public class ShowResult extends HttpServlet {
privatestatic final long serialVersionUID = 1L;
@EJB
privateEmployeeServiceLocal service;
/**
*@see HttpServlet#HttpServlet()
*/
public ShowResult() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequestrequest, HttpServletResponse response)
*/
protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
Stringmethod = request.getParameter("method");
if(method.equals("create")) {
Stringname = request.getParameter("name");
Stringids = request.getParameter("id");
intid = Integer.parseInt(ids);
Employeeem = service.createEmployee(id, name);
request.setAttribute("employee",em);
}elseif (method.equals("find")) {
Stringids = request.getParameter("id");
intid = Integer.parseInt(ids);
Employeeem = service.findEmployee(id);
request.setAttribute("employee",em);
}else if (method.equals("delete")){
Stringids = request.getParameter("id");
intid = Integer.parseInt(ids);
Employeeem = service.findEmployee(id);
if(em != null){
service.deleteEmployee(id);
request.setAttribute("employee",em);
}
}
RequestDispatcherdispatcher = request.getRequestDispatcher("result.jsp");
dispatcher.forward(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequestrequest, HttpServletResponse response)
*/
protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
//TODO Auto-generated method stub
}
}

本文相关文章:
免费的androidapp源码网(有没有适合 Android 开发初学者的 App 源码推荐)
2026年8月29日 00:30
商城网站定制开发公司(开发一个商城App,包括网页,怎么选择开发团队或者公司大概需要多少钱)
2026年8月27日 08:00
郑州软件开发工资(在郑州工作一个月多少钱才能顾着温饱,我做软件开发,试用期好像是1500元,是否管吃管住未知,可能性不大)
2026年8月20日 22:30
企业app开发(企业使用的APP软件如何开发(怎样开发软件app))
2026年8月19日 18:20
app开发需要哪些人员(APP开发:一个APP开发需要哪些技术人员)
2026年8月16日 16:30
昆明小程序开发公司前十名(云南昆明百度小程序开发商哪家比较好)
2026年7月27日 23:00
更多文章:
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40



