模組介紹
專案原始碼
專案流程圖
歸納總結
未來規劃
基於http伺服器的點餐系統
通過 http 伺服器 基於c++ 設計出客戶端與伺服器互動式的點餐系統,使用者可以通過網頁的形式對伺服器傳送資訊,當伺服器接收到資訊後根據客戶端傳送的請求返回響應內容。
linux 伺服器 、g++ 編譯器 、 vim 編輯器 、 gdb偵錯程式、 make工具
使用 httplib 庫搭建伺服器
使用 restful api 介面設計請求與返回函式
使用 lambda 表示式 json序列化和反序列化 作為介面引數
post 新增菜品 請求
//新增菜品 請求
server.
post
("/dish",[
&dish_table]
(const request& req,
response& resp)
get 獲取所有菜品介面
//get 獲取所有菜品介面
server.
get(
"/dish",[
&dish_table]
(const request& req,
response& resp)
get 檢視菜品
server.
get(r"(/dish/(\d+))",[
&dish_table]
(const request& req,
response& resp)
put 修改菜品
//修改菜品
server.
put(r"(/dish/(\d+))",[
&dish_table]
(const request& req,
response& resp)
delete 刪除菜品
//刪除菜品
server.
delete
(r"(/dish/(\d+))",[
&dish_table]
(const request& req,
response& resp)
訂單的相關操作6. post 新增訂單
//新增訂單
server.
post
("/order",[
&order_table]
(const request& req,
response& resp)
get 檢視訂單
// 檢視訂單
server.
get(
"/order",[
&order_table]
(const request& req,
response& resp)
put 修改訂單
//修改訂單
server.
put(r"(/order/(\d+))",[
&order_table]
(const request& req,
response& resp)
點餐系統
問題主要集中在對資料庫進行封裝操作、設計伺服器響應函式、網頁的製作這三部分,其中踩了很多坑…
首先在封裝資料庫的時候,連線資料庫的時候一直失敗,後來把第二個引數重修修改了,就ok
在使用插入操作的時候,需要對json格式的資料進行轉換,這個兩個ascstring(),asint()如果不轉換則引數是 json型別的,無法被我們編譯器識別
構建好資料庫插入的操作後就可以執行了
點它=》資料庫單元測試原始碼
首先本來是想自己寫乙個伺服器,但是這樣做過於繁瑣,而且可能後出現很多問題,自己要費很多時間去做,所以就借用了網上的乙個伺服器庫httplib
但是在使用的過程中還是出現了很多問題
這個是伺服器大致的框架
}a)在使用9094埠號時必須要在購買的伺服器上進行設定規則
b)在使用 訊號處理函式時採用lambda表示式,得把mysql設定 為全域性變數,否則lambda表示式捕獲不到這個變數
在進行網頁製作的時候,遇到了不少問題,因為之前沒有接觸過前端,所以也踩了不少的坑
點它=》網頁html原始碼
在使用物件之前得申請乙個 vue物件,然後才可以去使用,methods是乙個函式,通過這個函式來從伺服器的資料庫中獲取資料,這樣可以變為乙個動態的網頁,如果伺服器的資料庫裡傳送了改變,那麼網頁也會隨之而改變。
在寫 makefile 檔案的時候,遇到一些問題,在後面鏈結的時候,得寫相應的庫,因為編譯器自動是從 lib64中獲取,不鏈結庫就無法完成編譯
目前這個專案並不算很完整,在未來會新增一下三項功能…
點餐系統(四) 伺服器端框架
伺服器端用了cxf spring hibernate框架,具體的框架 我已經上傳到 開始想用cxf自身生成json,但是發現當返回的實體為空的時候,在json資料裡面這個屬性會自動隱藏。所以最後還是用gson自己去生成實體。gson生成 如下 gson gson new gsonbuilder se...
基於執行緒池的http伺服器
public static void main string args catch ioexception e 這是整個程式的入口,初始化該初始化的,監聽該 監聽的。threadpoolmanager用於管理執行緒,初始化有三個執行緒。accept方法會造成阻塞,知道有訊息傳過來。將接收到的訊息傳入...
2 1 基於Docker搭建HTTP伺服器
基於docker來執行一台http伺服器,我們選擇nginx來搭建該服務,因為nginx時高效能的web伺服器,同時也是做反向 伺服器的上佳選擇。1 建立容器 root localhost docker container run d p 80 80 rm name mynginx nginx上面的...