出现HTTP Status 404是我们不一步一步创建工程创建步骤如下
在工程中应用Spring
一、创建一个项目 “ssh-1”项目
利用之前的工程“hibernate-Criteria-EHC ache”在其中添加Spring框架成为“ss h-1”工程。
首先创建工程“ssh_1”。
说明创建S S H项目时第一步就是编写web.xml文件除了添加S truts框架外还要添加监听器监听所有的动作。
二、编写we b.xml文件
除了添加Struts框架外还需要添加Spring的监听器监听所有动作。
添加<lis tener>标签
<li stener>
<li stener-class>org.springframework.web.context.ContextLoaderListener</l istener-class>
</listener>
再增加一个登录配置项标签<login-config>设置基本登录方式“BASIC”
<login-conf ig>
<auth-me thod>BASIC</auth-method>
</login-config>web.xml文件内容为
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"xmlns="h ttp://java.sun.com/xml/ns/j avaee"xml ns:xs i="ht tp://www.w3.org/2001/XMLSchema-i nstan ce"xsi:schemaLocati on="http://j ava.s un.com/xml/n s/j avaeeh t tp://j ava.s un.com/xml/n s/j avaee/web-app_2_5.xs d">
<fi lte r>
<fi lter-name>struts2</f il ter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<fi lter-name>struts2</f il ter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<li stener>
<li stener-class>org.springf ramework.web.context.ContextLoaderLis tener
</listener-class>
</listener>
<welcome-f ile-list>
<welcome-f ile>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-me thod>BASIC</auth-method>
</login-config>
</w eb-ap p>
三、拷入已有的包和文件
把“hib ernate-Criteria-EHC ac he”中的所有引用的j ar包拷入“ss h-1”工程中添加Struts支持Spring的插件 “struts2-spring-p lugin-2.0.14.jar” 在课件文件夹中有把“hib ernate-Criteria-EHC ac he”中src目录下的配置文件拷入“s s h-1”工程中把“hib ernate-Criteria-EHC ac he”中src目录下各个包和其中的类拷入“s s h-1”工程中。
四、用反向工程向项目中添加Spring2.0类库
右击工程名→“MyEc lip se”
选“Spring2.0”
选“Copy checked Library contents to project folder”并选模块第1、 2、 3、 4、 11项
Next
找到WebRoot\WEB-INFjwWmMm4
jwWmMm5
五、解决包冲突问题
点开项目的引用库文件夹看到有同名的包会有冲突在工作空间中项目的lib文件夹中需要手工进行删除asm-2.2.3.jar(Spring2.0的)与asm.jar(Hib ernate3.2的)冲突删除 asm-2.2.3.j ar。cglib-nodep-2.1.3.jar(Spring2.0的)与c glib-2.1.3.jar(Hibernate3.2的)冲突删除c glib-2.1.3.jar。然后刷新项目。jwWmMm6
六、改写WebRoot\WEB-INF\applic atio nC o ntext.xml文件
将Hibernate的数据源和Ses s ionFactory交给Spring管理根据“hibernate.c fg.xml”中的内容添加为“app lica tio nC o nte xt.xml”文件中的配置代码两者内容对比如下
1、原hibe rnate.cfg.x ml的代码为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourcef orge.ne t/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver
</proper ty>
<property name="connection.url">j db c:mys ql://127.0.0.1:3306/BOOKS
</proper ty>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">100</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect
</proper ty>
<property name="current_session_con text_class">thread</property><property name="transaction.fl ush_before_completion">true</property><property name="transaction.au to_close_session">true</property><property name="connection.release_mode">on_close</property>
<property name="hibernate.cache.use_second_level_cache">true</property><property name="hiberna te.cache.provider_class">org.hibe rna te.cache.EhCacheProvider</proper ty>
<mapping resource="com/po/BookPO.hbm.xml" />
</session-factory>
</hibernate-conf iguration>
2、把对应内容添加到applica tio n Co nte xt.x ml中代码为
<?xml version="1.0" encoding="UTF-8"?>
<be ansxml ns="h ttp://www.springframework.org/schema/beans"xml ns:xs i="ht tp://www.w3.org/2001/XMLSchema-i nstan ce"xsi:schemaLoc ati on="h t tp://www.spri ngframework.org/schema/bean sjwWmMm7
以下为添加的内容
<bean id="dataSource" class="org.apache.commons.dbcp.Basi cDa taSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://127.0.0.1:3306/BOOKS"></property><property name="username" value="root"></property>
<property name="password" value="root"></property>
<property name="maxActive"value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWai t" value="500"></property>
<property name="defaul tAu toCommi t" value="true"></property>
</b ean>
<bean id="sessi onfactory"class="org.springframework.orm.hiberna te3.LocalSessionFac toryBean">
<property name="da taSource" ref="da taSource"></property>
<property name="hiberna teProperties">
<pr op s>
<pr opkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.curren t_session_con text_cl ass t">thread</prop><prop key="hibernate.transaction.fl ush_before_comple tion">true</prop><prop key="hibernate.transacti on.au to_cl ose_session">true</prop><prop key="hibernate.connection.release_mode">on_close</prop><prop key="hibernate.cache.use_second_level_cache">true</prop><pr opkey="hibern a te.cache.provider_cla ss">o rg.hibe rna te.cache.EhCacheProvider</prop>
</props>
</proper ty>
<property name="mappingResources">
<list>
<va lue>com/po/BookPO.hbm.xml</va lue>
</list>
</property>
</b ean>
</bean s>
共有两段<be an>标签第一段为配置数据源第二段为配置Sess io nFactory。
3、清空hibe rnate.cfg.x ml文件中<session-fa cto ry>标签中的内容
因为今后Sessio nFactory 由 Spring接管 不再由 Hibernate直接管理清空后的hib ernate.c fg.xml文件内容为jwWmMm8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourcef orge.ne t/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory>
</session-factory>
</hibernate-conf iguration>
这个hib ernate.c fg.xml文件不能删除它的命名空间信息<!D OC TY PE>标签仍然有用。
七、改写dao类
1、改写dao类它要继承Spri ng框架的D AO模板类 “Hibe rnate D ao Suppo rt”public class BookDAOImpl extends HibernateDaoSupport implements BookDAOInt
导入支持它的包import org.springf ramework.orm.hibernate3.support.HibernateDaoSupport;
2、改变dao类中依赖的SessionFacto ryProvider类dao不再直接使用Hibernate的Se ss ionFactory而使用Spring框架的Sess ionFactoryprivate SessionFactory sessionFactory;
改变导入的包语句为import org.springf ramework.orm.toplink.SessionFactory;
3、写get()和set()方法
对于dao类中的私有属性对象必须写它的get()和set()方法 Spring框架就是调用get()和set()方法实现依赖注入的。今后凡是由Spring管理的类都要写出它的属性是另一个依赖的类的对象的get()和s et()方法。
4、改写da o类中的每个方法
它们不再直接依赖Hibernate的Sess ion中的CURD方法而是需要使用Spring提供的DAO模板对象调用其中的CURD方法。
通过调用this.getHibernateTemplate( )可以获得Spring的DAO模板对象。CURD方法中不再需要写有关事务方面的语句 Spring会统一管理事务。
修改后的CURD方法代码如下jwWmMm9
UCloud优刻得近日针对全球大促活动进行了一次改版,这次改版更加优惠了,要比之前的优惠价格还要低一些,并且新增了1核心1G内存的快杰云服务器,2元/首年,47元/年,这个价格应该是目前市面上最低最便宜的云服务器产品了,有需要国内外便宜VPS云服务器的朋友可以关注一下。UCloud好不好,UCloud服务器怎么样?UCloud服务器值不值得购买UCloud是优刻得科技股份有限公司旗下拥有的云计算服...
昨天有分享到"2021年Vultr新用户福利注册账户赠送50美元"文章,居然还有网友曾经没有注册过他家的账户,薅过他们家的羊毛。通过一阵折腾居然能注册到账户,但是对于如何开通云服务器稍微有点不对劲,对于新人来说确实有点疑惑。因为Vultr采用的是预付费充值方式,会在每月的一号扣费,当然我们账户需要存留余额或者我们采用自动扣费支付模式。把笔记中以前的文章推送给网友查看,他居然告诉我界面不同,看的不对...
酷锐云是一家2019年开业的国人主机商家,商家为企业运营,主要销售主VPS服务器,提供挂机宝和云服务器,机房有美国CERA、中国香港安畅和电信,CERA为CN2 GIA线路,提供单机10G+天机盾防御,提供美国原生IP,支持媒体流解锁,商家的套餐价格非常美丽,CERA机房月付20元起,香港安畅机房10M带宽月付25元,有需要的朋友可以入手试试。酷锐云自开业以来一直有着良好的产品稳定性及服务态度,支...