MyEclipse下struts2、spring、hibernate整合
Struct2、Hibernate3、Spring3框架搭建实战
Struct2、Hibernate3、Spring3框架搭建实战采⽤⽬前最新的struts-2.3.1.2、hibernate3.6.10.Final、spring-framework-3.1.1.RELEASE开发包,以及eclipse-jee-indigo-SR2-win32、apache-tomcat-7.0.27服务器、JDK6和mysql5做开发环境,参考了前辈的⼀篇相关⽂章,改正了其中的错误和疏漏,克服了公司分配的“新”机器每⼩时⾃动重启三次的困难,终于把环境给搭好了。
整个过程中遵循的⼀个原则是,避免引⼊⽤不到的jar包,以求搭建⼀个最⼩的SSH 运⾏环境。
⾸先创建⼀个Dynamic web project 输⼊任意名字如SSHBase。
第⼀步:加载Spring环境我们需要引⼊的包有:org.springframework.asm-3.1.1.RELEASE.jarorg.springframework.beans-3.1.1.RELEASE.jarorg.springframework.context-3.1.1.RELEASE.jarorg.springframework.core-3.1.1.RELEASE.jarorg.springframework.expression-3.1.1.RELEASE.jarorg.springframework.jdbc-3.1.1.RELEASE.jarorg.springframework.web-3.1.1.RELEASE.jarorg.springframework.orm-3.1.1.RELEASE.jar由于spring默认开启了⽇志,还需要加⼊commons-logging的jar包,否则会报错。
建议不要⼀次性加⼊应该先加最核⼼的运⾏代码看缺少什么加什么,这样就不会加多余的包进来了,spring3已经把包按功能分开,不像以前⼀个包,这样更灵活,只要运⾏我们需要的功能,⽽没⽤到的就不⽤在硬性的添加进来。
Struts2+Spring3+Hibernate4+Maven整合
Struts2+Spring3+Hibernate4+Maven整合目录1.建立Maven工程2.搭建Spring33.搭建Struts2并整合Spring34.搭建Hibernate4并整合Spring3内容1.建立Maven工程第一步:第二步:第三步:第四步:注意:这里的JDK要选择默认的,这样别人在使用的时候,如何JDk不一致的话也不会出错,如下图所示:第五步:Maven标准目录src/main/javasrc/main/resourcessrc/test/javasrc/test/resources第六步:发布项目:Maven install清除编译过的项目:Maven cleanOK,Mean 工程创建成功!2. 搭建 Spring3(1)下载Spring3需要的jar包1.spring-core2.spring-context3.spring-jdbc4.spring-beans5.spring-web6.spring-expression7.spring-orm在pom.xml中编写Spring3需要的包,maven会自动下载这些包。
<!-- spring3 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>3.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>3.1.2.RELEASE</version></dependency>(2)编写Spring配置文件<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd /schema/context/schema/context/spring-context-3.0.xsd "><!-- 引入属性文件 --><context:property-placeholderlocation="classpath:config.properties"/><!-- 自动扫描dao和service包(自动注入) --><context:component-scan base-package="com.zc.dao,com.zc.service" /></beans>(3)编写测试首先,在src/main/java中创建com.zc.service包,在包中编写一个UserService 接口,代码如下:package com.zc.service;/*** 测试* @author ZC* */public interface UserService {public void test();}然后,在src/main/java中创建com.zc.service.imple包,在包中编写UserServiceImple 实现类,代码如下:package com.zc.service.impl;import org.springframework.stereotype.Service;import erService;@Service("userService")public class UserServiceImpl implements UserService {@Overridepublic void test() {System.out.println("Hello World!");}}注意:@Service("userService")使用junit注解完成service 注入,所以还要在pom.xml中配置junit注解。
三大框架整合及其原理
一搭建三大框架步骤1 搭建s2sh步骤分析:1.1在MyEclipse 里面新建一个 java web project1.2新建三个 Source Folder :src : 源文件config : 存放配置文件 : hibernate , spring , struts2test: 测试类1.3 导入环境需要的jar 包 : WebRoot/WEB-INF/lib (一共64个)2 搭建Hibernate 和Spring 整合(*根据搭建需求谁能先测试就先搭建谁)2.1 在 src 源文件里面建立一个 cola.s2sh.domain[并且在该包下创建一个持久类和该类的映射文件] .2.2 配置核心文件在 config 里面建立一个hibernate 文件夹里面创建hibernate.cfg.xml配置文件(里面的内容拷贝就可以)2.3 在spring 文件夹里面创建并且把sessionFactory 交给spring 来管理: [applicationContext-db.xml中引入][<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"><value>classpath:hibernate/hibernate.cfg.xml</value> </property></bean>]在 applicationContext.xml 中 : 导入<import resource="applicationContext-db.xml"/>2.4 测试sessionFactory[编写SpringUtils 然后继承这个][public class SpringUtils {public static ApplicationContext context;static {context = newClassPathXmlApplicationContext("spring/applicationContext.xml" );}}]2.5 编写 dao .service 的包类和接口;PersonDaoImpl 要继承HibernateDaoSupport[public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao {public void savePerson(Person person) {this.getHibernateTemplate().save(person);}}]2.6 把 dao ,service 放在spring 容器中:[<bean id="personDao"class="cola.s2sh.daoImpl.PersonDaoImpl"> <property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="personService"class="cola.s2sh.service.impl.PersonServiceImpl"><property name="personDao"><ref bean="personDao"/></property></bean>]2.7 完成 spring 声明式处理 :[<!-- 事务管理 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><tx:advice id="tx"transaction-manager="transactionManager"><tx:attributes><tx:method name="save*"read-only="false"/><tx:method name="update*"read-only="false"/><tx:method name="delete*"read-only="false"/><!--除了上面三种情况以外的情况--><tx:method name="*"read-only="true"/></tx:attributes></tx:advice><aop:config><aop:pointcutexpression="execution(* cola.s2sh.service.impl.*.*(..))"id="perform"/><aop:advisor advice-ref="tx"pointcut-ref="perform"/> </aop:config>]2.8 整合struts 创建 action 类包 ;2.9 把action 放在spring 容器中* 注意在personAction的spring的配置中一定要写一个属性scope="prototype"[<bean id="personAction"class="cola.s2sh.action.PersonAction" scope="prototype"><property name="personService"><ref bean="personService"/></property></bean>]在这个中引入下面3.0 编写struts2中配置文件Struts –person.xml中Struts.xml3.1 编写web .xml文件[<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>cola.s2sh</display-name><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!—将srping放在SrvletContext中进行加载当servlet加载时 spring 也完成加载 --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value> </context-param><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter -class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>]二原理分析:一、 Struts 2框架整合Spring步骤1、复制文件。
struts2+spring3+hibernate整合教程
Struts2+Spring3+hibernate3整合(2011年7月末,最新)上次下载了一个教程,上面写着:“献给我亲爱的老婆!”(羡慕不已)。
想了想,我没老婆,难道没什么好写了!不难…献给我暗恋过的每一个女人!(嘿嘿…)如果在你遇到的女生中有一个幽默豁达的女生,不要犹豫,追上去,就娶她了!一,需要的框架包二,建立project,添加相应的.jar文件(重点)1,eclipse中建立dynamic web project,这里是ssh_integrate_0100。
2,src中创建需要的类,这里以一个域模型为user的例子说明。
(现在建立这些类,可以方便我们在搭建时候随时测试!)User.javaIUserDao.javaUserDaoImpl.javaIUserService.javaUserServiceImpl.java3,拷贝spring-framework-3.1.0\dist目录下的所有jar包,注意有一个不是jar的文件,当然拷过去也没事。
4,拷贝spring运行中需要的其他jar文件,主要是mons-logging,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。
ii.Aspectjrt.jar和aspect-waver.jar,可以从spring-framework-2.5.6-with-dependencies/lib/aspectj下面找到(不知道为什么,spring-framework-3.0.2.RELEASE-dependencies中没有aspectjrt的jar包)iii.aopalliance.Jar,apache-dbcp.jar,apache-pool.jar,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。
5,建立beans.xml,这里使用的是annotation和component-scan,这样配置可以大大简化配置,所以是best-practice,其他配置请参考spring文档。
Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例
前言:这个例子的view层用到了struts,DAO层用到了hibernate,由于逻辑及其简单(只是往数据库添加一条记录),所以暂时没有用到spring。
一、使用eclipse+struts+spring+hibernate+myeclipse+mysql开发配置过程。
1.jdk的安装:安装文件:jdk-1_5_0_15-windows-i586-p.exe说明:最好用jdk1.5,可以去sun主页下载,我这里已经下了,可以提供。
注意:最好在新装系统下安装,并且此前没有装过java相关的软件,以免出现版本或者path问题。
过程:可以直接安装到c盘根目录下即可,注意要记住安装路径,以后可能会用到。
2.web应用服务器tomcat的安装:安装文件:apache-tomcat-5.5.26.exe说明:要想构建jsp应用,web应用服务器是必须要有的,asp服务器为IIS,php服务器为Apache,jsp服务器比较多有weblogic和websphere(两者是商业级的,比较强大,但要收费),tomcat和resin(免费的,比较适用中小级应用,如果是大型应用则须考虑集群)。
在这里,我选用tomcat,因为它使用较广泛,网上相关的资料也比较多。
我并没有选择最新版本,原因是次新版本往往比最新版本更加稳定。
注意:必须先装jdk,否则不能安装tomcat(原因之一是tomcat在对jsp进行编译时用到了jdk,并且jdk是tomcat正常工作的前提)。
过程:可以直接安装到c盘默认路径,选择前面安装的jdk路径,并且修改端口8080为80(tomcat默认端口为8080,而一般我们通过IE访问时端口为80,需要注意的是要保证没有其他程序已经占用80端口(比如你已经装了iis或者apache),否则tomcat不能正常启动),控制台页面的管理员admin帐号暂时不设置密码。
测试页面http://127.0.0.1,检测是否安装成功,如果进入欢迎页面就表示tomcat安装成功。
MyEclipse开发工具
MyEclipse 开发工具MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE 的扩展,利用它可以在数据库和Java EE 的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
1.MyEclipse 工具窗口MyEclipse 是功能丰富的Java EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML5、Struts2、JSF 、CSS 、JavaScript 、SQL 、Hibernate 、XML 等。
简单而言,MyEclipse 是Eclipse 的插件,也是一款功能强大的Java EE 集成开发环境,如图1-23所示。
图1-23 MyEclipse 窗口在MyEclipse 6.0版本以前,都需要用户先安装Eclipse 工具,而MyEclipse 6.0版本以后可以直接安装。
本书以最新的MyEclipse 9.0版本,来介绍JSP 项目的开发,用户可以从官方网站下相关工具软件,并安装该软件。
2.MyEclipse 包含插件MyEclipse 与Eclipse 相比,功能比较强大。
MyEclipse 不仅在开发过程中,操作比较灵活,而包含了许单独的类(或插件)。
MyEclipse 所包含的功能及插件介绍如下:菜单栏 工具栏 透视图工具栏包资源管理器视图和层次结构视图 属性视图编辑器视图大纲视图Image(图片)和Snippets(片段)视图控制台、Server 、Web Browser 等视图●Java EE模型Java EE(Java Platform,Enterprise Edition)是Sun公司推出的企业级应用程序版本。
能够帮助开发人员开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
Java EE是在Java SE 的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构和Web 2.0应用程序。
Maven搭建MyEclipse10+Struts2.1+Spring3.3+Hibernate3.3全注解框架
一、新建项目1.新建maven项目New ->project选择Maven projectnext在filter输入webapp选择maven-archetype-webappGroup id输入inscribe,artifact id输入farsighted二、添加struts2框架1.添加struts2支持项目上点右键->myeclipse->add struts capabilities点选struts2.1和/*只勾选struts2 core lib启动tomcat,在地址栏输入localhost:8088/farsighted出现如下界面2.添加action类New ->source folder输入src/main/javaNew ->classPackage输入org.inscribe.farsighted.action,name输入LoginActionLoginAction.javapackage org.inscribe.farsighted.action;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result;import com.opensymphony.xwork2.ActionSupport;/*** @author steve frank**/@ParentPackage("struts-default")public class LoginAction extends ActionSupport {private String name;private String password;public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Action(value = "login", results = {@Result(name = INPUT, location = "/WEB-INF/content/fail.jsp"),@Result(name = SUCCESS, location = "/WEB-INF/content/success.jsp") }) public String execute() {if (name.equals("steve") && password.equals("123"))return SUCCESS;elsereturn INPUT;}}Index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title></head><body><s:form action="login"><s:textfield name="name" value="steve"></s:textfield><s:textfield name="password" value="123"></s:textfield><s:submit></s:submit></s:form></body></html>success.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'success.jsp' starting page</title></head><body><s:text name="password" /><hr /><s:property value="password" /></body></html>fail.jsp<body>登录失败,用户名或密码错误.</body>三、添加hibernate框架1.添加hibernate支持右键->myeclipse->add hibernate capabilities点选hibernate 3.3 勾选enable hibernate annotations support勾选hibernate 3.3 annotations&entity manager,hibernate 3.3 core lib,hibernate 3.3 advanced support lib点选copy checked library jars to folder and add to build-path点选newFolder :src/main/resources勾选open configuration file选择db driver:mysql去掉勾,不创建hibernatesessionfactory四、添加spring框架1.添加spring支持项目右键->myeclipse->add spring capabilities点选spring3.0勾选spring 3.0 core;spring 3.0 aop;spring3.0 persistence core; spring3.0 persistence jdbc; 勾选copy checked library contents to project folder采取默认,enable aop,new applicationcontext.xml不创建sessionfactory2.applicationContext.xml文件配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/tx/schema/tx/spring-tx.xsd"> <bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBea n"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property><property name="packagesToScan" value="org.inscribe.farsighted.model" /> </bean><!-- 使用annotation 自动注册bean,并检查@Controller, @Service, @Repository注解已被注入--><context:component-scan base-package="org.inscribe.farsighted" /><!-- 配置事务管理--><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 配置注解实现管理事务(cglib:proxy-target-class="true")--><tx:annotation-driven transaction-manager="transactionManager"proxy-target-class="true" /></beans>3.hibernate.cfg.xml修改<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.url">jdbc:mysql://localhost:3306/test</property><property name="ername">root</property><property name="connection.password">admin</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="myeclipse.connection.profile">MYSQL</property><!-- <mapping class="org.inscribe.farsighted.model.Student" /> --><!-- Connection Pooling Info --><property name="initialSize">5</property><property name="maxActive">100</property><property name="maxIdle">30</property><property name="maxWait">500</property><property name="defaultAutoCommit">false</property></session-factory></hibernate-configuration>4.web.xml文件配置<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:applicationContext*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class ></listener><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>Set Character Encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>Set Character Encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>五、类的添加1.hibernate反向生成students表右键->hibernate reverse engineering选择package : com.inscribe.farsighted.model勾选create pojo<>db->点选add hibernate mapping annotations to pojo;勾选update hibernate configuration with mapping resource location勾选java data access object(dao)->勾选generate precise findby methods;点选sping daoId generation :native2.添加service接口package org.inscribe.farsighted.service;import org.inscribe.farsighted.model.Student;public interface StudentService {public Student findById(Integer id);}3.添加service实现类package org.inscribe.farsighted.service.impl;import javax.annotation.Resource;import org.inscribe.farsighted.model.Student;import org.inscribe.farsighted.model.StudentDAO;import org.inscribe.farsighted.service.StudentService;import org.springframework.stereotype.Service;@Servicepublic class StudentServiceImpl implements StudentService {@Resourceprivate StudentDAO studentDAO;@Overridepublic Student findById(Integer id) {// TODO Auto-generated method stubreturn studentDAO.findById(id);}}4.添加测试类package org.inscribe.farsighted;import org.inscribe.farsighted.model.Student;import org.inscribe.farsighted.service.StudentService;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");StudentService service = (StudentService) context.getBean("studentServiceImpl");Student s=service.findById(1);System.out.println(s.getName());}}5.WEB-INF下新建Folder包结构如下6.修改输出目录Build path->configure build pathOut folder统一改default:Webapp/src/main/webapp/WEB-INF/classes更改如果无效,在pom.xml中<build>……</build>添加<sourceDirectory>src/main/java</sourceDirectory><resources><resource><directory>src/main/resources</directory></resource></resources><outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>7.添加struts-spring支持(action注解配置支持)Build path->add librariesMyeclipse libraries勾选struts 2 spring libraries8.修改struts.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration2.1//EN" "/dtds/struts-2.1.dtd"><struts><!-- 开启使用开发模式,详细错误提示--><constant name="struts.devMode" value="true" /><!-- 将对象交给spring管理--><constant name="struts.objectFactory" value="spring" /><!-- 指定资源编码类型--><constant name="struts.i18n.encoding" value="UTF-8" /><!-- 指定每次请求到达,重新加载资源文件--><constant name="struts.i18n.reload" value="true" /><!-- 指定每次配置文件更改后,自动重新加载--><constant name="struts.configuration.xml.reload" value="false" /><!-- 国际化资源文件--><constant name="struts.custom.i18n.resources" value="content/Language" /><!-- 浏览器缓存--><constant name="struts.serve.static.browserCache" value="false" /><!-- 默认后缀名--><constant name="struts.action.extension" value="do,action,jhtml,," /><!-- Struts Annotation --><constant name="actionPackages" value="com.frank.action" /> </struts>9.在LoginAction.java中添加调用StudentService@Resourceprivate StudentService studentService;测试Student s = studentService.findById(1);System.out.println(s.getName());10.success.jsp中添加<hr /> ${password}11.启动tomcat,地址栏输入http://localhost:8088/farsighted/点击submit效果如下包结构如下12.测试完成.。
Struts2+Spring3+Hibernate3 集成方法
Struts2+Spring3+Hibernate3 集成 目 录 1.Struts2集成 ..................................................... 11.1. 把Struts提供的jar包拷贝到/WEB-INF/lib/目录下 (1)1.2. 在web.xml中配置Struts的过滤器 (2)2.Struts2开发 ..................................................... 22.1 编写Struts Action程序,需要继承ActionSupport (2)2.2 创建struts.xml的Action映射文件 (3)3.Struts2+Spring集成 .............................................. 33.1 按第1步“Struts2集成”方法集成Struts2 (3)3.2 再把Struts的Spring插件把拷贝到/WEB-INF/lib/目录下 (3)3.3 把Spring提供的jar拷贝到/WEB-INF/lib/目录下 (3)3.4 web.xml配置Spring的过滤器 (3)3.5 创建applicationContext.xml配置文件 (4)4.Struts2+Spring+Hibernate集成 ..................................... 54.1 先按照“Struts2+Spring集成”方法执行 (5)4.2 导入Apache Commons几个jar包 (5)4.3 导入Hibernate几个jar包 (5)4.4 数据库的JDBC驱动 (5)4.5 在applicationContext.xml中加入如下的配置 (5)4.6 创建hibernate.cfg.xml文件 (6)5.Struts2+Spring+Hibernate开发 ..................................... 65.1 编写Model类 (6)5.2 编写Model类的HBM映射文件 (7)5.3 在applicationContext.xml中指定HBM映射文件路径 (8)5.4 编写DAO接口和实现类程序,并继承HibernateDaoSupport (8)5.5 在applicationContext.xml中配置DAO Bean (10)6.注意事项 ....................................................... 101. Struts2集成1.1.把Struts提供的jar包拷贝到/WEB-INF/lib/目录下Struts需要如下几个包:解压:struts-2.2.3.1-lib.zip需要:struts2-core-2.2.3.1.jarxwork-core-2.2.3.1.jarognl-3.0.1.jarfreemarker-2.3.16.jarjavassist-3.11.0.GA.jar和所有以“commons-”开头的包。
整合struts1+spring+hibernate框架完成简单的登录
*编写环境:*开发工具:Myeclipse6.01*SPRING :spring2.0*STRUTS :struts1.2*HIBERNATE:hibernate3.0*JDK: 1.6*TOMCAT: 6.0*WINDOW641.新建web项目。
2.选中新建项目,右键--》选择“myeclipse”--》添加Struts支持。
3.在弹出的信息框,有必要修改一下图中的地方。
4.上面的操作完成之后,打开我们的项目我们可以看到我们的项目结构发生了变化,引入了一些struts标签和生成了struts-config.xml配置文件。
5.开始添加spring支持,同样选中新建项目,右键--》选择“myeclipse”--》“添加spring 支持”,在弹出的信息框,做如下内容修改:6.点击“next”,直接选择默认,当然也可根据自己的规则做修改。
7.在添加“Hibernate”支持的时候,首先做的工作是创建一个数据源。
这个创建方法有很多中(找百度可得)这里只介绍一种:打开你的myeclipse的右上角的小三角,选择“myeclipsedatabase explorer”在弹出的界面中,在如图位置右键“new”在弹出的界面中做如下修改:修改完成后点击“test driver”成功则继续。
8.暂时回到myeclipse开发界面。
正式开始添加“Hibernate”支持。
在弹出的界面中做如图修改:点击“next”这里如图,选择spring的配置文件。
下一步操作后,做如下图修改操作:下一步之后,界面修改操作,如下图:去掉复选框中的选项,然后点击“finish”完成整个操作。
之后将会直接打开spring的配置文件,然后你核对一下您的数据库连接是否正确。
至此三大支持操作完成,启动没有问题说明框架雏形已经完成。
9.在项目中的WEB-INF下找到web.xml,做如下修改:格式头部分省略,下面是需要新增的代码<!--初始化spring配置参数 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 配置监听 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</list ener-class></listener><!-- 配置spring过滤器解决中文乱码问题 --><filter>Ps :这个时候我们再次启动服务的时候,发现可能会报错:因为我们在刚才已经把spring 的配置文件做了初始化,而在spring 的配置文件中有数据源的连接,而我们的项目中可能还缺少一个包:commons-pool-1.4.jar(/detail/u013806366/7897665 )当我们把这个包放在lib 下,我们再次启动项目的时候,错误信息应该会消失。
struts2+ibatis+spring整合开发
Struts2+ibatis+spring整合开发1.工程结构图2.配置文件web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderList ener</listener-class></listener><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>如图:Struts.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.objectFactory.spring.autoWire" value="type" /><constant name="struts.objectFactory" value="spring" /><include file="struts-default.xml"/><package name="struts2" extends="struts-default"><default-interceptor-ref name="paramsPrepareParamsStack" /> <!-- aciton的class为applicationContext.xml中的注册名 --><action name="login" class="LoginAction"><result name="success">/success.jsp</result><result name="input">/login.jsp</result></action><action name="save" class="LoginAction" method="save"><result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="edit" class="LoginAction" method="edit"><result name="success">update.jsp</result></action><action name="update" class="LoginAction" method="update"> <result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="delete" class="LoginAction" method="delete"> <result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="show" class="LoginAction" method="findAllUser"> <result name="success">/list.jsp</result><result name="error">/error.jsp</result></action></package></struts>如图:Struts.properties#struts.url.http.port=8080struts.devMode=truestruts.configuration.xml.reload=truestruts.locale=zh_CNstruts.i18n.encoding=UTF-8struts.objectFactory=spring如图:sql-map-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfigPUBLIC "-////DTD SQL Map Config 2.0//EN""/dtd/sql-map-config-2.dtd"><sqlMapConfig><sqlMap resource="cn/hsw/model/user.xml"/></sqlMapConfig>如图:applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans default-autowire="byType"xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://127.0.0.1:3306/debug" /><property name="username" value="root" /><property name="password" value="123456" /></bean><bean id="client"class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="dataSource"><ref local="dataSource"/></property><property name="configLocation"><value>classpath:sql-map-config.xml</value></property></bean><!-- bean中的class为实现接口的类;property的name为类中引用的属性名称;ref 为spring注册的名称,如上面的client--><bean id="userDao"class="erDAO"><property name="client" ref="client" /></bean><bean id="userService"class="erService"><property name="userDAO" ref="userDao"></property> </bean><bean id="LoginAction" class="cn.hsw.action.Login"><property name="userService" ref="userService"></property> </bean></beans>如图:3.Login.javapackage cn.hsw.action;import java.util.List;import er;import cn.hsw.service.IUserService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.opensymphony.xwork2.Preparable;public class Login extends ActionSupport implements ModelDriven<User>,Preparable {private IUserService userService=null;private String id;private int pageIndex=1;private String pageBar;private List<User> list;private User user;public void prepare()throws Exception{if(id==null||id.length()==0){user=new User();}else{user=getUserService().getUserById(Integer.parseInt(id));}}public String execute()throws Exception{if(getUserService().isLogin(user)){return SUCCESS;}return INPUT;}public String save()throws Exception{if(getUserService().insertUser(user)){return SUCCESS;}return ERROR;}public String edit(){return SUCCESS;}public String update()throws Exception{if(getUserService().updateUser(user)){return SUCCESS;}return ERROR;}public String delete()throws Exception{if(getUserService().deleteUser(Integer.parseInt(id))){return SUCCESS;}return ERROR;}public String findAllUser()throws Exception{try {list=getUserService().getAllUser();} catch (Exception e) {}return SUCCESS;}public String getId() {return id;}public void setId(String id) {this.id = id;}public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) { this.pageIndex = pageIndex;}public String getPageBar() {return pageBar;}public void setPageBar(String pageBar) { this.pageBar = pageBar;}public List<User> getList() {return list;}public void setList(List<User> list) {this.list = list;}public User getUser() {return user;}public void setUser(User user) {er = user;}public void setUserService(IUserService userService) { erService = userService;}public IUserService getUserService() {return userService;}public User getModel() {// TODO Auto-generated method stubreturn user;}}如图:IUserDAO.javapackage cn.hsw.dao;import java.util.List;import er; public interface IUserDAO {public List<User> getAllUser();public User getUserById(Integer id);public boolean isLogin(User user);public boolean insertUser(User user);public boolean updateUser(User user);public boolean deleteUser(Integer id);}如图:UserDAO.javapackage cn.hsw.dao;import java.util.List;import org.springframework.orm.ibatis.SqlMapClientTemplate;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import er;import com.ibatis.sqlmap.client.SqlMapClient;public class UserDAO implements IUserDAO {private SqlMapClient client = null;public boolean deleteUser(Integer id) {try {client.delete("deleteUser", id);return true;} catch (Exception e) {return false;}}public List<User> getAllUser() {List<User> list=null;try{list=client.queryForList("getAllUser");}catch(Exception e){e.getStackTrace();}return list;}public User getUserById(Integer id) {User user=null;try {user=(User) client.queryForObject("getUserById",id);return user;} catch (Exception e) {e.getStackTrace();}return user;}public boolean insertUser(User user) {try{client.insert("insertUser",user);return true;}catch(Exception e){return false;}}public boolean isLogin(User user) {try {User u=(User) client.queryForObject("checkUser",user);if(u!=null){return true;}} catch (Exception e) {e.getStackTrace();}return false;}public boolean updateUser(User user) {try {client.update("updateUser",user);return true;} catch (Exception e) {return false;}}public void setClient(SqlMapClient client) { this.client = client;}}如图:User.javapackage cn.hsw.model;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) { ername = username;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}}如图:user.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-////DTD SQL Map 2.0//EN""/dtd/sql-map-2.dtd"><sqlMap namespace="User"><typeAlias alias="user" type="er"/><!-- 查询表中记录条数 --><select id="recordCount" resultClass="int"><![CDATA[select count(*) from user]]></select><select id="getUserById" parameterClass="int" resultClass="user"> <![CDATA[select * from user where id =#id#]]></select><select id="getAllUser" resultClass="user"><![CDATA[select * from user]]></select><select id="checkUser" parameterClass="user" resultClass="user"> <![CDATA[select * from user where username =#username# and password =#password#]]></select><!-- --><select id="firstPage" resultClass="user" parameterClass="user"> <![CDATA[select top $pagesize$ * from user order by id desc ]]></select><delete id="deleteUser" parameterClass="int"><![CDATA[delete from user where id= #id#]]></delete><update id="updateUser" parameterClass="user"><![CDATA[update user set username= #username#,password= #password# where id =#id#]]></update><insert id="insertUser" parameterClass="user"><![CDATA[insert into user(username,password)values(#username#,#password#)]]></insert></sqlMap>如图:IUserService.javapackage cn.hsw.service;import java.util.List;import er;public interface IUserService {public List<User> getAllUser();public User getUserById(Integer id);public boolean isLogin(User user);public boolean insertUser(User user);public boolean updateUser(User user);public boolean deleteUser(Integer id); }如图:UserService.javapackage cn.hsw.service;import java.util.List;import cn.hsw.dao.IUserDAO;import erDAO;import er;public class UserService implements IUserService { private IUserDAO userDAO=null;public void setUserDAO(UserDAO userDAO) { erDAO = userDAO;}public boolean deleteUser(Integer id) {return userDAO.deleteUser(id);}public List<User> getAllUser() {return userDAO.getAllUser();}public User getUserById(Integer id) {return userDAO.getUserById(id);}public boolean insertUser(User user) { return userDAO.insertUser(user); }public boolean isLogin(User user) { return userDAO.isLogin(user); }public boolean updateUser(User user) { return userDAO.updateUser(user); }}如图:4.页面adduser.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'adduser.jsp' starting page</title></head><body><s:form action="save" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="save"/></s:form></body></html>如图:error.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'error.jsp' starting page</title></head><body>This is my JSP page. <br></body></html>如图:list.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'list.jsp' starting page</title></head><body><s:form action="show" method="post"><table width="50%" align="center"><tr><td align="center">userid</td><td align="center">username</td><td align="center">password</td></tr><s:iterator value="list" id="user" status="st"><tr><td align="center"><s:property value="id"/></td><td align="center"><s:property value="username"/></td><td align="center"><s:property value="password"/></td><td align="center"><s:url id="update" action="edit"><s:param name="id"><s:property value="id"/></s:param></s:url><s:a href="%{update}">update</s:a></td><td align="center"><s:url id="delete" action="delete"><s:param name="id"><s:property value="id" /></s:param></s:url><s:a href="%{delete}">delete</s:a></td></tr></s:iterator><tr><td colspan="4"><s:property value="#request.pageBar" escape="false"/> </td></tr></table></s:form> </body></html>如图:login.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'login.jsp' starting page</title></head><body><s:form action="login" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="submit"/></s:form></body></html>如图:success.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>success</title></head><body><a href="show.action">显示用户列表</a></br><a href="adduser.jsp">添加用户</a></body></html>如图:update.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>update.jsp</title></head><body><s:form action="update" method="post"><s:textfield name="id" label="ID" value="%{id}" readonly="true"/> <s:textfield name="username" label="UserName" value="%{username}" required="true"/><s:textfield name="password" label="Password" value="%{password}" required="true"/><s:submit value="update"/></s:form></body></html>如图:5.jar包6.表userCREATE TABLE `user` (`id` int(11) NOT NULL auto_increment,`username` varchar(20) NOT NULL default '',`password` varchar(11) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk。
Struts+Spring+Hibernate整合入门详解
3、运行eclipse,选择一个空目录作为工作区(工程结构如下:其中我们要写的Java代码在Java Resource: src(以后直接称src)下,网站根目录内容在WebContent下,类所在根目录是WEB-INF/classes,Eclipse 会自动将build/classes里面已经编译的类同步过去。
向WEB-INF下的lib目录添加如下所列的jar包。
(1)这些包在下载解压后Spring,Struts,Hibernate的lib目录或者dist/module目录下面(如果不在,可以到网上google一把。
列表中mysql-*.jar包是MySQL数据库的JDBC Driver)。
也可以把所有lib和dist 下的jar包拷贝过来(可以在系统复制这些jar包,然后到Eclipse里面选中WEB-INF里面的lib包,然后粘帖就可以了)。
但要注意全拷贝可能会存在冲突,如struts*plugin.jar等包不能引入,否则不能运行。
(2)这些Jar包是:antlr-2.7.2.jarcglib-nodep-2.1_3.jarcommons-beanutils-1.6.jarcommons-chain-1.1.jarcommons-collections-2.1.1.jarcommons-dbcp.jarcommons-digester.jarcommons-logging-1.0.4.jarcommons-logging-api-1.1.jarcommons-pool.jarcommons-validator-1.3.0.jardom4j-1.6.1.jarel-api.jarel-ri.jarfreemarker-2.3.8.jarhibernate3.jarjsf-api.jarjta.jarmysql-connector-java-3.0.14-production-bin.jarognl-2.6.11.jaroro-2.0.8.jarspring-hibernate3.jarspring.jarstruts-config.xmlstruts-core-1.3.5.jarstruts2-codebehind-plugin-2.0.9.jarstruts2-config-browser-plugin-2.0.9.jarstruts2-core-2.0.9.jarstruts2-jasperreports-plugin-2.0.9.jarstruts2-jfreechart-plugin-2.0.9.jarstruts2-jsf-plugin-2.0.9.jarstruts2-pell-multipart-plugin-2.0.9.jarstruts2-plexus-plugin-2.0.9.jarstruts2-sitegraph-plugin-2.0.9.jarstruts2-sitemesh-plugin-2.0.9.jarstruts2-spring-plugin-2.0.9.jarstruts2-struts1-plugin-2.0.9.jarstruts2-tiles-plugin-2.0.9.jartiles-api-2.0.4.jartiles-core-2.0.4.jartiles-jsp-2.0.4.jarindex.jsp的内容如表,我们暂时不分析。
struts2+spring+hibernate整合步骤
引用struts2、hibernate、spring所需jar包struts-core-2.x.x.jar ----struts核心包xwork-core-2.x.x.jar -----身体ruts在其撒很难过构建ognl-2.6.x.jar ----对象导航语言freemarker-2.3.x.jar ------struts2的ui标签的模板使用commons-fileupload-1.2.x.jar ----文件上传组件 2.1.6版本后需加入此文件struts-spring-plugin-2.x.x.jar ---用于struts2继承spring的插件hibernate核心安装包下的(下载路径:/ ,点击Hibernate Core 右边的download)hibernate2.jarlib\bytecode\hibernate-cglib-repack-2.1_3.jarlib\required\*.jarhibernate安装包下的(下载路径:/;点击Hibernate Annotations 右边的下载)hibernate-annotations.jarlib\ejb3-persistence.jar、hibernate-commons-annotations.jar hibernate针对JPA的实现包(下载路径:/ ,点击Hibernate Entitymanager右边下载)hibernate-entitymanager.jarlib\test\log4j.jar、 slf4j-log4j12.jarspring安装包下的dist\spring.jarlib\c3p0\c3p0-0.9.1.2.jarlib\aspecti\aspectjweaver.jaraspectjrt.jarlib\colib\cglib-nodep-2.1_3.jarlib\j2ee\common-annotations.jarvlib\log4j\log4j-1.2.15.jarlib\jakarta-commons\commons_loggin.jar数据库驱动包引用创建mysql数据库ssh 设置编码为utf-8 语句:create database ssh character set 'utf8' collate 'utf8_general_ci'引用1.先整合spring和hibernate*将spring和hibernate的jar包放入lib下;*创建spring的beans.xml配置文件Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<beans xmlns="/schema/beans"3. xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"4. xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"5. xsi:schemaLocation="/schema/beans6./schema/beans/spring-beans-2.5.xsd7. /schema/context8./schema/context/spring-context-2.5.xsd 9. /schema/aop/schema/aop/spring-aop-2.5.xsd10. /schema/tx/schema/tx/spring-tx-2.5.xsd">11.12. <!-- 将bean交由spring管理可以用<bean></bean>和扫描加注 -->13. <!--14. 扫描该包及该包下的子包15. -->16. <context:component-scanbase-package="com.yss"></context:component-scan>17.18.19. <!-- 集成hibernate sessionFactory单例模式线程安全创建耗内存-->20. <!-- 将hibernate的事务也交由spring管理 -->21. <bean id="dataSource"class="boPooledDataSource"22. destroy-method="close">23. <property name="driverClass"value="org.gjt.mm.mysql.Driver" />24. <property name="jdbcUrl"25.value="jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterE ncoding=UTF-8" />26. <property name="user" value="root" />27. <property name="password" value="root" />28. <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize 之间。
struts2+hibernate+spring经典整合实例教程
Struts2与Spring、Hibernate三者整合的过程示例:示例工具:MyEclipse 7.0、Tomcat 6.0、MySql步骤:1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名);2.导入struts2的核心jar包,也就是在WEB-INF下的lib文件夹中放入jar包文件,如下图(图中jar包为示例版本):3.加载spring,选中工程名,右击并选择【MyEclipse】选项下的【Add Spring Capabilities...】(或者在工具栏中选择【MyEclipse】下的【Add Spring Capabilities...】),在弹出的对话框中进行如下图所示操作:点击【Next】,点击Folder文本框后的【Browse】,在弹出对话框中选择spring配置文件存储位置为WEB-INF 文件夹,如下图所示:点击【OK】后,再点击【Finish】完成。
至此,已经完成加载spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。
4.加载Hibernate,选择【MyEclipse】下的【Add Hibernate Capabilities...】,在弹出对话框中进行如下图所示操作:点击【Next】后,选择Existing Spring configuration file单选框,在SessionFactory Id文本框中填入"sessionFactory",如下图所示:点击【Next】,进行如下图所示操作:该操作中,只需在Bean Id文本框中输入一个Id名,作为数据库源的代用名,意义不大。
然后在DB Driver 下拉列表中,选择MyEclipse中创建好的数据库源xiaoqi,其他信息将自动填写。
点击【Next】,在弹出对话框中去掉Create SessionFactory class?复选框,不创建该类,点击【Finish】完成(创建过程中,加载的jar包文件可能有重复,所以这个时候如果提示有某些jar包重复,问全部保存【Keep Exiting】,还是替换掉【Replace】,可以选择替换掉【Replace】)。
MyEclipse介绍
MyEclipse一、简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
官方网站:/二、版本MyEclipse 5.0 版本Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。
它的价格对于个人和企业开发人员来说都是非常有吸引力的。
这是J2EE IDE市场一个重量级的选手。
通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle 数据库开发,MyEclipse 5.0继续为业界提供全面的产品。
MyEclipse 6.XGA 版本1、平台和安装支持2、改进了Java EE 5 和 Spring功能部件3、支持AJAX开发和测试4、支持RAD Web 开发5、具备Matisse4MyEclipse可视化Swing设计器6、快速Java EE部署和测试MyEclipse 7.0 版本7.0的发布意味着我们不再需要配置Tomcat以及服务器了,你所需要做的仅仅是安装MyEclipse 7.0。
7.0发行版包括在7.0M2和6.6版本基础上对bug的修复和功能的加强。
提供的支持包括:Eclipse 3.4.1/Ganymede、REST web服务、新的myeclipse操作板、spring工具集更新、集成Manven2、open JPA支持、高级javascript工具、专业的jsdt实现、报表工具加强、jsf和ICEfaces工具更新。
北风网MyEclipse教程第11章
第11章SSH2框架整合开发Struts 2框架在实际开发中主要做控制层,所以它也可以和Spring、Hibernate进行整合开发,通常将它们整合后的框架称为SSH2框架。
Struts2框架只和Hibernate框架整合是比较少见的,它并不符合当前Web项目的分层思想,所以这里就不对它进行详细讲解。
在本章中将先来讲解Struts2和Spring整合,再来讲解如何将三种框架整合在一起开发。
11.1 Struts 2+Spring整合开发在Struts和Spring整合一节中,可以发现修改的地方是非常多的。
Struts2和Spring 整合是比较方便的,在Struts 2框架中专门开发了用于Spring整合的插件JAR包,在本节中将主要讲解它们之间的整合操作。
11.1.1 创建整合项目因为在MyEclipse中并没有集成开发Struts 2项目的功能,所以要首先手动创建一个Struts 2项目。
在普通的Web项目中执行加入Struts 2类库和加入、修改配置文件等操作,这些操作可以参考Struts 2一章进行学习。
在Struts 2项目的基础上,加入Spring框架的支持。
在MyEclipse的菜单中,选择“MyEclipse”|“Project Capabilities”|“Add Spring Capabilities”命令,将弹出加入Spring 类库支持操作界面,在其中选择Spring核心类库和Web类库,如图11-1所示。
•图11-1 加入Spring类库单击“Next”按钮,将进入对Spring配置文件进行设置的界面,如图11-2所示。
说明:在和Struts 2整合的项目中,当启动项目时将会首先查找WEB-INF目录下的Spring配置文件,如果该根目录下没有,则会自动查找子目录。
所以通常直接放在WEB-INF目录下,放在sec目录下也是可以的,它将自动放置在WEB-INF|classes目录下。
struts2+spring+hibernate分页显示完整代码
分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流。
1、DAO层接口的设计,在MemberDao接口中定义了如下两个方法:publicinterface MemberDao {@SuppressWarnings("unchecked")/*** 分页查询* @param hql查询的条件* @param offset 开始记录* @param length 一次查询几条记录* @return*/public List queryForPage(final Stringhql,finalint offset,finalint length);/*** 查询所有记录数* @param hql查询的条件* @param offset 开始记录* @return总记录数*/publicint getAllRowCount(String hql);}2、DAO层实现类MemberDaoImpl对上面两个方法的实现如下:publicclass MemberDaoImpl extends HibernateDaoSupport implements Me mberDao {/*** 查询所有记录数* @return总记录数*/publicint getAllRowCount(String hql) {return getHibernateTemplate().find(hql).size();}/*** 分页查询* @param hql查询的条件* @param offset 开始记录* @param length 一次查询几条记录* @return*/@SuppressWarnings("unchecked")public List queryForPage(final String hql, finalint offset, finalint length) {List list =getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session)throws HibernateException, SQLException {Query query = session.createQuery(hql);query.setFirstResult(offset);query.setMaxResults(length);List list = query.list();return list;}});return list;}}细心的读者会发现,这个类继承了HibernateDaoSupport类,HibernateDaoSupport是Spring 提供的对Hibernate支持的类,getHibernateTemplate().executeFind(new HibernateCallback(){....})方法中的参数,我们使用了接口回调,在其参数内,我们能像原生的Hibernate一样调用query.setFirstResult(offset)和query.setMaxResults(length)来实现分页查询功能。
实验 七 MyEclipse8.6-10版的SSH实验
基于Struts2.1 + Spring3.0 + Hibernate3.3的整合实验(MyEclipse10版)2013.11.18一. 目的和要求本实验是让学生初步掌握综合利用Struts2 + Spring3.0 + Hibernate3.3进行企业级Web 应用开发的基本方法,了解Spring框架的作用。
二. 实验步骤1.准备数据库和数据库连接驱动(1)在SQL Server 20XY中创建数据库test和表users,创建表的SQL脚本如下:Use testCREATE TABLE users (id tinyint IDENTITY (1, 1) primary key ,username varchar (20) NOT NULL ,password varchar (20) NOT NULL)(2)在MyEclipse的Database Explore透视图中创建数据库连接驱动DN。
2.创建工程,使其具有Struts、Spring和Hibernate能力(1)新建web工程SSH图0 工程包结构总览图(左部)(2)使工程具有Struts能力1)选择struts的最新版本和使用action的模式在MyEclipse10中struts的最新版本为2.1,URL模式选为/*,选择如图1所示。
注意过滤器的名字,这个名字会在web.xml中体现出来。
图1 struts的版本和Action的使用方式选择2)Struts包的选择因为这次实验要与Spring集成,所以对Struts包的选择,除了导入Struts的核心包外,还要导入Struts的Spring库,选择如图2所示。
图2 Struts包的选择(3)使工程具有Spring能力1)选择Spring的最新版本和相关库的安装方式在MyEclipse10中Spring的最新版本为3.0。
对JAR包的安装,可以选择将检测到的库增加到build-path中,或将检测到的库的内容复制到工程中。
struts2+spring+hibernate整合时所需的jar包
struts2+spring+hibernate整合时所需的jar包[java]view plaincopy1.1. //struts2核心包2.2. struts2-core-2.0.11.2.jar3.3.4.4. //struts2必须 (strust2 webwork的升级,webwork核心包)5.5. xwork-2.0.5.jar6.6.7.7. //struts2必须8.8. freemarker-2.3.8.jar9.9.10.10. //struts2必须11.11. ognl-2.6.11.jar12.12.13.13. //struts2整合Spring插件14.14. struts2-spring-plugin-2.0.11.2.jar15.15.16.16. //Spring整体包17.17. spring.jar18.18.19.19. //Hibernate必须使用,注意此包是包含全部的。
20.20. hibernate3.jar21.21.22.22. //如果使用C3P0数据源实现数据库连接23.23. c3p0-0.9.0.4.jar24.24.25.25. //Mysql JDBC驱动26.26. mysql-connector.jar27.27.28.28. //如果不用,启动时不会出错,但使用Dwr时,会抛出异常:ng.NoClassDefFoundError: antlr/ANTLRException29.29. antlr-2.7.2.jar30.30.31.31. //如果不用此包,在启动时会抛出: nested exception is ng.NoClassDefFoundError: org/o bjectweb/asm/Type32.32. asm.jar33.33.34.34.35.35. //如果不用此包,在启动时抛出:nested exception is ng.NoClassDefFoundError: net/sf/cgli b/proxy/CallbackFilter36.36. cglib-2.1.3.jar37.37.38.38. //如果不用此包,在启动时抛出:nested exception is ng.NoClassDefFoundError: org/apach e/commons/collections/SequencedHashMap39.39. commons-collections-3.1.jar40.40.41.41. //这个似乎可以不用的(用于上传下载)42.42. commons-fileupload-1.2.1.jar43.43.44.44. //这个就不用说啦,几乎所有框架都要使用的45.45. commons-logging-1.0.4.jar46.46.47.47. //如果不用此包会抛出:ng.NoClassDefFoundError:org/dom4j/DocumentException48.48. dom4j-1.6.1.jar49.49.50.50. //dwr必须51.51. dwr.jar52.52.53.53.54.54. //不用此包,在启动时抛出:ng.NoClassDefFoundError:javax/transaction/TransactionM anager55.55. jta.jar56.56.57.57. //如果想用junit测试,必须。
第9章 Spring与Struts2、Hibernate框架的整合
第9章Spring与Struts2、Hibernate框架的整合基础一、搭建Struts框架注:导入的jar包与前面课程介绍的不同二、搭建Spring框架1.添加的类库包括AOP、Core、Persistent Core、JDBC、Web库2.修改applicationContext.xml的存储目录为WebRoot/WEB-INF三、搭建hibernate框架1.建立数据库连接2.搭建框架,注意选择的配置文件为applicationContext.xml而不是hibernate.cfg.xml。
1)设置SessionFactory的Bean id为sessionFactory。
2)设置DataSource的Bean Id为dataSource3)取消“Create SessionFactory class”选项4)导入包commons-pool-1.3到lib文件夹。
四、修改web.xml加入Spring监听器配置,至此所有框架搭建完毕。
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>五、数据库建表六、在工程下创建domain、dao包,反向工程自动生成实体类、配置文件、dao类。
1)反向工程将生成的dao文件2)移动dao类到dao包,修改由于移动dao类后applicationContext.xml出现的错误,并将id名首字母改成小写。
3)为dao类提取出接口。
在工作区右键dao文件-》refactor-》extract interface七、编写service、service接口并配置1)创建service包2)创建service类,定义方法findScoreBySnumber()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MyEclipse下struts2、spring、hibernate整合
1、MyEclipse下建立新的Web Project
2、Copy Struts2的lib文件到工程的WEB-INF/lib下非*-plugin-2.0.6.jar的所有的包加上struts2-spring- plugin-2.0.6.jar,最小的包可以在struts-2.0.6\apps\struts2-blank-2.0.6\WEB-INF\ lib下找到,不过因为使用Spring,Hibernate那点包是不够用的
3.1、工程名上右键->MyEclipse->Add Spring Capabilities点击出现对话框
3.2、由于我用的MyEclipse中Spring的插件是1.2的,所以没使用MyEclipse下的包,不选择MyEclipse Libraries
3.3、选中Copy checked library contents to project folder (TLDs always copied)
3.4、使用默认的Library Folder:/WebRoot/WEB-INF/lib,Next
3.5、Folder点周Brower选中项目的WebRoot/WEB-INF/
3.6、点击Finish
4、配置MyEclipse数据库设置
4.1、菜单Windows->Preferences->MyEclipse->Database Explorer->Drivers
4.2、点击New设置数据库连接,例:
Driver template : Oracle (Thin driver)
Driver name : Oracle (Thin driver)
Connection URL : jdbc:oracle:thin:@<server>[:<1521>]:<database_name>
Driver JARs: ojdbc14.jar
Dirver classname : oracle.jdbc.driver.OracleDriver
4.3、点击OK、OK
5、忘了Copy Spring 2的jar包到工程中了,不过没关系,现在Copy也一样,Copy spring-framework-2.0.3\dist\spring.jar 到/WebRoot/WEB-INF/lib下就可以了,如果想Copy专用的包可以Copy spring-framework-2.0.3\dist\modules下的
5.1、菜单Windows->Open perspective->MyEclipse Database Explorer
5.2、在DB Brower点右键->New
5.3、配置例子如下:
Profile name: test
Driver: Oracle (Thin driver)
URL: jdbc:oracle:thin:@127.0.0.1:1521:test
User name: test
Password: test
选中Save password
5.4、点击Finish
6.1、配置Hibernate
6.2 工程名上右键->MyEclipse->Add Hibernate Capabilities点击出现对话框
6.3、选中Copy checked Library Jars to project folder and add to build-path 点击Next
6.4、选中Spring configuration file (applicationContext.xml)点击Next
6.5、选中Existing Spring configuration file,MyEclipse会帮你自动找到Spring Config文件的6.6、SessionFactory ID填写sessionFactory点击Next
6.7、Bean Id填写dataSource,选中DB Profile下刚才建好的test,点击Next
6.8、不选择Create SessionFactory class?点击Finish
7、这时候会提示你某些类没发现,Copy commons-dbcp-1.2.1.jar到lib下就OK了。