失物招领|基于Web的校园失物招领系统的设计与实现
作者主頁:編程千紙鶴
作者簡介:Java、前端、Pythone開發(fā)多年,做過高程,項目經(jīng)理,架構(gòu)師
主要內(nèi)容:Java項目開發(fā)、畢業(yè)設(shè)計開發(fā)、面試技術(shù)整理、最新技術(shù)分享
收藏點贊不迷路? 關(guān)注作者有好處
引言:
隨著互聯(lián)網(wǎng)的飛速發(fā)展,學校也進入了信息化時代。校園中大學生丟失物品的現(xiàn)象較為普遍,但是由于沒有一個良好的信息交流平臺,使得失主不能及時甚至找不到失物,給生活帶來了極大的不便。通過互聯(lián)網(wǎng)為在校師生搭建一個發(fā)布信息的平臺,可以有效幫助他們找回失物。
校園失物招領(lǐng)系統(tǒng)基于Web技術(shù)進行開發(fā),采用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),主要包括用戶和管理員兩大模塊:用戶模塊具有注冊、登錄、發(fā)布尋物信息、發(fā)布招領(lǐng)信息、瀏覽、留言板、個人信息管理等功能;管理員模塊可以對用戶信息、尋物信息、招領(lǐng)信息、個人信息和管理員信息進行管理。
一,項目簡介
傳統(tǒng)的校園失物招領(lǐng)系統(tǒng)都是通過紙筆記錄信息,經(jīng)過一段時間后,累積的數(shù)據(jù)達到一定程度,再次查詢的效率就會非常低,并且很容易造成數(shù)據(jù)的損壞和丟失。隨著社會的進步,綠色環(huán)保成為一種主流,越來越多的公司已經(jīng)放棄了使用紙筆記錄信息,開始通過互聯(lián)網(wǎng)發(fā)送并存儲各種信息[1]。這樣做不僅大大節(jié)約了成本,還省出了更多的時間和精力去做其他的工作。通過設(shè)計校園失物招領(lǐng)系統(tǒng),用戶可以使用互聯(lián)網(wǎng)進入系統(tǒng),在系統(tǒng)內(nèi)發(fā)布或查看各種物品的信息。這樣,通過各個用戶之間的信息交流,可以方便快捷的找到丟失物品,并且還可以節(jié)省人力資源,也符合現(xiàn)代綠色環(huán)保的理念。因此,設(shè)計校園失物招領(lǐng)系統(tǒng)勢在必行。
通過對系統(tǒng)的功能進行需求分析,應具備以下功能:
(1)游客在使用本系統(tǒng)之前,必須注冊一個賬號才能進入本系統(tǒng)。
(2)管理員可以使用相應的權(quán)限對普通用戶進行管理。
(3)實現(xiàn)對失物和拾物兩個模塊的管理功能。
(4)能夠?qū)崿F(xiàn)用戶對失物進行的搜索查找功能。
(5)實現(xiàn)用戶對留言板這塊的管理功能。
(6)對于個人信息可以及時完成修改或更新。
(7)實現(xiàn)在登錄時,能夠出現(xiàn)登錄成功或失敗的界面。
(8)實現(xiàn)用戶的退出功能。
(9)管理員對于系統(tǒng)能夠簡單維護,方便用戶實現(xiàn)操作的功能。
任何系統(tǒng)在設(shè)計的時候都需要構(gòu)建數(shù)據(jù)庫,并且在構(gòu)建的時候,需要根據(jù)系統(tǒng)的需求,明確目的,最后在數(shù)據(jù)庫內(nèi)進行合理的設(shè)計,使其各個功能能夠一一對應,這樣才能有效的對數(shù)據(jù)進行存儲,保證系統(tǒng)的正常運行。
基于Web的校園失物招領(lǐng)系統(tǒng)使用的是MySQL數(shù)據(jù)庫,其中包括個人信息表、失物表、拾物表、留言表和分類表。這五張表具體如下所示。
(1)分類表主要是記錄了各類物品的存放信息,如表3-1所示。
表3-1 分類表結(jié)構(gòu)
| 序列號 | 字段名稱 | 字段類型 | 長度 | 是否主鍵 | 說明 |
| 1 | classify_id | int | 11 | 是 | id自增 |
| 2 | Classify_name | varchar | 255 | 否 | 分類名稱 |
(2)個人信息表主要記錄了用戶相關(guān)的個人信息,如表3-2所示。
表3-2 個人信息表結(jié)構(gòu)
| 序列號 | 字段名稱 | 字段類型 | 長度 | 是否主鍵 | 說明 |
| 1 | userId | int | 11 | 是 | id自增 |
| 2 | user_name | varchar | 255 | 否 | 用戶名 |
| 3 | user_password | varchar | 255 | 否 | 密碼 |
| 4 | user_real_name | varchar | 255 | 否 | 真實姓名 |
| 5 | | varchar | 255 | 否 | 郵箱 |
| 6 | tel | int | 11 | 否 | 電話 |
| 7 | role | int | 11 | 否 | 用戶身份 |
| 8 | academy | varchar | 255 | 否 | 院系 |
(3)失物表主要記錄了用戶丟失的物品的相關(guān)信息,如表3-3所示。
表3-3 失物表結(jié)構(gòu)
| 序列號 | 字段名稱 | 字段類型 | 長度 | 是否主鍵 | 說明 |
| 1 | lost_id | int | 11 | 是 | id自增 |
| 2 | lost_name | varchar | 255 | 否 | 物品名稱 |
| 3 | lost_time | varchar | 255 | 否 | 時間 |
| 4 | describe | varchar | 255 | 否 | 描述 |
| 5 | place | varchar | 255 | 否 | 地點 |
| 6 | sort | int | 11 | 否 | 物品分類 |
| 7 | user_id | int | 11 | 否 | 用戶 |
(4)拾物表主要記錄了各種被撿到的物品的相關(guān)信息,如表3-4所示。
表3-4 拾物表結(jié)構(gòu)
| 序列號 | 字段名稱 | 字段類型 | 長度 | 是否主鍵 | 說明 |
| 1 | found_id | int | 11 | 是 | id自增 |
| 2 | found_goods_name | varchar | 255 | 否 | 物品名稱 |
| 3 | time | varchar | 255 | 否 | 時間 |
| 4 | describe | varchar | 255 | 否 | 描述 |
| 5 | place | varchar | 255 | 否 | 地點 |
| 6 | sort | int | 11 | 否 | 物品分類 |
| 7 | user_id | int | 11 | 否 | 用戶 |
(5)留言表主要記錄了用戶的各種留言信息,如表3-5所示。
表3-5 留言表結(jié)構(gòu)
| 序列號 | 字段名稱 | 字段類型 | 長度 | 是否主鍵 | 說明 |
| 1 | id | int | 11 | 是 | Id自增 |
| 2 | user_id | varchar | 255 | 否 | 用戶 |
| 3 | content | varchar | 255 | 否 | 內(nèi)容 |
?
二,環(huán)境介紹
語言環(huán)境:Java:? jdk1.8
數(shù)據(jù)庫:Mysql: mysql5.7
應用服務器:Tomcat:? tomcat8.5.31
開發(fā)工具:IDEA或eclipse
后臺開發(fā)技術(shù):SSM框架
前臺開發(fā)技術(shù):JSP+JQUERY+CSS+JS
三,系統(tǒng)展示
4.1 前臺功能模塊設(shè)計實現(xiàn)
4.1.1 用戶注冊模塊
用戶來到系統(tǒng)界面,點擊注冊按鈕,便會跳轉(zhuǎn)到注冊界面,在注冊的時候需要輸入真實姓名、登錄密碼、手機號、用戶名、郵箱、院校等一些基本信息,其中手機號必須是11位,郵箱格式必須正確,將這些信息輸入完成后,點擊注冊便會注冊成功,然后跳轉(zhuǎn)到登錄界面進行登錄。用戶在進行注冊時的注冊界面如圖4-1所示。
圖4-1 用戶注冊
?
4.1.2 用戶登錄模塊
用戶來到登錄界面后,可以根據(jù)注冊的用戶名和密碼進行登錄操作,并且需要輸入正確的驗證碼才能登錄成功,若驗證碼復雜不容易識別,可以直接點擊圖片更換新的驗證碼。在登錄成功后,系統(tǒng)會根據(jù)登錄的賬號自動識別用戶或管理員的身份,從而可以進入到不同的界面。
用戶在進行登錄時的界面如圖4-2所示。
圖4-2 用戶登錄界面
4.1.3 瀏覽模塊
4.1.3.1 尋物信息瀏覽
用戶進入首頁后,點擊“瀏覽”按鈕,選擇“尋物信息瀏覽”,會出現(xiàn)各種物品的丟失信息,包括物品的類別、物品名稱、丟失時間、丟失地點、丟失人信息和物品的描述,其中如果用戶之前發(fā)布過尋物信息,也會顯示在上面,并且點擊“編輯”按鈕后可以跳轉(zhuǎn)到添加尋物信息界面完成尋物信息的更新,點擊“更新尋物”按鈕就可以完成尋物信息的更新,對于過期的信息,也可以自行刪除。
用于瀏覽物品丟失信息的界面如圖4-3所示。
圖4-3 丟失信息瀏覽界面
更新尋物信息的界面如圖4-4所示。
圖4-4 更新尋物信息界面
?
4.1.3.2 招領(lǐng)信息瀏覽
用戶進入首頁后,點擊“瀏覽”按鈕,選擇“招領(lǐng)信息瀏覽”,會出現(xiàn)各種物品的招領(lǐng)信息,包括物品的類別、招領(lǐng)物品、發(fā)現(xiàn)時間、發(fā)現(xiàn)的地點、發(fā)現(xiàn)的用戶和物品的描述,如果用戶之前撿到過失物,并且在上面發(fā)布了招領(lǐng)信息,也會出現(xiàn)在上面,如果失主找回了自己的失物,在刪除失物信息之后,招領(lǐng)的信息便會清除。也可以在首頁上方的搜索框輸入失物的關(guān)鍵字對物品進行搜索,如果有該物品,則會顯示該物品的信息,如果沒有,則不會顯示。
用于瀏覽招領(lǐng)信息的界面如圖4-5所示。
圖4-5 招領(lǐng)信息瀏覽界面
使用搜索功能的搜索結(jié)果界面如圖4-6所示。
圖4-6 搜索結(jié)果界面
4.1.4 發(fā)布尋物信息模塊
用戶可以在首頁點擊“發(fā)布尋物信息”按鈕,進入到添加尋物信息界面,可以在此添加丟失物品的信息,包括選擇物品的類別、添加丟失時間、丟失的物品描述、物品的名稱以及丟失物品的地點,完成這些信息的填寫后,點擊“添加丟失”按鈕便可以成功添加失物信息,如圖4-7所示。
圖4-7 添加尋物信息界面
?
4.1.5 發(fā)布招領(lǐng)信息模塊
用戶在首頁通過點擊“發(fā)布招領(lǐng)信息”按鈕,進入到添加招領(lǐng)信息界面,可以在此添加撿到的物品信息,包括選擇物品的類型、物品的名稱、發(fā)現(xiàn)時間、發(fā)現(xiàn)地點以及物品描述,完成之后點擊“添加招領(lǐng)”按鈕便可以成功添加招領(lǐng)信息,其他用戶在使用系統(tǒng)的時候也能看到這些信息,如圖4-8所示。
圖4-8 添加招領(lǐng)信息界面
?
4.1.6 留言板模塊
用戶在首頁可以點擊“留言板”按鈕,進入到留言板模塊,在這里用戶可以隨時發(fā)表自己的留言信息。用戶只需要在留言框內(nèi)輸入留言內(nèi)容,點擊“發(fā)送”按鈕,保存的留言信息便會顯示在該界面,并且所有的用戶都可以看到,如果感覺留言的內(nèi)容不合適,可以在操作一欄點擊“刪除”按鈕,不合適的留言內(nèi)容就會被清除,如圖4-9所示。
圖4-9 用戶留言界面
4.1.7 個人信息模塊
用戶在首頁可以通過點擊“個人信息”按鈕,進入到個人信息修改界面,用戶在該界面可以對自己的個人信息進行修改,包括修改用戶登錄名、用戶密碼、用戶真實姓名、手機號碼、郵箱以及所屬院校,完成修改后,點擊下方的“修改”按鈕便可以完成修改,如圖4-10所示。
圖4-10 個人信息修改界面
4.2 管理員功能模塊設(shè)計實現(xiàn)
4.2.1 用戶信息管理模塊
4.2.1.1 用戶列表
管理員使用管理員賬號可以進入后臺管理系統(tǒng),并且可以在系統(tǒng)的左側(cè)點擊用戶信息管理,選擇用戶列表,可以進入用戶信息概況界面,在該界面可以對用戶信息進行查看和刪除,對于一些利用系統(tǒng)來宣傳不正當信息的用戶,可以執(zhí)行刪除操作,點擊“刪除”按鈕便可完成操作,如圖4-11所示。
圖4-11 用戶信息界面
?
4.2.1.2 添加用戶信息
管理員可以在后臺管理系統(tǒng)選擇用戶信息管理,點擊“添加用戶信息”按鈕便會跳轉(zhuǎn)到管理員添加用戶界面,在該界面管理員可以幫助用戶添加信息,需要添加的用戶信息包括用戶登錄名、用戶密碼、用戶真實姓名、手機號碼、郵箱和所屬院校,所有信息寫完后,點擊“添加”按鈕,就可以完成用戶的添加,如圖4-12所示。
圖4-12 管理員添加用戶界面
4.2.2 招領(lǐng)信息管理模塊
4.2.2.1 招領(lǐng)列表
管理員可以在后臺用戶管理系統(tǒng)選擇招領(lǐng)信息管理,點擊“招領(lǐng)列表”按鈕便可以跳轉(zhuǎn)到招領(lǐng)信息界面,該界面包括了招領(lǐng)物品的類別、名稱、發(fā)現(xiàn)的時間、物品的描述、發(fā)現(xiàn)的地點和發(fā)現(xiàn)的用戶相關(guān)信息,點擊操作欄中的“編輯”按鈕便可以跳轉(zhuǎn)到更新界面進行編輯,也可以進行刪除,如圖4-13所示。
圖4-13 招領(lǐng)信息界面
?
4.2.2.2 添加招領(lǐng)信息
管理員可以在后臺管理系統(tǒng)選擇招領(lǐng)信息管理,點擊“添加招領(lǐng)信息”按鈕就會跳轉(zhuǎn)到添加招領(lǐng)信息界面,在該界面可以選擇添加招領(lǐng)物品的類別、物品的名稱、發(fā)現(xiàn)時間、發(fā)現(xiàn)地點以及物品描述,完成這些信息的填寫之后,點擊下方的“添加招領(lǐng)”按鈕,就可以將招領(lǐng)信息保存到招領(lǐng)列表,如圖4-14所示。
圖4-14 添加招領(lǐng)信息界面
?
4.2.3 尋物信息管理模塊
4.2.3.1 尋物列表
管理員可以在后臺管理系統(tǒng)選擇尋物信息管理,點擊“尋物列表”按鈕,就會跳轉(zhuǎn)到丟失信息界面,包括丟失物品的類別、物品名稱、丟失時間、丟失的地點、丟失人信息和物品的描述,在操作列可以選擇對物品進行編輯或刪除,點擊“編輯”按鈕后會跳轉(zhuǎn)到添加尋物信息界面,可以對物品的信息進行更新操作,如圖4-15所示。
圖4-15 丟失信息界面
?
4.2.3.2 添加尋物信息
管理員可以在后臺管理系統(tǒng)選擇尋物信息管理,點擊“添加尋物信息按鈕”就會跳轉(zhuǎn)到添加尋物信息界面,包括選擇添加物品的類型、物品名稱、丟失時間、丟失地點和丟失物品的描述,所有信息填寫完后點擊“添加尋物”按鈕就可以進行保存,如圖4-16所示。
圖4-16 添加尋物信息界面
4.2.4 個人信息管理模塊
4.2.4.1 個人信息修改
管理員可以在后臺管理系統(tǒng)選擇個人信息管理,點擊“個人信息修改”按鈕,就會跳轉(zhuǎn)到個人信息修改界面,包括修改用戶登錄名、用戶密碼、用戶真實姓名、手機號碼、郵箱和所屬院校,完成修改后,點擊“修改”按鈕便可以將修改后的個人信息保存,如圖4-17所示。
圖4-17 個人信息修改界面
?
4.2.4.2 添加管理員
管理員在后臺管理系統(tǒng)可以選擇個人信息管理,點擊“添加管理員”按鈕,可以添加用戶登錄名、用戶密碼、用戶真實姓名、手機號碼、郵箱和所屬院校,將所有的信息填寫保存之后,便可以添加一位新的管理員,并且擁有管理員的所有權(quán)限,如圖4-18所示。
圖4-18 添加管理員界面
?
四,核心代碼展示
package com.czmec.action;import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.List; import java.util.Map;import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import com.czmec.bean.FoundGoodsBean; import com.czmec.bean.GoodsByNameBean; import com.czmec.bean.LostGoodsBean; import com.czmec.bean.UserBean; import com.czmec.service.AdminService; import com.czmec.service.FoundService; import com.czmec.service.LostService; import com.czmec.service.UserService;//管理員操作 @Controller @RequestMapping("AdminAction") public class AdminAction {@Resource(name = "adminService")AdminService admiservice;@Resource(name = "lostService")LostService lostservice;@Resource(name = "foundService")FoundService foundservice;@Resource(name = "userService")private UserService userservice;@RequestMapping("adminindex")public String Adminindex(HttpServletRequest req) {List<UserBean> list = admiservice.SelectUser();req.setAttribute("listUser", list);return "/admin/UserList";}@RequestMapping("test")public String test() {return "/admin/test";}// 獲取尋物信息列表/*@RequestMapping("lostlist")@ResponseBodypublic List<LostGoodsBean> LostList() {List<LostGoodsBean> list = lostservice.SelectLostGoods();return list;}*/// 管理員添加用戶@RequestMapping("AddUser")public String AddUser() {return "/admin/AddUser";}// 管理員添加用戶具體實現(xiàn)@RequestMapping("AddUserImpl")public String AddUserImpl(UserBean user, HttpServletRequest req) {user.setRole(1);int i = userservice.AddUser(user);if (i > 0) {req.setAttribute("message", "添加成功");} else {req.setAttribute("message", "添加失敗");}List<UserBean> list = admiservice.SelectUser();req.setAttribute("listUser", list);return "/admin/UserList";}// 管理員添加管理具體實現(xiàn)@RequestMapping("AddAdminImpl")public String AddAdminImpl(UserBean user, HttpServletRequest req) {user.setRole(0);int i = userservice.AddUser(user);if (i > 0) {req.setAttribute("message", "添加成功");} else {req.setAttribute("message", "添加失敗");}List<UserBean> list = admiservice.SelectUser();req.setAttribute("listUser", list);return "/admin/UserList";}// 管理員添加招領(lǐng)@RequestMapping("AddFound")public String AddFound() {return "/admin/AddFound";}// 添加拾物列表@RequestMapping("AddFoundImpl")public String AddFoundImpl(FoundGoodsBean foundgoodsbean, HttpServletRequest req) {int i = foundservice.AddFoundGoods(foundgoodsbean);if (i > 0) {req.setAttribute("message", "添加成功");} else {req.setAttribute("message", "添加失敗");}List<FoundGoodsBean> list = foundservice.SelectFoundGoods();req.setAttribute("foundList", list);return "/admin/FoundList";}// 添加一條丟物信息@RequestMapping("AddLost")public String AddLost() {return "/admin/AddLost";}// 添加丟物列表@RequestMapping("AddLostImpl")public String AddLostImpl(LostGoodsBean losetgoodsbean, HttpServletRequest req) {int i = lostservice.AddLostGoods(losetgoodsbean);if (i > 0) {req.setAttribute("message", "添加成功");} else {req.setAttribute("message", "添加失敗");}List<LostGoodsBean> list = lostservice.SelectLostGoods();req.setAttribute("lostlist", list);return "/admin/LostList";}// 管理員鏈接到招領(lǐng)列表@RequestMapping("FoundList")public String FoundList(HttpServletRequest req) {List<FoundGoodsBean> list = foundservice.SelectFoundGoods();req.setAttribute("foundList", list);return "/admin/FoundList";}// 管理員鏈接到尋物列表@RequestMapping("LostList")public String LostList(HttpServletRequest req) {List<LostGoodsBean> list = lostservice.SelectLostGoods();req.setAttribute("lostlist", list);return "/admin/LostList";}// 個人信息修改@RequestMapping("UpdatUser")public String UpdatUser(HttpSession session) {if (((UserBean)session.getAttribute("user")).getRole()==0) {return "/admin/UpdatUser";}else {return "UpdatUser";}}// 個人信息修改@RequestMapping("UpdatUserImpl")public String UpdatUserImpl(UserBean user,HttpServletRequest req) {int i=userservice.UpdateUser(user);if (i > 0) {req.setAttribute("message", "修改成功");} else {req.setAttribute("message", "修改失敗");}return "/admin/UpdatUser";}// 添加管理員@RequestMapping("AddAdmin")public String AddAdmin() {return "/admin/AddAdmin";}//刪除用戶@RequestMapping("DelUser")public String DelUser(UserBean user,HttpServletRequest req){int i=userservice.DelUser(user);if (i > 0) {req.setAttribute("Dmessage", "刪除成功");} else {req.setAttribute("Dmessage", "刪除失敗");}List<UserBean> list = admiservice.SelectUser();req.setAttribute("listUser", list);return "/admin/UserList";}//刪除招領(lǐng)信息@RequestMapping("DelFoundGoods")public String DelFoundGoods(FoundGoodsBean foundgoodsbean,HttpServletRequest req){int i=foundservice.DelFoundGoods(foundgoodsbean);if (i > 0) {req.setAttribute("Dmessage", "刪除成功");} else {req.setAttribute("Dmessage", "刪除失敗");}List<FoundGoodsBean> list = foundservice.SelectFoundGoods();req.setAttribute("foundList", list);return "/admin/FoundList";}//刪除尋物信息@RequestMapping("DelLostGoods")public String DelLostGoods(LostGoodsBean lostgoodsbean,HttpServletRequest req){int i=lostservice.DelLostGoods(lostgoodsbean);if (i > 0) {req.setAttribute("Dmessage", "刪除成功");} else {req.setAttribute("Dmessage", "刪除失敗");}List<LostGoodsBean> list = lostservice.SelectLostGoods();req.setAttribute("lostlist", list);return "/admin/LostList";}//根據(jù)物品名字模糊查詢@RequestMapping("SelectFoundGoodsByName")public String SelectFoundGoodsByName(@Param("foundName")String foundName,HttpServletRequest request) throws UnsupportedEncodingException{foundName = java.net.URLDecoder.decode(foundName,"UTF-8"); GoodsByNameBean goodsbyNameBean=new GoodsByNameBean();goodsbyNameBean.setFoundName(foundName); List<GoodsByNameBean> list=foundservice.SelectFoundGoodsByName(goodsbyNameBean);request.setAttribute("goodsByName", list);return "admin/SelectByNameList";}//根據(jù)ID查詢個人信息@RequestMapping("selectUserById")public String selectUserById(UserBean user,HttpServletRequest request){List<UserBean> list=admiservice.SelectUserById(user);request.setAttribute("geren",list);return "admin/IdUser";}//更新一條招領(lǐng)記錄@RequestMapping("updatafound")public String UpdataFoundList(@Param("foundId")int foundId,HttpServletRequest request){FoundGoodsBean fBean=foundservice.SelectFoundById(foundId);request.setAttribute("fBean", fBean);return "admin/AddFound";}//更新一條招領(lǐng)記錄實現(xiàn)@RequestMapping("updatafoundImpl")public String updtafoundImpl(FoundGoodsBean foundgoodsbean,HttpServletRequest req){foundservice.UpdateFoundGoods(foundgoodsbean);List<FoundGoodsBean> list = foundservice.SelectFoundGoods();req.setAttribute("foundList", list);return "/admin/FoundList";}//更新一條尋物記錄@RequestMapping("updatalost")public String UpdataLostList(@Param("lostId")int lostId,HttpServletRequest request){LostGoodsBean lBean=lostservice.SelectLostById(lostId);request.setAttribute("lBean", lBean);return "admin/AddLost";}//更新一條尋物實現(xiàn)@RequestMapping("updatalostImpl")public String updtalostImpl(LostGoodsBean lostGoodsBean,HttpServletRequest req){lostservice.UpdateLostGoods(lostGoodsBean);List<LostGoodsBean> list = lostservice.SelectLostGoods();req.setAttribute("lostlist", list);return "/admin/LostList";}} package com.czmec.action;import java.util.List;import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import com.czmec.bean.WordsBean; import com.czmec.service.WordsService;//用戶操作 @Controller @RequestMapping("userAction") public class UserAction {@ResourceWordsService wordsservice;//主頁面@RequestMapping("main")public String UserMain(){return "main";}//感恩@RequestMapping("WordsList")public String WordsList(HttpServletRequest request){List<WordsBean> list= wordsservice.SelectAllWords();System.out.println(list);request.setAttribute("wordslist",list);return "WordsList";}//添加一條感恩信@RequestMapping("addWords")public String AddWords(WordsBean wBean,HttpServletRequest request){wordsservice.AddWords(wBean);List<WordsBean> list= wordsservice.SelectAllWords();System.out.println(list);request.setAttribute("wordslist",list);return "WordsList";}//刪除一條感恩信@RequestMapping("DelWords")public String DelWords(WordsBean wBean,HttpServletRequest request){wordsservice.DelWords(wBean);List<WordsBean> list= wordsservice.SelectAllWords();System.out.println(list);request.setAttribute("wordslist",list);return "WordsList";} } package com.czmec.action;import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.List; import java.util.Random;import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import com.czmec.bean.UserBean; import com.czmec.service.AdminService; import com.czmec.service.UserService;/** 用戶登錄action*/ @Controller @RequestMapping("user") public class UserLogin {@Resource(name="adminService")AdminService admiservice;@Resource(name="userService")private UserService userservice;@RequestMapping("login")public String login(){return "login";}@RequestMapping("checkLogin")public String checkLogin(UserBean user,@Param("checkcode")String checkcode,HttpSession session,HttpServletRequest request){String piccode=(String) request.getSession().getAttribute("piccode");checkcode=checkcode.toUpperCase();//全部改成大寫if(checkcode.equals(piccode)){UserBean user1=userservice.login(user);if(user1!=null){if(user1.getRole()==0){session.setAttribute("countfound", admiservice.SelectCountFoundGoods());session.setAttribute("countlost",admiservice.SelectCountLostGoods());session.setAttribute("countuser", admiservice.SelectCountUser());session.setAttribute("user", user1);List<UserBean> list= admiservice.SelectUser();session.setAttribute("listUser", list);return "/admin/index";}else {session.setAttribute("user", user1);return "index";}}else {session.setAttribute("error", "用戶名或密碼錯誤");return "Error";}}else {request.setAttribute("image", "驗證碼不正確");return "login";} }@RequestMapping("error")public String Error(){return "Error";}//用戶注冊界面@RequestMapping("register")public String register(){return "register";}//用戶注冊界面功能@RequestMapping("registerAction")public String registerAction(UserBean user,HttpServletRequest req){user.setRole(1);int i= userservice.AddUser(user);if (i>0) {req.setAttribute("message", "注冊成功");}else{req.setAttribute("message", "注冊失敗");}return "login";}//用戶退出系統(tǒng)@RequestMapping("out")public String out(){return "login";}//發(fā)布尋物信息@RequestMapping("AddLost")public String Addlost(){return "AddLost";}//驗證碼的實現(xiàn)@RequestMapping("image")public void Image(HttpServletRequest request,HttpServletResponse response) throws IOException{BufferedImage bi=new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);Graphics g=bi.getGraphics();Color c=new Color(200,150,255);g.setColor(c);//背景g.fillRect(0, 0, 68, 22);char[] ch="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();//隨機獲取4個字符Random r=new Random();//范圍數(shù)組,隨機的位置int len=ch.length,index;StringBuffer sb=new StringBuffer();for(int i=0;i<4;i++){//獲取隨機數(shù)index=r.nextInt(len);//獲得一個隨機的位置,一個字符//放在圖片上g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//給個顏色//字符畫在圖片上,及位置g.drawString(ch[index]+"", (i*15)+3, 18);//字符保存StringBuffersb.append(ch[index]);}request.getSession().setAttribute("piccode", sb.toString());//輸出ImageIO.write(bi, "JPG", response.getOutputStream());}}五,項目總結(jié)
校園失物招領(lǐng)系統(tǒng)使得用戶更加方便、有效的找回丟失物品,也使得管理者在工作的時候更加簡單、輕松,通過合理的分配人力、物力資源,提高校園失物招領(lǐng)工作的效率和質(zhì)量。
主要特點為:
①界面簡潔美觀,容易上手。
②硬件要求低,容易維護。
總結(jié)
以上是生活随笔為你收集整理的失物招领|基于Web的校园失物招领系统的设计与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html------个人简历表
- 下一篇: 电商搜索热词和底纹