楊子鑫 余小蘭
摘? 要:隨著我國信息化建設(shè)的推進(jìn),電子商務(wù)平臺為農(nóng)副產(chǎn)品市場提供了更加廣闊的銷售渠道,越來越多的人開始運(yùn)用互聯(lián)網(wǎng)來推廣農(nóng)副產(chǎn)品。文章介紹了基于SSM的農(nóng)產(chǎn)品銷售系統(tǒng)設(shè)計與實(shí)現(xiàn),網(wǎng)站的設(shè)計采用模塊化的設(shè)計思想,在Windows操作系統(tǒng)環(huán)境下,搭建SSM(Spring+SpringMVC+Mybatis)框架,用MySQL來儲存數(shù)據(jù),通過使用JAVA腳本語言完成動態(tài)的、交互的web服務(wù)器應(yīng)用程序,以實(shí)現(xiàn)本系統(tǒng)的主要功能。本系統(tǒng)主要分為兩部分:前臺的用戶系統(tǒng)和后臺的管理系統(tǒng)。
關(guān)鍵詞:JSP;農(nóng)產(chǎn)品;網(wǎng)上銷售系統(tǒng);MySQL
中圖分類號:TP311? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A文章編號:2096-4706(2021)15-0033-04
Abstract: With the advancement of China’s information construction, E-Commerce platform provides a broader sales channel for the agricultural and sideline products market. More and more people begin to use the internet to promote agricultural and sideline products. This paper describes the design and implementation of a SSM-based agricultural product sales system. The design of the website adopts modular design idea, in the windows operating system environment, builds SSM (Spring + SpringMVC + Mybatis) framework, uses MySQL to store data, and completes the dynamic and interactive web server application by using JAVA script language to realize the main functions of the system. The system is mainly divided into two parts: the front user system and the background management system.
Keywords: JSP; agricultural products; online sales system; MySQL
0? 引? 言
在當(dāng)今時代,信息技術(shù)的突破使得空間距離已不再成為限制,真正實(shí)現(xiàn)了地球村的理想,以互聯(lián)網(wǎng)為標(biāo)榜的現(xiàn)代化信息網(wǎng)絡(luò)快速擴(kuò)張到人們生活的方方面面。本文設(shè)計并開發(fā)一套性能良好的基于互聯(lián)網(wǎng)技術(shù)的農(nóng)產(chǎn)品在線銷售系統(tǒng),通過不斷發(fā)展的互聯(lián)網(wǎng)技術(shù)來規(guī)劃管理模式,可以拓寬農(nóng)產(chǎn)品銷售渠道,提高農(nóng)村企業(yè)的管理效率[1]。本次基于ssm的農(nóng)產(chǎn)品銷售系統(tǒng)的開發(fā),主要提供了用戶注冊和登錄、瀏覽商品、加購物車、留言、提交訂單的功能,管理員的登錄、訂單管理、用戶管理、留言管理、商品管理的功能。通過對開發(fā)所用的框架介紹、技術(shù)分析、需求分析、數(shù)據(jù)庫分析和功能分析來介紹與實(shí)現(xiàn)本系統(tǒng)。
1? 系統(tǒng)框架介紹
SSM即Spring+SpringMVC+MyBatis,頁面發(fā)送請求給控制器(進(jìn)入SpringMVC范圍),控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互(MyBatis起作用),后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)(SpringMVC起作用)。在此過程中,Spring作為一個容器,將整個過程都囊括進(jìn)去。
2? 主要技術(shù)選型介紹
2.1? JSP簡介
JSP技術(shù)主要以JAVA語言為腳本語言,其本質(zhì)是對SERVLETAPI的延伸,其中有對動態(tài)內(nèi)容的可執(zhí)行應(yīng)用程序HLML靜態(tài)網(wǎng)頁,通過JSP技術(shù)的發(fā)展,不僅實(shí)現(xiàn)了混合程序代碼的高效處理,還通過掃描和分析,幫助引擎系統(tǒng)的管理更加規(guī)范化[2]。在接收到訪問JSP網(wǎng)頁的request請求時,Web服務(wù)器端可以實(shí)現(xiàn)很多的功能設(shè)計。
2.2? Tomcat服務(wù)器簡介
Tomcat服務(wù)器是一個免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器。為個人、小企業(yè)開發(fā)和調(diào)試JSP程序提供很大的幫助[3]。Tomcat不需要程序員自己寫服務(wù)器、自己寫輸入流、輸出流,來來回回自己傳遞字節(jié)或字符流,最重要的是Tomcat免費(fèi),并且開源,這大大方便了程序員編程,節(jié)省了每次來回寫輸入流、輸出流的時間。
2.3? MySQL數(shù)據(jù)庫介紹
MySQL是一種小型的數(shù)據(jù)庫,所以相比其他大型數(shù)據(jù)庫就有了占用系統(tǒng)內(nèi)存少、速度和反應(yīng)快、浪費(fèi)資源少、成本低等之類的優(yōu)點(diǎn),憑借它所占用的體積小、運(yùn)行速率快、各方面性能優(yōu)越等多個優(yōu)點(diǎn)而被廣泛使用[4]。所以就選擇了MySQL作為本系統(tǒng)所搭建的網(wǎng)站的數(shù)據(jù)庫。
2.4? SSM簡介
本文使用SSM框架,即Spring,SpringMVC和MyBatis框架的整合。Spring是一個容器,里面裝了很多Bean即實(shí)體對象,之后要用到這些對象對應(yīng)的類的方法,可以直接從容器里面調(diào)取,就不用再去new一個;SpringMVC在項(xiàng)目中攔截用戶請求,核心是servlet,將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應(yīng)請求所執(zhí)行的操作;MyBatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變得透明,在每次與數(shù)據(jù)庫交互時,MyBatis使用簡單的XML或注解進(jìn)行配置和原始映射,將接口和Java對象映射成數(shù)據(jù)庫中的記錄[5]。
3? 數(shù)據(jù)庫設(shè)計
農(nóng)產(chǎn)品銷售管理體系的成功是靠兩個重要部分完成的,前臺和后臺管理。作為用戶上網(wǎng)瀏覽看到的界面,本系統(tǒng)頁面功能全面、易操作,讓用戶能夠方便快捷地使用本系統(tǒng),為用戶直接展示的功能界面主要包括商品一級、二級分類、按名稱搜索商品,用戶注冊登錄后可加購、提交訂單等;后臺管理系統(tǒng)主要分為用戶管理、商品類別管理、商品管理、訂單管理等。以上是整個系統(tǒng)所提供的主要功能,整個系統(tǒng)的數(shù)據(jù)庫核心表包括用戶表、管理員表、一級類別表、二級類別表、商品表、購物車表、訂單表和訂單明細(xì)表,E-R圖如圖1所示。
4? 模塊設(shè)計
4.1? 功能模塊
后臺管理的管理部分分為商品類別管理、商品管理、訂單管理、用戶管理和安全退出操作。管理員登錄到后臺就可以對商品、訂單和用戶進(jìn)行管理操作。商品類別管理:商品類別有一級分類和二級分類,管理員可以增刪改查商品的類別;商品管理:管理員可以向系統(tǒng)中添加各種產(chǎn)品,也可以查看或修改商品的信息,同時也可以根據(jù)季節(jié)或產(chǎn)品的銷量來決定是否把一些蔬菜放到熱銷商品區(qū)或者是下架;訂單管理:管理員可以查看所有已提交訂單的信息,包括訂單編號、金額、收貨人信息、訂單狀態(tài)等,用戶提交后的訂單也需要管理員受理才能完成訂單;用戶管理:管理員可以查看所有用戶,也可以修改自己的密碼。功能模塊設(shè)計如圖2所示。
4.2? 功能描述
4.2.1? 管理員登錄/退出
管理員登錄/退出功能的具體設(shè)計為:
(1)由于管理員的權(quán)限很大,也為了保障系統(tǒng)安全,因此后臺管理是沒有注冊功能的。
(2)管理員的登錄,在輸入賬號密碼之后,點(diǎn)擊系統(tǒng)頁面中的“登錄”按鈕,用戶的登錄也是通過在輸入用戶名和密碼之后,點(diǎn)擊“登錄”按鈕實(shí)現(xiàn)的。以用戶登錄為例,通過action=“userLogin.action”找到對應(yīng)controllor里的userLogin()方法,再調(diào)用相應(yīng)的service進(jìn)行業(yè)務(wù)邏輯處理,用Mabytis自動生成example類完成對SQL語句的查詢。Controller層代碼為:
UserloginUser=userService.
loginFindByUnameAndPwd(user.getUsername,user.getPassword());
if (loginUser == null) {
User user1=user;
user1.setPassword(“”);
request.getSession().setAttribute(“userinfo”, user1);
request.getSession().setAttribute(“message”,
“密碼輸入錯誤請重新登陸”);
return “redirect:login.action”;
}
request.getSession().setAttribute(“l(fā)oginUser”, loginUser);
Service層使用mybatis生成的example中的Criteria的方法,先創(chuàng)建一個example,然后再創(chuàng)建SQL語句條件對象criteria ,再添加SQL語句where子句的條件,最后執(zhí)行查詢,返回結(jié)果。主要代碼為:
public User loginFindByUnameAndPwd(String username, String password)
throws Exception {
UserExample example = new UserExample();
UserExample.Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo(username);
criteria.andPasswordEqualTo(password);
List<User> list = userMapper.selectByExample(example);
if(list.size()>0 && list!=null){
return list.get(0);
}
return null;
(3)用戶和管理員退出系統(tǒng)是由userLogout()方法實(shí)現(xiàn)的,當(dāng)用戶或者管理員點(diǎn)擊退出,將會刪除該用戶的狀態(tài)屬性,并且等待5秒自動跳轉(zhuǎn)到系統(tǒng)首頁,代碼為:
request.getSession().removeAttribute(“l(fā)oginUser”);
response.setHeader(“refresh”, “5;url=/shop/index.action”);//五秒刷新并跳轉(zhuǎn)到首頁
4.2.2? 用戶管理
用戶管理包括對用戶和管理員的管理:
(1)管理員點(diǎn)擊“用戶管理”進(jìn)入管理頁面,頁面將顯示所有系統(tǒng)用戶的注冊表的數(shù)據(jù),包括賬號、姓名、電話、注冊日期等。
(2)管理員可以在管理員管理界面修改密碼。
4.2.3? 訂單管理
訂單管理功能主要包括:
(1)訂單管理模塊,管理員可以查看所有訂單、未付款訂單和已付款訂單的詳細(xì)信息。
(2)管理員可以查看和修改用戶已提交訂單的訂單狀態(tài)(即是否發(fā)貨)。
(3)管理員可以根據(jù)訂單編號搜索訂單。
4.2.4? 商品管理
商品管理功能主要包括:
(1)管理員可以查看所有商品以及商品的信息。
(2)管理員可以修改已有商品資料,可以根據(jù)商品分類查詢或按關(guān)鍵字分頁查詢商品。
(3)管理員可以根據(jù)季節(jié)或產(chǎn)品的銷量來決定是否把一些蔬菜的狀態(tài)調(diào)整為下架;也可以根據(jù)商品的銷量調(diào)整該商品是否為熱門商品。
(4)管理員可以添加新的商品,新增商品時需要填寫商品的信息(包括上傳商品的圖片),關(guān)鍵代碼為:
if (file != null) {
String path = request.
getServletContext().getRealPath(“/products”);
String uploadFileName = file.getOriginalFilename();
String fileName = UUIDUtiils.getUUID() + uploadFileName;
File diskFile = new File(path + “//” + fileName);
file.transferTo(diskFile);
product.setImage(“products/” + fileName);
}
System.out.println(product.getImage());
productService.adminProduct_save(product);
return “redirect:/admin/adminProduct_
findAllByPage.action?page=1”;
}
4.2.5? 商品類別管理
商品類別管理功能主要包括:
(1)在商品類別管理中,分為一級分類和二級分類。一級分類為肉禽蛋奶、蔬菜水果等大類,二級分類則為詳細(xì)的蔬菜、水果、肉類等。管理員可以新增每一級別的種類。
(2)管理員可以修改商品的類別,也可以刪除不需要的商品類別。
4.3 部分項(xiàng)目成果展示
平臺主界面如圖3所示。
5? 結(jié)? 論
農(nóng)產(chǎn)品銷售系統(tǒng)采用JSP+Tomcat+MySQL,基于SSM框架,為農(nóng)產(chǎn)品提供了銷售渠道,用戶利用本系統(tǒng)下單,可以有效地節(jié)省時間,為勞動人民提供便利的同時,也讓顧客享受到了便利。本系統(tǒng)雖然頁面比較簡單,但是所擁有的功能可以滿足用戶的基本需求。然而仍有需要改進(jìn)完善的地方,在后續(xù)過程中會增加部分功能,根據(jù)用戶的需求,不斷優(yōu)化下去,讓用戶獲得更好的體驗(yàn)。
參考文獻(xiàn):
[1] 陳燕.基于MVC架構(gòu)的農(nóng)產(chǎn)品在線銷售管理系統(tǒng)設(shè)計與開發(fā) [J].信息與電腦(理論版),2020,32(12):110-112.
[2] 翁春榮.淺談JSP的網(wǎng)絡(luò)數(shù)據(jù)庫連接技術(shù)及運(yùn)用 [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(8):51-52.
[3] 王聯(lián)俊,何偉,張娜娜,等.Tomcat AJP任意文件讀取漏洞的檢測與修復(fù) [J].信息技術(shù)與信息化,2020(8):14-16.
[4] 林偉婷.C/S與B/S架構(gòu)技術(shù)比較分析 [J].科技資訊,2018,16(13):15-16.
[5] 李治江.化工產(chǎn)品電子商務(wù)平臺的設(shè)計與實(shí)現(xiàn) [D].北京:北京交通大學(xué),2019.
作者簡介:楊子鑫(2000—),女,漢族,河北邯鄲人,本科在讀,研究方向:JAVA;余小蘭(1985—),女,漢族,重慶人,講師,碩士,研究方向:計算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)安全、云計算、數(shù)據(jù)庫應(yīng)用。
3272500338237