Struts+Hibernate编程总结(初级篇)

Struts+Hibernate编程总结(初级篇)

一.配置文件

 Struts下有两个关键的配置文件:

1.       web.xml

该配置文件负责整个BS结构解决方案的基本配置参数。样例如下:

<web-app>

<!-- Action Servlet Configuration -->

  <servlet>

    <servlet-name>actionServlet</servlet-name>    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

  </servlet>

  <!-- Action Servlet Mapping -->

  <servlet-mapping>

    <servlet-name>actionServlet</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

  <!-- The Welcome File List    -->

  <welcome-file-list>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <!-- Struts Tag Library Descriptors -->

  <taglib>

    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>

    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>

  </taglib> 

  <taglib>

    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>

    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>

</taglib>

</web-app>

解释:a <servlet></servlet> 声明用到的Servlet类的别名以及其路径。

b)<servlet-mapping></servlet-mapping> 声明URL的文件后缀与1.中的别名之间的映射关系。

c)<welcome-file-list></welcome-file-list> 声明解决方案的默认起始页。

d)<taglib></taglib> 声明本解决方案用到的标签库(包括自定义标签和第三方标签库)

 

2.       struts-config.xml

该文件配置Struts应用的各项配置参数,样例如下:

<struts-config

    <form-beans>

       <form-bean name="SearchForm"

           type="org.apache.struts.action.DynaActionForm">

           <form-property name="sortId" type ="java.lang.Integer"/>

           <form-property name="keyword" type ="java.lang.String"/>

           <form-property name="pageId" type ="java.lang.Integer"/>

       </form-bean>

       <form-bean  name="LoginForm"

           type="org.apache.struts.validator.DynaValidatorForm">

           <form-property name="user_name" type="java.lang.String"/>

           <form-property name="user_pass" type="java.lang.String"/>

       </form-bean>

       <form-bean name="RegistForm"

           type="org.apache.struts.validator.DynaValidatorForm">

           <form-property name="username" type ="java.lang.String"/>

           <form-property name="password" type ="java.lang.String"/>

           <form-property name="password2" type ="java.lang.String"/>

           <form-property name="name" type ="java.lang.String"/>

           <form-property name="tel" type ="java.lang.String"/>

           <form-property name="address" type ="java.lang.String"/>

           <form-property name="zip" type ="java.lang.String"/>

           <form-property name="email" type ="java.lang.String"/>

       </form-bean>

       <form-bean name="ProductIdForm"

           type="org.apache.struts.action.DynaActionForm">

           <form-property name="productId" type ="java.lang.Integer"/>

       </form-bean>

       <form-bean name="ShopCartForm"

           type="org.apache.struts.action.DynaActionForm">

           <form-property name="count" type ="java.lang.Integer[]"/>

           <form-property name=" del " type ="java.lang.Integer[]"/>

       </form-bean>

       <form-bean name="OrderForm"

           type="org.apache.struts.validator.DynaValidatorForm">

           <form-property name="realname" type ="java.lang.String"/>

           <form-property name="address" type ="java.lang.String"/>

           <form-property name="zip" type ="java.lang.String"/>

           <form-property name="tel" type ="java.lang.String"/>

           <form-property name="email" type ="java.lang.String"/>

           <form-property name="payment" type ="java.lang.String"/>

           <form-property name="memo" type ="java.lang.String"/>

       </form-bean>

       <form-bean name="OrderNoForm"

           type="org.apache.struts.action.DynaActionForm">

           <form-property name="orderNo" type ="java.lang.String"/>

       </form-bean>

</form-beans>

<global-forwards>

       <forward name="toIndex" path="/index.jsp"/>

       <forward name="toListMain" path="/listMain.jsp"/>

       <forward name="toWrong" path="/wrong.jsp"/>

       <forward name="toSuccess" path="/loginOkLeft.jsp"/>

       <forward name="toRegistRight" path="/right.jsp"/>

       <forward name="toDetail" path="/detail.jsp"/>

       <forward name="toShopCart" path="/basket.jsp"/>

       <forward name="toShopCartOk" path="/basketOk.jsp"/>

       <forward name="toOrderOk" path="/orderOk.jsp"/>

       <forward name="toOrderList" path="/orderDisplay.jsp"/>

</global-forwards>

<action-mappings>

       <action path="/index" type="cn.com.shoppingonline.FirstAction"  input="/wrong.jsp" />

       <action path="/search" type="cn.com.shoppingonline.SearchAction" name="SearchForm" scope="request"  input="/wrong.jsp" />

       <action path="/regist" type="cn.com.shoppingonline.RegistAction" name="RegistForm" scope="request"  input="/wrong.jsp" />

       <action path="/login" type="cn.com.shoppingonline.LoginAction" name="LoginForm" scope="request"  input="/wrong.jsp" />

       <action path="/detail" type="cn.com.shoppingonline.DetailAction" name="ProductIdForm" scope="request"  input="/wrong.jsp" />

       <action path="/buy" type="cn.com.shoppingonline.BuyAction" name="ProductIdForm" scope="request"  input="/wrong.jsp" />

       <action path="/updateShopCart" type="cn.com.shoppingonline.UpdateShopCartAction" name="ShopCartForm" scope="request" input="/wrong.jsp" />

       <action path="/createOrder" type="cn.com.shoppingonline.CreateOrderAction" name="OrderForm" scope="request" input="/wrong.jsp" />

       <action path="/orderList" type="cn.com.shoppingonline.OrderListAction"  input="/wrong.jsp" />

       <action path="/delOrder" type="cn.com.shoppingonline.DelOrderAction" name="OrderNoForm" scope="request" input="/wrong.jsp" />

       <action path="/modifyUserInfo" type="cn.com.shoppingonline.ModifyUserInfoAction" name="RegistForm" scope="request" input="/wrong.jsp" />

       <action path="/clearShopCart" type="cn.com.shoppingonline.ClearShopCartAction"  input="/wrong.jsp" />

       <action path="/exit" type="cn.com.shoppingonline.ExitAction"  input="/wrong.jsp" />

