主頁 > 前端設計 > 2020-12-23

2020-12-23

2020-12-24 13:21:13 前端設計

第一個專案總結(CMS)

  • CMS
    • 專案介紹
    • 專案架構
      • 開發工具:eclipse
      • 資料庫:mysql
      • 后端框架:ssm
      • 前端框架:jQuery、Bootstrap、GridManager、富文本編輯器、FreeMarker 表格插件
      • maven專案構建工具 但是沒有使用maven (為后面專案做鋪墊)
    • 查詢
      • 查詢
      • 分頁查詢
      • 高級查詢
    • 洗掉
    • 增加
    • 修改
  • 各種模塊
    • 文章模塊
    • 輪播圖模塊
    • 個人秀模塊
    • 視頻模塊
  • 后臺的登錄登出
    • 登錄
    • 登出
    • 攔截
    • 記住我
      • 勾選了記住我
      • 如果沒有勾選記住我
  • 發布到網上
  • 代碼

CMS

CMS是"Content Management System"的縮寫,意為"內容管理系統",一個管理內容的后臺管理系統,
根據內容的不同分為不同的系統
內容是新聞,就是新聞管理系統,
內容是員工資訊,就是員工管理系統,
內容是博客,博客管理系統,
內容是職位,職位管理系統,
這篇文章寫的主要是用于對網站前臺的資訊管理,如文字、圖片、影音和其他內容的發布、更新、洗掉等操作所撰寫的后臺代碼邏輯,

專案介紹

以下是此專案的簡單介紹:
需求分析:前端顯示的內容 是通過可以后端的管理員來管理是否顯示 和后臺可操作的增刪改查, 官網中的內容或資訊的顯示和不顯示來自于后臺管理系統,所以我們需要開發一個后臺管理系統來管理官網的資訊并且前端也要顯示,

專案架構

BS架構的專案
	前臺:公司官網資訊維護
				文章顯示    輪播圖顯示   個人秀顯示   視頻顯示
				
后臺:后臺管理系統
			文章管理    輪播圖管理    個人秀管理    視頻管理     用戶的登入登出( 記住我,忘記我) 增刪改查(高級查詢)

開發工具:eclipse

資料庫:mysql

后端框架:ssm

前端框架:jQuery、Bootstrap、GridManager、富文本編輯器、FreeMarker 表格插件

maven專案構建工具 但是沒有使用maven (為后面專案做鋪墊)

查詢

查詢包括分頁查詢+高級查詢+查詢

查詢

前端寫好對應的頁面 提供一個點擊的按鈕, 給按鈕系結一個點擊事件 發送GridManager請求并攜帶資料,
注意后臺傳回前端的型別,由于GridManager只能決議 map和物件 里面必須包含 totals(資料的總條數) data(資料) 給前端回傳的資料 我這里把他封裝成一個物件,
下面展示一些 發送請求的代碼

// An highlighted block
document
		.querySelector('#table-demo-ajaxPageCode')
		.GM(
				{
					gridManagerName : 'demo-ajaxPageCode', // 取名 方便查找
					ajaxData : '/system/article/list', // 資料來源地址
					ajaxType : 'POST', // 發送方式為post
					supportAjaxPage : true, // 打開分頁功能
					pageSize : 5, // 配置初次進入時每頁的顯示條數
					currentPageKey : "currentPage", // 請求引數中當前頁
					pageSizeKey : "pageSize", // 請求引數中每頁顯示條數
					sizeData : [ 5, 10, 15, 20 ],// 配置每頁顯示條數的下拉項,陣列元素僅允許為正整數,
					height : "100%", // 自適應的高度
					columnData : [
							{
								key : 'title', // key對應后臺的值
								text : '標題', // 前端顯示的值
								align : 'center' // 居中
							},
							{
								key : 'url',
								text : '地址',
								align : 'center'
							},
							{
								key : 'type',
								text : '文本型別',
								align : 'center',
								// cell typeId欄位所對應的值
								// row list里面的每個一物件
								// index 索引
								// key 就是上面的key 這里面對應 typeId
								template : function(cell, row, index, key) {
									return cell.name;
								},
							},
							{
								key : 'clickCount',
								text : '點擊率',
								align : 'center'
							},
							{
								key : 'content',
								text : '文章內容',
								align : 'center'
							},
							{
								key : 'enable',
								text : '是否啟用',
								align : 'center',
								// cell enable欄位所對應的值
								// row list里面的每個一物件
								// index 索引
								// key 就是上面的key 這里面對應 enabel
								template : function(cell, row, index, key) {
									return cell ? "<font color='green' >啟用<font/>"
											: "<font color='red' >禁用<font/>";
								},
							},
							{
								key : 'createDate',
								text : '創建時間',
								align : 'center'
							},
							{
								key : 'id',
								text : '操作&nbsp;&nbsp;'
										+ "<a id='insert' href='javascript:' style='color:green' />添加",
								align : 'center',
								template : function(cell, row, index, key) {
									// row是一行物件 將他轉換成json字串 決議需要
									var rows = JSON.stringify(row);
									return "<a data-id= '"
											+ cell
											+ "' href='javascript:' style='color:red' />洗掉&nbsp;&nbsp;"
											+ "<a data-row='"
											+ rows
											+ "' href='javascript:' style='color:cyan'/>修改";
								},
							}

					]
				});

