ssh搭建项目步骤

1,运用的工具:Myeclipse8.5, tomcat 6.0, struts2,

2,在myeclipse的工作环境中,新建一个web progect,把spring,struts,hibernate的jar包给导入进来,导入步骤不再是通过myeclipse导入,而是把自己下载好的jar包复制到webroot目录下的lib目录下。

3,通过web.xml来加载spring的环境。也就是说在web.xml的文件中加入如下代码:

<!-- 以下是配置spring的参数,contextConfigLocation用于指定spring的配置文件的路径,  listener在框架启动的时候,自动会读取contextConfigLocation所指的配置文件 -->
  <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>

说明:listener优先启动;注意:一些配置文件必须放在src的目录下,否则会抛错误,说找不到文件

4,struts2按照以前的用法,配置好。struts2的配置文件包括两个:一个是struts.xml,一个是web.xml,其中web.xml中配置的是filter的代码,是struts的启动环境,如下:

   <!-- 以下是配置struts2的过滤器的代码 -->
  <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.xml的配置,先按照之前的配置,配置好,如下:

<package name="UserAction" extends="struts-default">
    <action name="UserLoginAction" class="com.insigma.sshtest.action.UserLoginAction" method="hello" >
       <result name="ok">/user_login.jsp</result>
    </action>
 </package>

此时可以先测试一下,看看struts配置是否有问题,通过在url中输入:localhost:8080/项目名称/UserLoginAction.action。

5,spring与struts2的整合。

  1)struts2.xml需要修改一下:

      <constant name="struts.objectFactory" value="spring" ></constant>
<package name="UserAction" extends="struts-default">
    <action name="UserLoginAction" class="userlogin" method="hello" >
       <result name="ok">/user_login.jsp</result>
    </action>
 </package>

增加了上面那句话,那句话表示:我的对象不是通过自己来new的,而是通过spring来创造的。添加了这句话之后,上面的那个类:class="com.insigma.sshtest.action.UserLoginAction"就可以配置到spring的bean里面了。

在spring的配置文件applicationContext.xml中写bean代码:

<bean id="userlogin" class="com.insigma.sshtest.action.UserLoginAction"scope="prototype"></bean>

说明:struts.xml中的class不再是action类的全路径地址,而是spring配置文件中的bean的id的名字,两者必须一致。而spring的配置文件中的class就是原先在struts.xml中配置的class的路径。

6,但是现在有个冲突struts中的一个类中可以有多个方法,也就是说有多个action,而spring中却只能是单个的,这时就有冲突,需要在spring的配置文件中加上scope="prototype"这句话,spring的bean默认是单例的,也就是说只能new一个实例,但是当用struts的时候,需要将scope配置成proprtype的,它表示每个访问就new一个实例。

7,spring与hibernate的整合:有两种方式整合,一种是不要hibernate.cfg.xml这个文件,一个是要这个文件,这里只讲解有原先的hibernate.cfg.xml文件情况下如何配置?

 1)先把配置好的hibernate.cfg.xml文件复制到src目录下面。

 2)在spring的配置文件中写如下代码:

  <!-- 关于hibernate的配置,这个是在保留原来的hibernate.cfg.xml文件情况下 -->
   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property>    
   </bean>

3)dao的改造:

      1),不再继承自BaseHibernateDAO,而是继承自HibernateDaoSupport。HibernateDaoSupport里面就有getsession这个方法,但是不推荐使用这个,而是通过spring的get bean来操作。所有的增删改查,通过gethibernatetemplate() 来操作。

     2)getsession与gethibernatetemplate()的区别是:getsession是直接获取原始的session来操作,需要自己加事务,而gethibernatetemplate()不用考虑事务,由spring来管理。

    3)配置到spring,在spring中加入下面代码:

        <bean id="userDao" class="com.insigma.sshtest.dao.TblRegisterUserDao">
       <property name="sessionFactory" ref="sessionFactory"></property>
       </bean>

 

 

  


你可能感兴趣的:(spring,Hibernate,bean,struts,MyEclipse,ssh)