1. 程式人生 > >Java ee購物商城

Java ee購物商城

 

前臺頁面效果圖及程式碼

登入介面

登入校驗檔案:

系統一般都以登入作為訪問的入口,所以登入驗證就顯得尤為重要,一般的都會採用雙重驗證的包括客戶端js檔案驗證和伺服器端檔案驗證,提高了系統的安全效能,下面就是伺服器端基本校驗檔案

 

使用者註冊

使用者註冊:

   為了保證使用者輸入的資訊都是有效性,必須設計輸入驗證策略,同樣也有客戶端校驗檔案和服務端的校驗檔案,驗證資訊的正確格式就顯得尤為重要,在很多商務網站都沒有防護網路爬蟲,爬蟲技術不能忽視,為了限制網路爬蟲,該網站設計了驗證碼,可以提高安全效能,下面就是生成驗證碼的核心程式碼

同時註冊使用AJAX非同步校驗使用者名稱: 採用AJAX主要是提高使用者體驗和節省流量一個重要的操作

為了提高使用者的資訊真實度,很多網站都是採用手機號碼驗證手機號碼資訊,但是由於開通簡訊介面需要繳費,故該商城採用郵箱認證使用者的郵箱真實度,主要採用騰訊旗下的QQ郵箱為伺服器,採用本人的qq郵箱作為傳送方;下面是傳送郵箱核心程式碼。

 

商品頁面:

 

 

分類頁面:

服裝分類:

    對於一個服裝商城網站來說,各種各樣的服裝都需要一個合理的分類,可以方便管理員更加方便的管理各類的服裝,以及提高使用者的體驗,不用一個一個去瀏覽,節省了流量,所以分類是該商城的重要組成部分之一,下面是根據分類查詢商品的核心程式碼:

 

商品詳情頁面:

 

 

 

購物車頁面:

填寫地址頁面:

模擬付款操作:

   由於申請支付介面需要營業執照,故無法完成正真的支付操作,該網站採用虛擬的模擬操作付款操作:下面就是支付的操作核心程式碼

 

訂單頁面:

 

後臺頁面效果圖及程式碼

後臺登入頁面:

後臺的登入入口:

作為該商城最重要的入口,攔截器的作用就顯得尤為重要,比起客戶端和服務端校驗更加重要,也是防止非法人員對整體網站的一個防護入口,所以鎖好這個登入這個門,需要考慮到伺服器端的攔截器;下面是核心程式碼。

 

前臺首頁

使用者管理頁面:

一級分類管理頁面:

 

 

商品管理頁面:

 

新增商品管理頁面:

 

訂單管理頁面:

 

對於每個客戶的訂單詳情,該網站採用Ajax技術實現單擊顯示,提高了管理員體驗,不用通過跳轉頁面詳細訂單詳情,同時提高了資料庫的響應效能。

 

資料庫池的配置:

jdbc.properties檔案內容:

jdbc.driver = com.mysql.jdbc.Driver

jdbc.url = jdbc:mysql:///shop?characterEncoding=UTF-8

jdbc.user = root

jdbc.password =root

 

<!-- 配置連線池: -->

    <!-- 引入外部屬性檔案 -->

    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 配置C3P0連線池: -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

       <property name="driverClass" value="${jdbc.driver}"/>

       <property name="jdbcUrl" value="${jdbc.url}"/>

       <property name="user" value="${jdbc.user}"/>

       <property name="password" value="${jdbc.password}"/>

    </bean>

 

 

Hibernate的資訊配置:

<!-- Hibernate的相關資訊 -->

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

       <!-- 注入連線池 -->

       <property name="dataSource" ref="dataSource"/>

       <!-- 配置Hibernate的其他的屬性 -->

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.format_sql">true</prop>

              <prop key="hibernate.connection.autocommit">false</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

           </props>

       </property>

       <!-- 配置Hibernate的對映檔案 -->

       <property name="mappingResources">

           <list>

              <value>com/fuzhuan/user/vo/User.hbm.xml</value>

              <value>com/fuzhuan/category/vo/Category.hbm.xml</value>

              <value>com/fuzhuan/product/vo/Product.hbm.xml</value>

              <value>com/fuzhuan/categorysecond/vo/CategorySecond.hbm.xml</value>

              <value>com/fuzhuan/order/vo/Order.hbm.xml</value>

              <value>com/fuzhuan/order/vo/OrderItem.hbm.xml</value>

              <value>com/fuzhuan/adminuser/vo/AdminUser.hbm.xml</value>

           </list>

       </property>

    </bean>

 

 

事務的資訊配置:

<!-- 事務管理: -->

    <!-- 事務管理器 -->

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

   

    <!-- 開啟註解事務 -->

    <tx:annotation-driven transaction-manager="transactionManager"/>

 

 

攔截器的資訊配置:

<constant name="struts.devMode" value="false" />

 

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

       <!-- 配置自定義攔截器 -->

       <interceptors>

           <interceptor name="privilegeInterceptor" class="com.fuzhuan.interceptor.PrivilegeInterceptor"/>

          

       </interceptors>

   

       <global-results>

           <result name="msg">/WEB-INF/jsp/msg.jsp</result>

           <result name="login">/admin/index.jsp</result>

       </global-results>

 

 

分頁元件:

publicclassPageHibernateCallback<T> implements HibernateCallback<List<T>>{

   

    private String hql;

    privateObject[] params;

    privateintstartIndex;

    privateintpageSize;

   

 

    publicPageHibernateCallback(String hql, Object[] params,

           int startIndex, int pageSize) {

       super();

       this.hql = hql;

       this.params = params;

       this.startIndex =startIndex;

       this.pageSize = pageSize;

    }

 

 

 

    publicList<T> doInHibernate(Session session) throwsHibernateException,

           SQLException {

       //1 執行hql語句

       Query query =session.createQuery(hql);

       //2 實際引數

       if(params != null){

           for(int i = 0 ; i <params.length ; i ++){

              query.setParameter(i,params[i]);

           }

        }

       //3 分頁

       query.setFirstResult(startIndex);

       query.setMaxResults(pageSize);

      

       return query.list();

    }

原始碼下載https://download.csdn.net/download/lzy_520/10626002