</action-mappings>

    <controller processorClass="cn.com.shoppingonline.MyRequestProcessor" />

    <message-resources parameter="cn.com.shoppingonline.MyResource"/>      <plug-in  className="org.apache.struts.validator.ValidatorPlugIn">

       <set-property

        property="pathnames"

        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>

        <set-property property="stopOnFirstError" value="false"/>

   </plug-in>

   </struts-config>

解释:a) <form-beans></form-bean>  声明struts内用到的ActionForm,内嵌多个<form-bean></form-bean>,每个formbean内又定义了form中的若干属性

      b) <global-forwards></global-forwards> 声明转向标识,主要用于程序中根据需要触发相应的事件(在name中定义),做出相关的转向(在path中定义)。内嵌多个forward标签。

     C<action-mappings></action-mappings>下面有多个action标签,声明action类与actionform类的对应关系,每个action标签主要用到三个属性:path属性供页面form标签的action属性调用触发,在form内部的table内需要与actionform建立映射关系的属性必须要添加name属性;type属性定义所用到的action所在的包位置;name属性定义与action对应的actionform,这要与<form-beans>标签内的<form-bean>定义的名称对应。Input属性定义了如果执行失败所跳转的页面。Scope属性给出了业务的处理范围(requestsession?)

    d) <plug-in></plug-in>声明struts所用到的各种组件,例如实例中的认证组件。其下用<set-property/> 标签设置组件的属性。

   

 

Hibernate下有两个关键的配置文件:

1.    hibernate.cfg.xml

该文件配置数据库各种连接配置参数。

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

<!DOCTYPE hibernate-configuration

    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>

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

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

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

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

         <property name="show_sql">false</property>

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

        <!-- Mapping files -->

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

    </session-factory>

</hibernate-configuration>

<session-factory>标签下主要用<property>标签和<mapping>来设置解决方案中数据库连接参数和映射文件model.hbm.xml

2.       model.hbm.xml

该文件主要配置Hibernate中的pojo类与数据库表中的映射关系(包括数据库中的主键、属性与pojo类中的属性之间的对映关系)

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

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

         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.com.shoppingonline">

    <class name="cn.com.shoppingonline.Member"

            table="member"

            discriminator-value="C">

         <id name="id">

             <generator class="increment"/>

        </id>

        <property name="username"/>

        <property name="password"/>

        <property name="realname"/>

        <property name="tel"/>

        <property name="address"/>

        <property name="zip"/>

        <property name="email"/>

    </class>

     <class name="cn.com.shoppingonline.Sort"

            table="sort"

            discriminator-value="C">

         <id name="id">

                 <generator class="increment"/>

         </id>

        <property name="name"/>

    </class>

    <class name="cn.com.shoppingonline.Product"

            table="product"

            discriminator-value="C">

               <id name="id">

               <generator class="increment"/>

        </id>

       <property name="sortid"/>

        <property name="name"/>

        <property name="price"/>

        <property name="saleprice"/>

        <property name="descript"/>

        <property name="contents"/>

        <property name="saledate"/>

        <property name="salecount"/>

        <property name="image"/>

    </class>

     <class name="cn.com.shoppingonline.Order"

            table="orders"

            discriminator-value="C">

        <id name="id">

               <generator class="increment"/>

        </id>

    <property name="orderno"/>

    <property name="userid"/>

        <property name="realname"/>

        <property name="address"/>

        <property name="zip"/>

        <property name="tel"/>

        <property name="payment"/>

        <property name="email"/>

        <property name="memo"/>

        <property name="price"/>

        <property name="time"/>

        <property name="tag"/>

    </class>

       <class name="cn.com.shoppingonline.ShopCart"

            table="shopcart"

            discriminator-value="C">

        <id name="id">

               <generator class="increment"/>

        </id>

    <property name="orderid"/>

        <many-to-one name="product" class="Product" column="productid"/>

        <property name="count"/>

        <property name="price"/>

    </class>

</hibernate-mapping>

<hibernate-mapping>标签用<class>子标签来简历pojo类与数据库表之间的一一映射关系<id>指示主键,<generator>指示主键的递增方式,<property>指示数据库中属性名与pojo类中的属性名的对映关系。

 

二.关键类

HibernateUtil类,用来建立一次数据库连接操作的session对象(通过sessionFactory来获取)。

各个pojo类,由私有属性,以及对映属性的getXXX(),setXXX()方法构成。

三.流程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值