SSH框架总结--供初级学习者分享

搭建一个供学习的SSH(Spring+Struts+Hibernate)框架。许久不练习,还是很快的搭建完成,现在分享一下搭建过程,可能会给初学者带来好的学习效果。
STEP 1:搭建java运行环境+tomcat+mysql(准备ide的时候需注意是否集成web项目开发,推荐eclipse neon.1)
STEP 2:准备ssh jar包。这里有一个现成打好包的链接,将其中所有的jar包copy到web-inf/lib下面即可
STEP 3:开始你的配置 这里的顺序是:spring->struts->hibernate
  3.1 集成spring:
       3.1.1,在web.xml中添加context-param来加载spring配置文件(classpath为项目的src目录,注意, 这里的application context.xml就是用了集成配置struts与hibernate要用到的bean.非常重要):
                  <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:com/hcz/mms/web/config/applicationContext*.xml </param-value></context-param>  
       3.1.2,在 web.xml 中添加一个用于监听spring的监听器:
                  <listener> <listener-class>  org.springframework.web.context.ContextLoaderListener </listener-class>  </listener> 

------------------------集成spring完成--------------------------------
 3.2 集成struts2:直接在web.xml中添加以下节点 
     < filter > < filter-name > struts2 </ filter-name >

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 

<init-param>  

        <param-name>filterConfig</param-name>  

        <param-value>classpath:struts.xml</param-value> </init-param> 

     </filter>

     <filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

      </filter-mapping>

------------------------集成struts2完成--------------------------------

 3.3 集成hibernate:

   3.3.1 在application context.xml中添加(同上,classpath是项目的src目录):

      <bean id=“sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

         <property name="configLocation">

         <value>classpath:/hibernate.cfg.xml</value>

           </property>

      </bean> 

3.3.2 在src目录下新建hibernate.cfg.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration SYSTEM 

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


<hibernate-configuration>

   <session-factory>

    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="hibernate.connection.pool_size">5</property>

        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mms</property>

        <property name="hibernate.connection.username">root</property>

        <property name="hibernate.connection.password">root</property>

        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

        <property name="hibernate.format_sql">true</property>

        <property name="hibernate.generate_statistics">true</property>

        <property name="hibernate.jdbc.batch_versioned_data">true</property>

        <property name="hibernate.max_fetch_depth">5</property>

        <property name="hibernate.search.autoregister_listeners">false</property>

        <property name="hibernate.service.allow_crawling">false</property>

        <property name="hibernate.show_sql">true</property>  

        <property name="connection.autocommit">true </property>

   <!-- List of XML mapping files -->

   <mapping resource="User.hbm.xml"/>


</session-factory>

</hibernate-configuration>

------------------------集成hibernate完成--------------------------------

step 4:开始你的第一个ssh例子。

第一需要准备 user表及其对应的user实体类;

第二需要准备dao及daoimpl,service及serviceimpl

第三需要准备action类。

以上准备好久可以开始配置了:

4.1 在User.hbm.xml中将user类对应到user表格中,代码如下:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

 "-//Hibernate/Hibernate Mapping DTD//EN"

 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 


<hibernate-mapping>

   <class name="com.hcz.mms.web.entity.User" table="USER">

      <meta attribute="class-description">

         This class contains the user detail. 

      </meta>

      <id name="id" type="int" column="id">

         <generator class="native"/>

      </id>

      <property name="firstName" column="first_name" type="string"/>

      <property name="lastName" column="last_name" type="string"/>

      <property name="email" column="email" type="string"/>

   </class>

</hibernate-mapping>

4.2 在applicationcontext.xml中将dao,service 以及action集成起来,代码如下:

        <!-- Dao & Service beans -->


<bean id="UserDAO" class="com.hcz.mms.web.dao.impl.UserDaoImpl"

scope="singleton">

<property name="sessionFactory">

<ref bean="sessionFactory" />

</property>

</bean>

<bean id="UserService" class="com.hcz.mms.web.service.impl.UserServiceImpl"

scope="singleton">

<property name="userDao">

<ref bean="UserDAO" />

</property>

</bean>


<!-- Action —> 

<bean id="addUserAction" scope=“prototype" class="com.hcz.mms.web.action.user.AddUserAction”>

          <property name="userService" ref="UserService"></property> </bean>

   这里关系说明:

   sessionFactory是dao层的属性值(daoimpl通过继承HibernateDaoSupport来实现)

   dao是service的属性值(public UserDAO userDao;需要set/get方法)

  service是action的属性值(public UserService userService;需要set/get方法)

通过这几个关系,这样action类就直接可以操作数据库了。

4.3 action与视图之间的映射:

在struts.xml 中添加一下代码:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"

    "http://struts.apache.org/dtds/struts-2.1.dtd">


<struts>

<!-- 常量配置,用到constant标签 -->

<constant name="struts.i18n.encoding" value="UTF-8" />


<!-- 包配置:一般都要继承struts-default,因为该包有默认的拦截器等东西 -->

<!--namespace:命名空间,考虑到可能出现相同的action,如果有命名空间就可以解决 -->

<package name="user" namespace="/user" extends="struts-default">

<!-- 定义一个action -->

<action name="test" class="testAction" method="execute">

<!-- 返回一个String常量,转发至对应的JSP页面 -->

<result name="success">test.jsp</result>

</action>

<action name="addUser" class="addUserAction" method="execute">

<result name="success">success.jsp</result> 

</action>

</package</struts>


这样,就把action与jsp视图对应起来。这就完成了整个项目配置。


------------------------集成spring,struts2,hibernate完成--------------------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值