楊子鑫 余小蘭
摘? 要:隨著我國(guó)信息化建設(shè)的推進(jìn),電子商務(wù)平臺(tái)為農(nóng)副產(chǎn)品市場(chǎng)提供了更加廣闊的銷售渠道,越來(lái)越多的人開(kāi)始運(yùn)用互聯(lián)網(wǎng)來(lái)推廣農(nóng)副產(chǎn)品。文章介紹了基于SSM的農(nóng)產(chǎn)品銷售系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),網(wǎng)站的設(shè)計(jì)采用模塊化的設(shè)計(jì)思想,在Windows操作系統(tǒng)環(huán)境下,搭建SSM(Spring+SpringMVC+Mybatis)框架,用MySQL來(lái)儲(chǔ)存數(shù)據(jù),通過(guò)使用JAVA腳本語(yǔ)言完成動(dòng)態(tài)的、交互的web服務(wù)器應(yīng)用程序,以實(shí)現(xiàn)本系統(tǒng)的主要功能。本系統(tǒng)主要分為兩部分:前臺(tái)的用戶系統(tǒng)和后臺(tái)的管理系統(tǒng)。
關(guān)鍵詞:JSP;農(nóng)產(chǎn)品;網(wǎng)上銷售系統(tǒng);MySQL
中圖分類號(hào):TP311? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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ù)的突破使得空間距離已不再成為限制,真正實(shí)現(xiàn)了地球村的理想,以互聯(lián)網(wǎng)為標(biāo)榜的現(xiàn)代化信息網(wǎng)絡(luò)快速擴(kuò)張到人們生活的方方面面。本文設(shè)計(jì)并開(kāi)發(fā)一套性能良好的基于互聯(lián)網(wǎng)技術(shù)的農(nóng)產(chǎn)品在線銷售系統(tǒng),通過(guò)不斷發(fā)展的互聯(lián)網(wǎng)技術(shù)來(lái)規(guī)劃管理模式,可以拓寬農(nóng)產(chǎn)品銷售渠道,提高農(nóng)村企業(yè)的管理效率[1]。本次基于ssm的農(nóng)產(chǎn)品銷售系統(tǒng)的開(kāi)發(fā),主要提供了用戶注冊(cè)和登錄、瀏覽商品、加購(gòu)物車、留言、提交訂單的功能,管理員的登錄、訂單管理、用戶管理、留言管理、商品管理的功能。通過(guò)對(duì)開(kāi)發(fā)所用的框架介紹、技術(shù)分析、需求分析、數(shù)據(jù)庫(kù)分析和功能分析來(lái)介紹與實(shí)現(xiàn)本系統(tǒng)。
1? 系統(tǒng)框架介紹
SSM即Spring+SpringMVC+MyBatis,頁(yè)面發(fā)送請(qǐng)求給控制器(進(jìn)入SpringMVC范圍),控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互(MyBatis起作用),后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)(SpringMVC起作用)。在此過(guò)程中,Spring作為一個(gè)容器,將整個(gè)過(guò)程都囊括進(jìn)去。
2? 主要技術(shù)選型介紹
2.1? JSP簡(jiǎn)介
JSP技術(shù)主要以JAVA語(yǔ)言為腳本語(yǔ)言,其本質(zhì)是對(duì)SERVLETAPI的延伸,其中有對(duì)動(dòng)態(tài)內(nèi)容的可執(zhí)行應(yīng)用程序HLML靜態(tài)網(wǎng)頁(yè),通過(guò)JSP技術(shù)的發(fā)展,不僅實(shí)現(xiàn)了混合程序代碼的高效處理,還通過(guò)掃描和分析,幫助引擎系統(tǒng)的管理更加規(guī)范化[2]。在接收到訪問(wèn)JSP網(wǎng)頁(yè)的request請(qǐng)求時(shí),Web服務(wù)器端可以實(shí)現(xiàn)很多的功能設(shè)計(jì)。
2.2? Tomcat服務(wù)器簡(jiǎn)介
Tomcat服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器。為個(gè)人、小企業(yè)開(kāi)發(fā)和調(diào)試JSP程序提供很大的幫助[3]。Tomcat不需要程序員自己寫(xiě)服務(wù)器、自己寫(xiě)輸入流、輸出流,來(lái)來(lái)回回自己傳遞字節(jié)或字符流,最重要的是Tomcat免費(fèi),并且開(kāi)源,這大大方便了程序員編程,節(jié)省了每次來(lái)回寫(xiě)輸入流、輸出流的時(shí)間。
2.3? MySQL數(shù)據(jù)庫(kù)介紹
MySQL是一種小型的數(shù)據(jù)庫(kù),所以相比其他大型數(shù)據(jù)庫(kù)就有了占用系統(tǒng)內(nèi)存少、速度和反應(yīng)快、浪費(fèi)資源少、成本低等之類的優(yōu)點(diǎn),憑借它所占用的體積小、運(yùn)行速率快、各方面性能優(yōu)越等多個(gè)優(yōu)點(diǎn)而被廣泛使用[4]。所以就選擇了MySQL作為本系統(tǒng)所搭建的網(wǎng)站的數(shù)據(jù)庫(kù)。
2.4? SSM簡(jiǎn)介
本文使用SSM框架,即Spring,SpringMVC和MyBatis框架的整合。Spring是一個(gè)容器,里面裝了很多Bean即實(shí)體對(duì)象,之后要用到這些對(duì)象對(duì)應(yīng)的類的方法,可以直接從容器里面調(diào)取,就不用再去new一個(gè);SpringMVC在項(xiàng)目中攔截用戶請(qǐng)求,核心是servlet,將用戶請(qǐng)求通過(guò)HandlerMapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作;MyBatis是對(duì)jdbc的封裝,它讓數(shù)據(jù)庫(kù)底層操作變得透明,在每次與數(shù)據(jù)庫(kù)交互時(shí),MyBatis使用簡(jiǎn)單的XML或注解進(jìn)行配置和原始映射,將接口和Java對(duì)象映射成數(shù)據(jù)庫(kù)中的記錄[5]。
3? 數(shù)據(jù)庫(kù)設(shè)計(jì)
農(nóng)產(chǎn)品銷售管理體系的成功是靠?jī)蓚€(gè)重要部分完成的,前臺(tái)和后臺(tái)管理。作為用戶上網(wǎng)瀏覽看到的界面,本系統(tǒng)頁(yè)面功能全面、易操作,讓用戶能夠方便快捷地使用本系統(tǒng),為用戶直接展示的功能界面主要包括商品一級(jí)、二級(jí)分類、按名稱搜索商品,用戶注冊(cè)登錄后可加購(gòu)、提交訂單等;后臺(tái)管理系統(tǒng)主要分為用戶管理、商品類別管理、商品管理、訂單管理等。以上是整個(gè)系統(tǒng)所提供的主要功能,整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)核心表包括用戶表、管理員表、一級(jí)類別表、二級(jí)類別表、商品表、購(gòu)物車表、訂單表和訂單明細(xì)表,E-R圖如圖1所示。
4? 模塊設(shè)計(jì)
4.1? 功能模塊
后臺(tái)管理的管理部分分為商品類別管理、商品管理、訂單管理、用戶管理和安全退出操作。管理員登錄到后臺(tái)就可以對(duì)商品、訂單和用戶進(jìn)行管理操作。商品類別管理:商品類別有一級(jí)分類和二級(jí)分類,管理員可以增刪改查商品的類別;商品管理:管理員可以向系統(tǒng)中添加各種產(chǎn)品,也可以查看或修改商品的信息,同時(shí)也可以根據(jù)季節(jié)或產(chǎn)品的銷量來(lái)決定是否把一些蔬菜放到熱銷商品區(qū)或者是下架;訂單管理:管理員可以查看所有已提交訂單的信息,包括訂單編號(hào)、金額、收貨人信息、訂單狀態(tài)等,用戶提交后的訂單也需要管理員受理才能完成訂單;用戶管理:管理員可以查看所有用戶,也可以修改自己的密碼。功能模塊設(shè)計(jì)如圖2所示。
4.2? 功能描述
4.2.1? 管理員登錄/退出
管理員登錄/退出功能的具體設(shè)計(jì)為:
(1)由于管理員的權(quán)限很大,也為了保障系統(tǒng)安全,因此后臺(tái)管理是沒(méi)有注冊(cè)功能的。
(2)管理員的登錄,在輸入賬號(hào)密碼之后,點(diǎn)擊系統(tǒng)頁(yè)面中的“登錄”按鈕,用戶的登錄也是通過(guò)在輸入用戶名和密碼之后,點(diǎn)擊“登錄”按鈕實(shí)現(xiàn)的。以用戶登錄為例,通過(guò)action=“userLogin.action”找到對(duì)應(yīng)controllor里的userLogin()方法,再調(diào)用相應(yīng)的service進(jìn)行業(yè)務(wù)邏輯處理,用Mabytis自動(dòng)生成example類完成對(duì)SQL語(yǔ)句的查詢。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”,
“密碼輸入錯(cuò)誤請(qǐng)重新登陸”);
return “redirect:login.action”;
}
request.getSession().setAttribute(“l(fā)oginUser”, loginUser);
Service層使用mybatis生成的example中的Criteria的方法,先創(chuàng)建一個(gè)example,然后再創(chuàng)建SQL語(yǔ)句條件對(duì)象criteria ,再添加SQL語(yǔ)句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)擊退出,將會(huì)刪除該用戶的狀態(tài)屬性,并且等待5秒自動(dòng)跳轉(zhuǎn)到系統(tǒng)首頁(yè),代碼為:
request.getSession().removeAttribute(“l(fā)oginUser”);
response.setHeader(“refresh”, “5;url=/shop/index.action”);//五秒刷新并跳轉(zhuǎn)到首頁(yè)
4.2.2? 用戶管理
用戶管理包括對(duì)用戶和管理員的管理:
(1)管理員點(diǎn)擊“用戶管理”進(jìn)入管理頁(yè)面,頁(yè)面將顯示所有系統(tǒng)用戶的注冊(cè)表的數(shù)據(jù),包括賬號(hào)、姓名、電話、注冊(cè)日期等。
(2)管理員可以在管理員管理界面修改密碼。
4.2.3? 訂單管理
訂單管理功能主要包括:
(1)訂單管理模塊,管理員可以查看所有訂單、未付款訂單和已付款訂單的詳細(xì)信息。
(2)管理員可以查看和修改用戶已提交訂單的訂單狀態(tài)(即是否發(fā)貨)。
(3)管理員可以根據(jù)訂單編號(hào)搜索訂單。
4.2.4? 商品管理
商品管理功能主要包括:
(1)管理員可以查看所有商品以及商品的信息。
(2)管理員可以修改已有商品資料,可以根據(jù)商品分類查詢或按關(guān)鍵字分頁(yè)查詢商品。
(3)管理員可以根據(jù)季節(jié)或產(chǎn)品的銷量來(lái)決定是否把一些蔬菜的狀態(tài)調(diào)整為下架;也可以根據(jù)商品的銷量調(diào)整該商品是否為熱門(mén)商品。
(4)管理員可以添加新的商品,新增商品時(shí)需要填寫(xiě)商品的信息(包括上傳商品的圖片),關(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)在商品類別管理中,分為一級(jí)分類和二級(jí)分類。一級(jí)分類為肉禽蛋奶、蔬菜水果等大類,二級(jí)分類則為詳細(xì)的蔬菜、水果、肉類等。管理員可以新增每一級(jí)別的種類。
(2)管理員可以修改商品的類別,也可以刪除不需要的商品類別。
4.3 部分項(xiàng)目成果展示
平臺(tái)主界面如圖3所示。
5? 結(jié)? 論
農(nóng)產(chǎn)品銷售系統(tǒng)采用JSP+Tomcat+MySQL,基于SSM框架,為農(nóng)產(chǎn)品提供了銷售渠道,用戶利用本系統(tǒng)下單,可以有效地節(jié)省時(shí)間,為勞動(dòng)人民提供便利的同時(shí),也讓顧客享受到了便利。本系統(tǒng)雖然頁(yè)面比較簡(jiǎn)單,但是所擁有的功能可以滿足用戶的基本需求。然而仍有需要改進(jìn)完善的地方,在后續(xù)過(guò)程中會(huì)增加部分功能,根據(jù)用戶的需求,不斷優(yōu)化下去,讓用戶獲得更好的體驗(yàn)。
參考文獻(xiàn):
[1] 陳燕.基于MVC架構(gòu)的農(nóng)產(chǎn)品在線銷售管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā) [J].信息與電腦(理論版),2020,32(12):110-112.
[2] 翁春榮.淺談JSP的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)連接技術(shù)及運(yùn)用 [J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(8):51-52.
[3] 王聯(lián)俊,何偉,張娜娜,等.Tomcat AJP任意文件讀取漏洞的檢測(cè)與修復(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ù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:北京交通大學(xué),2019.
作者簡(jiǎn)介:楊子鑫(2000—),女,漢族,河北邯鄲人,本科在讀,研究方向:JAVA;余小蘭(1985—),女,漢族,重慶人,講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)安全、云計(jì)算、數(shù)據(jù)庫(kù)應(yīng)用。
3272500338237