1、创建名为SSHOper的Web工程
在src下面创建:
com.ssh.util--存放公共的工具类,即公用型的工具方法
com.ssh.userinfo.dao--存放数据访问的接口
com.ssh.userinfo.daoimp--存放数据访问接口的实现方法
com.ssh.userinfo.web--存放struts类,转发器
com.ssh.userinfo.model--存放持久化实体对象,实体关系映射
WebRoot下面创建:
page--jsp页面
script--JS代码,JS集合类
images--图片,多媒体文件
css--样式表
注意:创建好上面的目录结构后,在Debug模式下面验证工程的有效性
2、确认目录结构没有问题
(1)、在工程中通过IDE工具添加Struts的框架支持。
右键项目名称---Myeclipse---Add Struts Capabilities---2.1版本,选择后缀名为*.action,表示后缀
名为.action的url请求都会被核心类捕获给Struts---只选择Struts 2 Core Libraries核心库。
(2)、通过IDE工具查看工程,新增加一个库文件,新增加一个struts.xml文件,并且修改了web.xml文件的内
容。
<!-- 加入struts框架后新增加的转发器,凡是捕获到以.action为后缀的url路径都交给struts2的类StrutsPrepareAndExecuteFilter,然后在struts.xml文件中查找文件 -->
<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>*.action</url-pattern>
</filter-mapping>
注意:加入struts架包后,验证工程的有效性。
3、在工程中导入spring架包
注意:暂时不引入JDO、IBATIS、TOPLink Essentials 、OpenJPA Libraries这四个架包。
注意:applicationContext.xml中的架包的版本必须和引入的一致,不然会报错。
(1)、applicationContext.xml文件,是核心文件、核心容器,提供工厂模式的实现,可以根据情况单独引
入各自的xml文件,现在这个项目暂时只需要一个applicationContext.xml文件来控制和管理工厂。相当于一
个办公室,统一管理、统一运作的表现方式。
(2)、使spring框架能够正常的工作还需要在web.xml文件中进行如下的配置
<!-- 配置Spring支持文件,注入支持文件 -->
<!-- 告诉Spring的编码格式,UTF-8可以正确解析中文。告诉spring这个黄牛党我要去的正确位置 -->
<filter>
<filter-name>Spring character encoding filter</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>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 核心容器的入口。告诉工人应该进入哪一个门。页面进入哪一个配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/app*.xml</param-value>
</context-param>
<!-- 添加监听器。让工厂监听工人 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
当配置好后,重启服务,当出现 "信息: Initializing Spring root WebApplicationContext"时代表注
入文件成功。
4、创建数据源
在MyEclipse Database Exporer试图中,右键,new Database Connection Driver
(1)、Driver templae : 源类型,驱动连接的模版,选择MySQL Connector/J
(2)、Driver name :mysql 数据源的名称,连接的名称
(3)、Connection URL : jdbc:mysql://192.168.1.111:3306/sshdb 数据库的路径
注意:主机路径:192.168.1.111:3306 数据库的名称:sshdb
(4)、User name : 用户名
(5)、Password :密码
(6)、Add JARs 添加Mysql支持架包 mysql-connector-java-5.1.7-bin.jar
(7)、Driver classname : com.mysql.jdbc.Driver
注意:com.mysql.jdbc.Driver的前身是org.gjt.mm.mysql.Driver,现在一般使用前者,不过后者具有更好的兼容性。
点击下一步:next
(8)、Schema Details (选择连接的数据库) 选择Display all schemas
5、在工程中导入Hibernate架包
(1)、选择Hibernate3.3版本
(2)、选择全部架包,将架包复制到工程目录下面
点击下一步:next
(3)、选择Spring configuration file(applicationContext.xml)
点击下一步:next
(4)、选择:修改已经存在的配置文件 Existing Spring configuration file
点击下一步:next
(5)、选择上面新建的数据源:mysql
点击下一步:next
(6)、不创建会话工厂
下面是加入Hibernate后,applicationContext.xml文件中新增加的内容
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://192.168.1.111:3306/sshdb">
</property>
<property name="username" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
6、创建实体关系映射
在MyEclipse Database Exporer试图中,右键表的名称,选择Hibernate Reverse Engineering
(1)、Java package 选择在model层创建
(2)、Create POJO<>DB Table mapping information 项中选择 Create a Hibernate mapping file for each database table 选择 Update Hibernate configuration with mapping
resource location
(3)、Java Data Object (POJO <> DB Table) 不选择Create abstract class
点击下一步:next
(4)、只改变Id Generator 为 native
点击下一步:next
(5)、选中表,改变Id Generator 为 native
完成
完成后,applicationContext.xml文件中新增加的内容
<!-- 加入了映射文件 -->
<property name="mappingResources">
<list>
<value>com/ssh/userinfo/model/Userinfo.hbm.xml</value>
</list>
</property>
7、在applicationContext.xml中增加事务的功能。
<!-- 事务定义 -->
<!--
定义仓库的管理者为sessionFactroy,别名为
transactionManager,它是spring委派到Hibernate中去工作的,要遵循Hibernate中的规则
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" /> <!-- local是加入的本地bean文件,在此处引入的是上面定义的spring中的sessionFactory -->
</property>
</bean>
<!-- 创建事务代理对象 -->
<!--
通过Spring为我们在Hibernate工作的管理员和与管理员打交道的客户办理会员卡,确定规则限制。同时告知会员违反和超出服务范围会发生的情况
-->
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop> <!-- 查一下事务传播行为类型:除了PROPAGATTON_REQUIRED,还有哪些 -->
</props>
</property>
</bean>
<!-- 自动事务代理,所有需要事务的bean的名称在这里定义 -->
<!--
发放或 向目标用户宣传会员机制,邀请用户(*Dao)加入到会员机制当中来,
用户通过interceptorNames来创建,自愿=自动事务代理加入
-->
<bean id="autocreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Dao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor</value>
</list>
</property>
</bean>
在src下面创建:
com.ssh.util--存放公共的工具类,即公用型的工具方法
com.ssh.userinfo.dao--存放数据访问的接口
com.ssh.userinfo.daoimp--存放数据访问接口的实现方法
com.ssh.userinfo.web--存放struts类,转发器
com.ssh.userinfo.model--存放持久化实体对象,实体关系映射
WebRoot下面创建:
page--jsp页面
script--JS代码,JS集合类
images--图片,多媒体文件
css--样式表
注意:创建好上面的目录结构后,在Debug模式下面验证工程的有效性
2、确认目录结构没有问题
(1)、在工程中通过IDE工具添加Struts的框架支持。
右键项目名称---Myeclipse---Add Struts Capabilities---2.1版本,选择后缀名为*.action,表示后缀
名为.action的url请求都会被核心类捕获给Struts---只选择Struts 2 Core Libraries核心库。
(2)、通过IDE工具查看工程,新增加一个库文件,新增加一个struts.xml文件,并且修改了web.xml文件的内
容。
<!-- 加入struts框架后新增加的转发器,凡是捕获到以.action为后缀的url路径都交给struts2的类StrutsPrepareAndExecuteFilter,然后在struts.xml文件中查找文件 -->
<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>*.action</url-pattern>
</filter-mapping>
注意:加入struts架包后,验证工程的有效性。
3、在工程中导入spring架包
注意:暂时不引入JDO、IBATIS、TOPLink Essentials 、OpenJPA Libraries这四个架包。
注意:applicationContext.xml中的架包的版本必须和引入的一致,不然会报错。
(1)、applicationContext.xml文件,是核心文件、核心容器,提供工厂模式的实现,可以根据情况单独引
入各自的xml文件,现在这个项目暂时只需要一个applicationContext.xml文件来控制和管理工厂。相当于一
个办公室,统一管理、统一运作的表现方式。
(2)、使spring框架能够正常的工作还需要在web.xml文件中进行如下的配置
<!-- 配置Spring支持文件,注入支持文件 -->
<!-- 告诉Spring的编码格式,UTF-8可以正确解析中文。告诉spring这个黄牛党我要去的正确位置 -->
<filter>
<filter-name>Spring character encoding filter</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>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 核心容器的入口。告诉工人应该进入哪一个门。页面进入哪一个配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/app*.xml</param-value>
</context-param>
<!-- 添加监听器。让工厂监听工人 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
当配置好后,重启服务,当出现 "信息: Initializing Spring root WebApplicationContext"时代表注
入文件成功。
4、创建数据源
在MyEclipse Database Exporer试图中,右键,new Database Connection Driver
(1)、Driver templae : 源类型,驱动连接的模版,选择MySQL Connector/J
(2)、Driver name :mysql 数据源的名称,连接的名称
(3)、Connection URL : jdbc:mysql://192.168.1.111:3306/sshdb 数据库的路径
注意:主机路径:192.168.1.111:3306 数据库的名称:sshdb
(4)、User name : 用户名
(5)、Password :密码
(6)、Add JARs 添加Mysql支持架包 mysql-connector-java-5.1.7-bin.jar
(7)、Driver classname : com.mysql.jdbc.Driver
注意:com.mysql.jdbc.Driver的前身是org.gjt.mm.mysql.Driver,现在一般使用前者,不过后者具有更好的兼容性。
点击下一步:next
(8)、Schema Details (选择连接的数据库) 选择Display all schemas
5、在工程中导入Hibernate架包
(1)、选择Hibernate3.3版本
(2)、选择全部架包,将架包复制到工程目录下面
点击下一步:next
(3)、选择Spring configuration file(applicationContext.xml)
点击下一步:next
(4)、选择:修改已经存在的配置文件 Existing Spring configuration file
点击下一步:next
(5)、选择上面新建的数据源:mysql
点击下一步:next
(6)、不创建会话工厂
下面是加入Hibernate后,applicationContext.xml文件中新增加的内容
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://192.168.1.111:3306/sshdb">
</property>
<property name="username" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
6、创建实体关系映射
在MyEclipse Database Exporer试图中,右键表的名称,选择Hibernate Reverse Engineering
(1)、Java package 选择在model层创建
(2)、Create POJO<>DB Table mapping information 项中选择 Create a Hibernate mapping file for each database table 选择 Update Hibernate configuration with mapping
resource location
(3)、Java Data Object (POJO <> DB Table) 不选择Create abstract class
点击下一步:next
(4)、只改变Id Generator 为 native
点击下一步:next
(5)、选中表,改变Id Generator 为 native
完成
完成后,applicationContext.xml文件中新增加的内容
<!-- 加入了映射文件 -->
<property name="mappingResources">
<list>
<value>com/ssh/userinfo/model/Userinfo.hbm.xml</value>
</list>
</property>
7、在applicationContext.xml中增加事务的功能。
<!-- 事务定义 -->
<!--
定义仓库的管理者为sessionFactroy,别名为
transactionManager,它是spring委派到Hibernate中去工作的,要遵循Hibernate中的规则
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" /> <!-- local是加入的本地bean文件,在此处引入的是上面定义的spring中的sessionFactory -->
</property>
</bean>
<!-- 创建事务代理对象 -->
<!--
通过Spring为我们在Hibernate工作的管理员和与管理员打交道的客户办理会员卡,确定规则限制。同时告知会员违反和超出服务范围会发生的情况
-->
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop> <!-- 查一下事务传播行为类型:除了PROPAGATTON_REQUIRED,还有哪些 -->
</props>
</property>
</bean>
<!-- 自动事务代理,所有需要事务的bean的名称在这里定义 -->
<!--
发放或 向目标用户宣传会员机制,邀请用户(*Dao)加入到会员机制当中来,
用户通过interceptorNames来创建,自愿=自动事务代理加入
-->
<bean id="autocreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Dao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor</value>
</list>
</property>
</bean>