分頁查詢

分頁查詢需要準備一個物體類 里面需要包含2個欄位 當前頁currentPage 每頁顯示條數pageSize 由于其他的模塊也會用到分頁查詢的欄位說以這個類就只有這2個欄位 其他模塊要用就繼承它,
上面的發送請求到后臺是攜帶了這2個欄位 所有只需要用物件接收一下 并且在 對應mapper層的sql陳述句后面加上
limit (當前頁currentPage-1)*每頁顯示條數pageSize , 每頁顯示條數pageSize
注意limit 不能進行運算 所有要在分頁查詢物體類里面提供get方法 在里面進行運算 帶時候直接取就行, limit也只能放在sql陳述句最后,

高級查詢

這里面就是加一個物體類并且繼承分頁查詢的物體類 因為高級查詢也需要用分頁查詢 里面欄位對應前端要查詢的欄位就行, 前端發送請求 后臺處理資料 回傳給前端引數,mapper層就使用動態sql撰寫就行,

洗掉

通過傳入后臺 要洗掉的id 去操作, 洗掉主要注意 不僅要洗掉資料庫里面的資料 也要洗掉不同模塊中會有的視頻,靜態頁面,洗掉的時候先去查詢到資料庫里面的地址 然后洗掉資料庫資料和地址對應的檔案,

增加

增加 傳入資料到后臺 封裝成物件 和修改公用方法 通過有沒有id來判斷具體是增加還是修改,有id是修改 沒有id是增加 也是注意生成視頻,靜態頁面,然后放入物件 再添加進資料庫,

修改

修改注意資料的回顯, 前臺頁面注意一定要清除快取, 如果涉及到視頻,靜態頁面 先洗掉以前的 再添加新的 然后跟新資料庫,

各種模塊

所有的模塊都是有增刪改查(思路在上面) 除開增刪改查只寫大概思路,和一些注意事項,

文章模塊

首先文章管理模塊是用的FreeMarker工具(記得導包) 頁面靜態化 好處:用空間換時間,通過寫一個文章模塊對文章進行增加和修改的時候就會生成靜態頁面 前臺顯示標題 給標題系結地址就是生成的靜態頁面,點擊標題就跳轉到靜態頁面, 模板里面使用el運算式取值,
實作了一些功能 顯示發布時間,實作點擊率的增加,

輪播圖模塊

這個模塊主要難點是檔案的上傳和下載 通過MultipartFile這個物件來操作檔案
輸入流 通過MultipartFile點方法獲取
輸出流 自己new一個
再通過IOUntil完成檔案的傳輸,
注意獲取真實路徑 方便用于其他系統和其他用戶,

個人秀模塊

這個模塊參照文章模塊 個人拿來練手的,

視頻模塊

這個模塊參照輪播圖模塊 個人拿來練手的, 前臺加上 video 這個標簽就行

后臺的登錄登出

登錄

通過前臺用戶輸入的賬號去查詢資料庫 如果為空 那就是賬號不存在 然后只需要對比密碼就行 密碼錯誤提示密碼錯誤. 密碼正確跳轉頁面進入后臺 并且把賬號和密碼存入session(存入session主要用于攔截 )

登出

登出的時候記得清除session 因為里面會存有 賬號和密碼的資料,

攔截

通過查看session里面是否存入賬號和密碼來判斷用戶是否登錄 如果用戶直接訪問后臺其他的東西就會被攔截 并且強制跳轉到登錄頁面,

記住我

勾選了記住我

把賬號和密碼放入cookie里面 并且設定生命周期(自己設定的一周) 如果不設定存活時間 那么他會在關閉瀏覽器的時候死亡, 前臺js代碼再獲取cookie里面的值放入對應的文本框內

如果沒有勾選記住我

獲取前臺的cookie 查詢里面是否存在賬戶或者密碼(在專案中基本是用來判斷用戶上一次時候勾選了記住我) 沒有就正常執行 有的話就把 cookie自殺 然后再把洗掉后的cookie放回 前臺js代碼再獲取cookie里面的值放入對應的文本框內 這樣就實作了清除操作,

發布到網上

通過購買服務器 再服務器上部署專案 然后就可以通過彈性公網地址訪問自己寫的專案,
本人白嫖了一個30天的華為云,地址就不貼了(寫的垃圾),

代碼

如有需完整的代碼請私信我,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/239690.html

標籤:其他

上一篇:基于vue+echarts 資料可視化大屏展示

下一篇:前端高頻面試題總結(2020年最新版),建議收藏慢慢吸收!持續更新中...

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more