kingpub

          海內(nèi)存知己,博客若比鄰

           

          關(guān)于使用Spring和hibernate開(kāi)發(fā)web程序的配置說(shuō)明和簡(jiǎn)單實(shí)例的詳細(xì)說(shuō)明

          關(guān)于使用Spring和hibernate開(kāi)發(fā)web程序的配置說(shuō)明和簡(jiǎn)單實(shí)例的詳細(xì)說(shuō)明


          作者:yanek
          email:yanek@126.com


          一、實(shí)現(xiàn)目標(biāo):


          通過(guò)使用spring和hibernate,實(shí)現(xiàn)用戶的添加功能。把用戶信息加入到數(shù)據(jù)庫(kù)中
          使用Spring 的hibernate模板實(shí)現(xiàn)DAO操作。


          最終效果: 瀏覽器中輸入 http://localhost:8083/hibernateTestWeb/user.do 數(shù)據(jù)庫(kù)就增加一條記錄。


          二、分層結(jié)構(gòu)

          系統(tǒng)采用如下分層結(jié)構(gòu)

          1.WEB層:用戶界面層? 采用spring WEB MVC框架實(shí)現(xiàn)

          2 SERVICE層:業(yè)務(wù)邏輯層 包括業(yè)務(wù)接口和實(shí)現(xiàn)類組成

          3.DAO層: 數(shù)據(jù)訪問(wèn)層??? 包括數(shù)據(jù)訪問(wèn)接口和實(shí)現(xiàn)類組成

          4.持久層:使用hibernate實(shí)現(xiàn) 使用hibernate實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn)。實(shí)現(xiàn)DAO接口。


          三、數(shù)據(jù)庫(kù)結(jié)構(gòu)


          數(shù)據(jù)庫(kù)結(jié)構(gòu):USER_TABLE 表

          建表sql語(yǔ)句

          create table USER_TABLE
          (
          ? ID?????? VARCHAR2(255) not null,
          ? USERNAME VARCHAR2(20),
          ? PASSWORD VARCHAR2(20)
          )

          假設(shè)使用的是數(shù)據(jù)庫(kù):oracle9i
          用戶名 密碼為test/1234


          四、系統(tǒng)設(shè)計(jì)的相關(guān)類及其層次結(jié)構(gòu)

          1. User.java? 表示用戶實(shí)體的值對(duì)象類,與數(shù)據(jù)庫(kù)用戶表結(jié)構(gòu)相對(duì)應(yīng),標(biāo)準(zhǔn)的javabean,提供setter和getter方法。
          2. UserDAO.java? DAO接口
          3. UserDAOImp.java? DAO接口的實(shí)現(xiàn)類
          4. UserService?? 業(yè)務(wù)邏輯層的接口
          5. UserServiceImp 業(yè)務(wù)邏輯層的接口的實(shí)現(xiàn)類,調(diào)用DAo接口實(shí)現(xiàn)業(yè)務(wù)邏輯。
          6. UserController web層客戶調(diào)用層,調(diào)用業(yè)務(wù)邏輯層,實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的處理。(前臺(tái))


          五、相關(guān)配置文件:(重點(diǎn),問(wèn)題出錯(cuò)的地方)

          包括Spring 的配置文件和hibernate配置文件,以及web.xml文件

          說(shuō)明:

          web.xml,applicationContext.xml,SpringhibernateStudy-servlet.xml都在WEB-INF根目錄下,映射文件在與實(shí)體類相同的目錄下

          ?


          1.Spring 的配置文件:

          這里配置文件包括兩個(gè):

          1.applicationContext.xml??? 對(duì)數(shù)據(jù)源,事務(wù),事務(wù)代理,DAO ,Service層類進(jìn)行定義和配置

          內(nèi)容如下:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "


          <beans>


          <!-- 下面定義數(shù)據(jù)庫(kù)的連接信息,使用類為org.apache.commons.dbcp.BasicDataSource-->

          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
          ??? <property name="driverClassName">
          ???????? <value>oracle.jdbc.driver.OracleDriver</value>
          ???? </property>
          ???
          ??? <property name="url">
          ??? ?<value>jdbc:oracle:thin:@192.168.1.191:1521:yanek</value>
          ??? </property>
          ??? <property name="username">
          ??? ?<value>test</value>
          ??? </property>
          ??? <property? name="password">
          ??? ?<value>1234</value>
          ??? </property>
          ???
          ? </bean>
          ?
          ?
          ?
          <!-- 下面定義sessionFactory來(lái)為創(chuàng)建session做準(zhǔn)備-->
          ?
          ? <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
          ? ??<property name="dataSource">
          ? ???<ref local="dataSource" />
          ? ??</property>
          ?
          ? ??<property name="mappingResources">
          ? ???<list>
          ? ????<value>apps/hibernatetest/ioc/User.hbm.xml</value>

          ? ???</list>
          ? ??</property>

          ? ??<property name="hibernateProperties">
          ? ???<props>
          ? ?????? <prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
          ? ?????? <prop key="hibernate.show_sql">true</prop>
          ? ?????? <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
          ? ???</props>
          ? ??</property>
          ? </bean>
          ?
          ?
          ?<!-- 下面定義hibernate模板 -->
          ?
          ? <bean id="hibernateTemplate" class="org.springframework.orm.hibernate.HibernateTemplate">
          ??? <property name="sessionFactory">
          ????? <ref local="sessionFactory" />
          ???? </property>
          ? </bean>
          ?
          ?
          ? <!-- 下面定義用戶定義的DAO,指定了DAO的實(shí)現(xiàn)類,dao實(shí)現(xiàn)引用到hibernate模板-->

          ? <bean id="UserDAO" class="apps.hibernatetest.ioc.UserDAOImp">
          ??? <property name="hibernateTemplate">
          ?????? <ref local="hibernateTemplate" />
          ???? </property>
          ? </bean>
          ?
          ??? <!-- 下面定義事務(wù)管理器類,引用到sessionFactory-->

          ? <bean id="mytransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
          ??? <property name="sessionFactory">
          ?????? <ref local="sessionFactory"/>
          ??? </property>
          ? </bean>
          ?
          ?
          ????? <!-- 下面定義事務(wù)代理工廠類類,引用到事務(wù)管理器,指定調(diào)用方法使用事務(wù)處理的匹配規(guī)則-->
          ?

          ? <bean id="MyTransactionProxyFactory" abstract="true" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          ??? <property name="transactionManager">
          ????? <ref local="mytransactionManager"/>
          ??? </property>
          ??? <property name="transactionAttributes">
          ????? <props>
          ???????? <prop key="user*">PROPAGATION_REQUIRED</prop>
          ???????? <prop key="insert*">PROPAGATION_REQUIRED</prop>
          ???????? <prop key="del*">PROPAGATION_REQUIRED</prop>
          ???????? <prop key="up*">PROPAGATION_REQUIRED</prop>
          ???????? <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
          ???????? <prop key="dis*">PROPAGATION_REQUIRED,readOnly</prop>
          ????? </props>
          ??? </property>
          ? </bean>
          ?
          ?
          ? <!-- 下面定義業(yè)務(wù)邏輯類,引用到事務(wù)管理器,通過(guò)已經(jīng)定義的DAO來(lái)自動(dòng)注入業(yè)務(wù)邏輯類引用的DAO類-->
          ?
          ?
          ?? <bean id="userService" parent="MyTransactionProxyFactory">
          ?? ??<property name="target">
          ?? ???<bean class="apps.hibernatetest.ioc.UserServiceImp">
          ?? ????<property name="userDAO"><ref local="UserDAO"/></property>
          ?? ???</bean>
          ?? ??</property>
          ?? </bean>

          </beans>


          2.SpringhibernateStudy-servlet.xml? 主要對(duì)mvc web層的javabean定義

          注意:這里名稱要與在web.xml中對(duì)org.springframework.web.servlet.DispatcherServlet的對(duì)應(yīng)servlet名稱對(duì)應(yīng)。

          這里web.xml文件里配置了名字為SpringhibernateStudy,所以文件名必須為:SpringhibernateStudy-servlet.xml

          格式:servlet名稱+-servlet.xml?

          如果配置名稱為SpringServlet則,配置文件應(yīng)該為:SpringServlet-servlet.xml

          內(nèi)容如下:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "
          <!--? - Application context definition for "springapp" DispatcherServlet.? -->
          <beans>?

          ? <!-- 下面定義web層控制器類,引用到業(yè)務(wù)處理類,通過(guò)已經(jīng)定義的service類來(lái)自動(dòng)注入web控制器引用的service類-->
          ?


          ?? <bean id="UserController" class="apps.hibernatetest.ioc.UserController">??
          ??? <property name="userService">
          ? <ref bean="userService" />
          ? </property>
          ? </bean>
          ?
          ?
          ??? <!-- 下面定義web層請(qǐng)求訪問(wèn)路徑和控制器類的影射關(guān)系以及對(duì)請(qǐng)求方式處理類的類配置的方法-->
          ?
          ?? <bean id="UserurlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          ?<property name="mappings">?????
          ??<props>
          ???<prop key="/user.do">UserController</prop>
          ???
          ??? <!-- 這里表示 //user.do會(huì)由 名稱為UserController的對(duì)應(yīng)的控制器來(lái)apps.hibernatetest.ioc.UserController處理-->
          ??</props>
          ?</property>
          ?? </bean>
          ?
          </beans>??

          ?

          ?

          2.hibernate配置文件:

          這里主要是映射文件 :User.hbm.xml 與表USER_TABLE 對(duì)應(yīng)

          名稱為:User.hbm.xml?

          詳細(xì)配置代碼如下:

          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping
          ??? PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
          ??? "
          <hibernate-mapping>

          ??? <class name="apps.hibernatetest.ioc.User" table="USER_TABLE">
          ?????? <id name="id" type="string" unsaved-value="null">
          ?????????? <column name="ID" sql-type="varchar2(255)" not-null="true" />
          ?????????? <generator class="uuid.hex"/>
          ?????? </id>

          ?????? <property name="username" type="string">
          ?????????? <column name="USERNAME" sql-type="varchar2(20)"/>
          ?????? </property>

          ????? <property name="password" type="string">
          ?????????? <column name="PASSWORD" sql-type="varchar2(20)"/>
          ?????? </property>

          ??? </class>

          </hibernate-mapping>


          注意:

          1.類名一定要寫完整路徑帶包名
          2.對(duì)應(yīng)的數(shù)據(jù)庫(kù)表明一定要與數(shù)據(jù)庫(kù)一致
          ?? 如: <class name="apps.hibernatetest.ioc.User" table="USER_TABLE">
          ???
          ??? name屬性為:實(shí)體類名
          ??? table屬性為:數(shù)據(jù)庫(kù)表的名稱
          ???
          3.其字段信息要與數(shù)據(jù)庫(kù)表結(jié)構(gòu)一致
          4.該配置文件放在與實(shí)體類相同的目錄中,并在spring文件中給與說(shuō)明

          ?????????? 如:User.java的完整路徑為apps.hibernatetest.ioc.User,對(duì)應(yīng)配置如下

          ? ??<property name="mappingResources">
          ? ???<list>
          ? ????<value>apps/hibernatetest/ioc/User.hbm.xml</value>

          ? ???</list>
          ? ??</property>

          ?

          用hibernate往數(shù)據(jù)庫(kù)里插入數(shù)據(jù)時(shí),出現(xiàn)net.sf.hibernate.MappingException: No persister for的解決辦法
          根據(jù)我的出錯(cuò)處理經(jīng)驗(yàn),出現(xiàn)No persister for錯(cuò)誤后有如下三種解決辦法:
          1》檢查hbm.xml文件。
          2》檢查cfg.xml文件,看看類的hbm.xml文件名是不是已經(jīng)寫上了。
          3》對(duì)于one-to-many(Parent-to-Child)的關(guān)系,應(yīng)該是
          child.setParent(parent),而不是child.setParent(parent.id)


          ???
          ???


          3. web.xml文件:

          這里對(duì)servlet等信息配置:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "
          <web-app>

          ?

          ? <listener>
          ??? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
          ? </listener>
          ? <servlet>
          ?
          ??? <servlet-name>ContextLoaderServlet</servlet-name>
          ??? <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
          ??? <load-on-startup>1</load-on-startup>
          ? </servlet>
          ?
          ?
          ???? <!-- 上面定義監(jiān)聽(tīng)器和上下文裝載的servelet,來(lái)裝載applicatincontext.xml文件 -->
          ?
          ?
          ?
          ???? <!-- 下面定義配置Spring的請(qǐng)求分發(fā)器類-->
          ? <servlet>
          ??? <servlet-name>SpringhibernateStudy</servlet-name>
          ??? <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          ??? <load-on-startup>2</load-on-startup>
          ? </servlet>

          ? <servlet>
          ??? <servlet-name>debugjsp</servlet-name>
          ??? <description>Added to compile JSPs with debug info</description>
          ??? <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
          ??? <init-param>
          ????? <param-name>classdebuginfo</param-name>
          ????? <param-value>true</param-value>
          ??? </init-param>
          ??? <load-on-startup>3</load-on-startup>
          ? </servlet>
          ?


          ???? <!-- 下面定義配置Spring的請(qǐng)求分發(fā)器將處理所有*.do的請(qǐng)求-->
          ? <servlet-mapping>
          ??? <servlet-name>SpringhibernateStudy</servlet-name>
          ??? <url-pattern>*.do</url-pattern>
          ? </servlet-mapping>
          ?
          ? <servlet-mapping>
          ??? <servlet-name>debugjsp</servlet-name>
          ??? <url-pattern>*.jsp</url-pattern>
          ? </servlet-mapping>

          </web-app>


          六、相關(guān)各個(gè)類的詳細(xì)代碼極其說(shuō)明

          1. User.java? 表示用戶實(shí)體的值對(duì)象類,與數(shù)據(jù)庫(kù)用戶表結(jié)構(gòu)相對(duì)應(yīng),標(biāo)準(zhǔn)的javabean,提供setter和getter方法。

          注意:

          1.提供setter和getter方法,符合javabean規(guī)范
          2.實(shí)現(xiàn)java.io.Serializable可序列化接口。
          3.與數(shù)據(jù)庫(kù)表結(jié)構(gòu)一一對(duì)應(yīng)


          User.java

          package apps.hibernatetest.ioc;

          public class User implements java.io.Serializable
          {
          ??????????? private String id;
          ??????????? private String username;
          ??????????? private String password;

          ??????????? public User(){}

          ??????????? public String getId()
          ??????????? {
          ????????????????????? return id;
          ??????????? }

          ??????????? public void setId(String id)
          ??????????? {
          ????????????????????? this.id = id;
          ??????????? }

          ??????????? public String getUsername()
          ??????????? {
          ????????????????????? return username;
          ??????????? }

          ??????????? public void setUsername(String username)
          ??????????? {
          ???????????????????? this.username = username;
          ??????????? }

          ??????????? public String getPassword()
          ??????????? {
          ????????????????????? return password;
          ??????????? }

          ??????????? public void setPassword(String password)
          ??????????? {
          ????????????????????? this.password = password;
          ??????????? }


          }

          ?

          2. UserDAO.java? DAO接口


          UserDAO.java


          package apps.hibernatetest.ioc;

          public interface UserDAO
          {
          ??? public void userAdd(User user);
          }

          ?

          ?

          3. UserDAOImp.java? DAO接口的實(shí)現(xiàn)類


          注意:

          1. 繼承HibernateDaoSupport
          2. 實(shí)現(xiàn)dao接口
          3.使用模板類處理數(shù)據(jù)

          UserDAOImp.java

          package apps.hibernatetest.ioc;
          import net.sf.hibernate.HibernateException;
          import net.sf.hibernate.Query;
          import net.sf.hibernate.Session;

          import org.springframework.orm.hibernate.HibernateCallback;
          import org.springframework.orm.hibernate.support.HibernateDaoSupport;

          public class UserDAOImp extends HibernateDaoSupport? implements UserDAO
          {
          ? public void userAdd(User user)
          ? {
          ??????? //try
          ?????? // {
          ??????????? //System.out.println("save="+getHibernateTemplate().save(user));
          ??????????? System.out.println("aaa====>"+user.getUsername());
          ??????????? System.out.println("bbb====>"+user.getPassword());
          ??????????? getHibernateTemplate().save(user);
          ??????????? System.out.println("bbb");
          ?????? /* }
          ??????? catch(Exception? e)
          ??????? {
          ???????????? System.out.println("執(zhí)行插入用戶錯(cuò)誤!");
          ??????? }*/
          ? }

          ?

          }

          ?


          4. UserService?? 業(yè)務(wù)邏輯層的接口

          UserService.java

          package apps.hibernatetest.ioc;

          public interface UserService
          {

          ? public void userAdd(User user);
          }


          5. UserServiceImp 業(yè)務(wù)邏輯層的接口的實(shí)現(xiàn)類,調(diào)用DAO接口實(shí)現(xiàn)業(yè)務(wù)邏輯。

          注意:

          1.實(shí)現(xiàn)指定的service接口
          2.接口實(shí)現(xiàn)調(diào)用DAO接口
          3.必須有userDAO屬性,并提供setter方法,如下

          ? private UserDAO userDAO;
          ? public UserDAO getUserDAO()
          ? {
          ??????? return userDAO;
          ? }
          ? public void setUserDAO(UserDAO userDAO)
          ? {
          ??????? this.userDAO = userDAO;
          ? }
          ?
          ? 在配置文件中,通過(guò)配置自動(dòng)實(shí)現(xiàn)DAO屬性的自動(dòng)注入。
          ?
          ? 通過(guò)這樣來(lái)定義service業(yè)務(wù)類和DAO的依賴關(guān)系
          ?
          ?

          UserServiceImp.java


          package apps.hibernatetest.ioc;

          public class UserServiceImp implements UserService
          {
          ? private UserDAO userDAO;
          ? private User user = new User();
          ? public UserDAO getUserDAO()
          ? {
          ??????? return userDAO;
          ? }
          ? public void setUserDAO(UserDAO userDAO)
          ? {
          ??????? this.userDAO = userDAO;
          ? }
          ? public void userAdd(User user)
          ? {
          ????? userDAO.userAdd(user);
          ? }
          }

          ?


          6. UserController web層客戶調(diào)用層,調(diào)用業(yè)務(wù)邏輯層,實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的處理。(前臺(tái))

          UserController.java

          package apps.hibernatetest.ioc;
          import org.springframework.web.servlet.mvc.Controller;
          import org.springframework.web.servlet.ModelAndView;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.*;
          import javax.servlet.http.*;
          import org.springframework.web.bind.RequestUtils;
          import java.io.IOException;
          import java.util.Map;
          import java.util.*;
          import java.util.HashMap;
          import org.apache.commons.beanutils.BeanUtils;

          import org.springframework.context.ApplicationContext;
          import org.springframework.web.context.support.WebApplicationContextUtils;

          public class UserController implements Controller
          {
          ? private UserService userService;
          ? public void setUserService(UserService userService)
          ? {
          ??????? this.userService = userService;
          ? }

          ? public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
          ?{
          ??????????? String url="";
          ??????????? url="addok.jsp";

          ??????????? User u=new User();
          ??????????? u.setUsername("aaa");
          ??????????? u.setPassword("bbbb");
          ??????????? userService.userAdd(u);
          ??????????? return new ModelAndView(url);
          ?}

          }


          注意:

          1.實(shí)現(xiàn)Controller接口
          2.提供私有屬性,并提供setter方法


          如下代碼


          ? private UserService userService;
          ? public void setUserService(UserService userService)
          ? {
          ??????? this.userService = userService;
          ? }
          ?
          ?3.在控制器在handleRequest中調(diào)用屬性u(píng)serService調(diào)用業(yè)務(wù)邏輯。
          ?
          ?
          ??????????? User u=new User();
          ??????????? u.setUsername("aaa");
          ??????????? u.setPassword("bbbb");
          ??????????? userService.userAdd(u);
          ???????????
          4. 定義url變量,設(shè)置其值,作為ModelAndView類的構(gòu)造函數(shù)的參數(shù),作為業(yè)務(wù)邏輯處理完后的跳轉(zhuǎn)地址

          ??????????? String url="";
          ??????????? url="addok.jsp";
          ??????????? return new ModelAndView(url);
          ???????????
          ???????????
          ?
          ???????????
          ???????????
          七,相關(guān)項(xiàng)目說(shuō)明:


          調(diào)試環(huán)境:jbulder9.0

          需要導(dǎo)入如下主要的jar包:
          spring.jar
          hibernate.java
          dhcp.java
          classes12
          等等


          八、代碼下載:

          http://www.e-jrsj.com/hibernatetest.rar

          ?

          九、在main方法中對(duì)在配置文件中的javabean類方法測(cè)試的代碼:


          注意:applicationContext.xml文件放在classes根目錄下

          package apps.hibernatetest.ioc;

          import org.springframework.beans.factory.BeanFactory;
          import org.springframework.beans.factory.xml.XmlBeanFactory;
          import org.springframework.core.io.ClassPathResource;
          import org.springframework.core.io.Resource;
          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;

          public class Test
          {

          ? public static void main(String[] args)
          ? {
          ?
          ?
          ?? //根據(jù)配置文件得到beanFactory(bean工廠)

          ??? Resource resource = new ClassPathResource("applicationContext.xml");
          ??? BeanFactory factory = new XmlBeanFactory(resource);
          ???
          ???
          ??? //下面通過(guò)bean工廠從配置文件中得到實(shí)例化的bean,并轉(zhuǎn)換為相應(yīng)的接口
          ???
          ??? UserDAO dao = (UserDAO) factory.getBean("UserDAO");??
          ???
          ??? /*
          ????? <bean id="UserDAO" class="apps.hibernatetest.ioc.UserDAOImp">
          ??? <property name="hibernateTemplate">
          ?????? <ref local="hibernateTemplate" />
          ???? </property>
          ??? </bean>
          ? */
          ???

          ??? UserService service = (UserService) factory.getBean("userService");
          ???
          ???
          ??? /*
          ????? 對(duì)應(yīng)配置文件
          ?????? <bean id="userService" parent="MyTransactionProxyFactory">
          ?? ??<property name="target">
          ?? ???<bean class="apps.hibernatetest.ioc.UserServiceImp">
          ?? ????<property name="userDAO"><ref local="UserDAO"/></property>
          ?? ???</bean>
          ?? ??</property>
          ????? </bean>
          ??? */
          ???
          ???
          ???
          ???

          ??? System.out.println("tettet");
          ??? User u=new User();
          ??? u.setUsername("aaa");
          ??? u.setPassword("bbbb");
          ??? dao.userAdd(u);

          ??? service.userAdd(u);

          ?


          ? }


          }


          posted on 2006-06-09 17:23 xiaofeng 閱讀(585) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 闽侯县| 铜山县| 郑州市| 定兴县| 泽州县| 丰顺县| 晋中市| 黄平县| 泾源县| 六盘水市| 布尔津县| 集安市| 四子王旗| 南乐县| 民权县| 上高县| 南陵县| 杨浦区| 峨山| 巴马| 邵阳县| 方城县| 垣曲县| 青铜峡市| 壤塘县| 岳西县| 东城区| 常宁市| 东乡| 增城市| 台南市| 台前县| 娱乐| 民县| 西吉县| 黔西| 孝义市| 扬州市| 儋州市| 英德市| 永川市|