1. 程式人生 > 實用技巧 >基於SSH框架實現的鮮花訂購系統

基於SSH框架實現的鮮花訂購系統

專案介紹

  1. 本系統使用Struts2+Spring+Hibernate架構,資料庫使用MySQL,連線池使用c3p0。
  2. 模仿花禮網進行前端設計與開發,實現網站導航、商品分類展示,商品詳情、商品檢索、購物車等功能。
  3. 使用EasyUI實現後臺對商品分類、商品資訊、使用者資訊、訂單資訊的管理,包括增刪改查,檔案上傳等。

專案適用人群

正在做畢設的學生,或者需要專案實戰練習的Java學習者

開發環境

  1. jdk 8
  2. intellij idea
  3. tomcat 8.5.40
  4. mysql 5.7

所用技術

  1. Struts2+Spring+Hibernate
  2. js+ajax
  3. easyUI

專案架構

專案截圖

  • 註冊

  • 首頁

  • 商品詳情

  • 購物車

  • 管理端-類別管理

  • 管理端-商品管理

  • 管理端-訂單管理

資料庫配置

<!-- c3p0 資料來源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
    <property name="jdbcUrl"
        value="jdbc:mysql://localhost:3306/db_flower?useUnicode=true&amp;characterEncoding=utf8" />
    <property name="user" value="root" />
    <property name="password" value="root123" />
    <!--初始化時獲取的連線數,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
    <property name="initialPoolSize" value="1" />
    <!--連線池中保留的最小連線數。 -->
    <property name="minPoolSize" value="1" />
    <!--連線池中保留的最大連線數。Default: 15 -->
    <property name="maxPoolSize" value="300" />
    <!--最大空閒時間,60秒內未使用則連線被丟棄。若為0則永不丟棄。Default: 0 -->
    <property name="maxIdleTime" value="60" />
    <!--當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。Default: 3 -->
    <property name="acquireIncrement" value="5" />
    <!--每60秒檢查所有連線池中的空閒連線。Default: 0 -->
    <property name="idleConnectionTestPeriod" value="60" />
</bean>

關鍵程式碼

  1. 分頁物件
public class PageModel<T> {
	// 當前頁號
	private int pageNo = 1;
	// 每頁記錄數
	private int pageSize = 10;
	// 總記錄數
	private int recordCount;
	// 總頁數
	private int pageCount;
	// 存放分頁資料的集合
	private List<T> datas;
}
  1. struts.xml
<struts>
	<!--使用spring建立管理struts2的action操作 -->
	<constant name="struts.objectFactory" value="spring" />
	<!-- 設定struts2的編碼為UTF8 -->
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<!-- 不使用瀏覽器快取 -->
	<constant name="struts.serve.static.browserCache" value="false"></constant>
	<!-- 每次重新載入xml配置檔案 -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	<!-- 啟用開發者模式 -->
	<constant name="struts.devMode" value="true"></constant>
	<!-- 不使用struts2提供的主題ui -->
	<constant name="struts.ui.theme" value="simple"></constant>
	<!-- 提供對萬用字元的支援 -->
	<constant name="strutsenableDynamicMethodInvocation" value="true" />

	<!-- 需要攔截未登入使用者的包 -->
	<package name="login" namespace="/" extends="struts-default">
		<!-- 配置攔截未登入使用者的攔截器 -->
		<interceptors>
			<interceptor name="userInter"
				class="com.flowershopping.tool.UserInterceptor"></interceptor>
			<interceptor-stack name="userStack">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="userInter"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<!-- 需要攔截的action 登出 和 提交訂單 -->
		<!-- 設定預設攔截器 -->
		<default-interceptor-ref name="userStack"></default-interceptor-ref>
		<!-- 攔截結果處理 -->
		<global-results>
			<result name="login" type="redirect">/jsp/login/login.jsp</result>
		</global-results>
		<!-- 登出 -->
		<action name="logout" class="userAction" method="logout">
			<result name="success">/jsp/index/index.jsp</result>
		</action>
		<!-- 提交訂單 -->
		<action name="addOrder" class="ordersAction" method="addOrder">
			<result name="success">/jsp/shopping/orderAdded.jsp</result>
		</action>
	</package>

	<!-- 需要進行未登入管理員攔截的包 -->

	<package name="admin" namespace="/" extends="struts-default">
		<!-- 配置攔截未登入管理員的攔截器 -->
		<interceptors>
			<interceptor name="adminInter"
				class="com.flowershopping.tool.AdminInterceptor"></interceptor>
			<interceptor-stack name="adminStack">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="adminInter"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<!-- 需要攔截的action 檢視所有使用者 檢視訂單 新增商品 -->
		<!-- 設定預設攔截器 -->
		<default-interceptor-ref name="adminStack"></default-interceptor-ref>
		<!-- 攔截結果處理 -->
		<global-results>
			<result name="login" type="redirect">/jsp/login/admin.jsp</result>
		</global-results>
		<!-- 檢視所有使用者 -->
		<action name="findAllUsers" class="userAction" method="findAllUsers">
			<result name="success">/jsp/admin/manageUsers.jsp</result>
		</action>
		<!-- 檢視訂單 -->
		<action name="findAllOrders" class="ordersAction" method="findAllOrders">
			<result name="success">/jsp/admin/manageOrders.jsp</result>
		</action>
		<!-- 新增商品 -->
		<action name="addGoods" class="goodsAction" method="addGoods">
		</action>
	</package>
	<!-- 其餘包 -->
	<package name="default" namespace="/" extends="struts-default,json-default"
		strict-method-invocation="false">
		<global-results>
			<result name="jsonMap" type="json">
				<param name="root">pageMap</param>
			</result>
			<result name="stream" type="stream">
				<param name="inputName">inputStream</param>
			</result>
		</global-results>
		<!-- 商品分類 -->
		<action name="category_*" class="categoryAction" method="{1}">
			<result name="findCategories_success">/jsp/index/header.jsp</result>
		</action>
		<!-- 商品資訊 -->
		<action name="goods_*" class="goodsAction" method="{1}">
			<result name="findGoodsByCategory_success">/jsp/index/contentByCategory.jsp</result>
			<result name="findAllGoods_success">/jsp/index/content.jsp</result>
			<result name="findOne_success">/jsp/shopping/product.jsp</result>
			<result name="findGoodsByKey_success">/jsp/shopping/searchResult.jsp</result>
			<result name="findGoodsByKeys_success">/jsp/shopping/searchResult.jsp</result>
		</action>
		<!-- 使用者 -->
		<action name="user_*" class="userAction" method="{1}">
			<result name="checkUser_success">/jsp/index/index.jsp</result>
			<result name="checkUser_error">/jsp/login/login.jsp</result>
			<result name="checkAdmin_success">/jsp/admin/main.jsp</result>
			<result name="checkAdmin_error">/jsp/login/admin.jsp</result>
			<result name="addUser_success">/jsp/index/index.jsp</result>
			<result name="updateUser_success">/jsp/login/userinfocenter.jsp</result>
		</action>
		<!-- 訂單 -->
		<action name="orders_*" class="ordersAction" method="{1}">
			<result name="addToCart_success">/jsp/shopping/showCart.jsp</result>
			<result name="myOrder">/jsp/shopping/myOrder.jsp</result>
			<result name="updateCart_error">/jsp/shopping/showCartErro.jsp</result>
            <result name="login" type="redirect">/jsp/login/login.jsp</result>
		</action>
	</package>
</struts>

資源下載地址:https://download.csdn.net/download/code_200/14122933
程式有問題聯絡程式幫

專案後續

其他ssh,ssm,springboot版本後續迭代更新,持續關注