日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java旅游网站源码+页面

發(fā)布時間:2024/8/1 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java旅游网站源码+页面 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

旅游網(wǎng)站[源碼+前后端頁面]


在線預(yù)覽:旅游網(wǎng)站TourismPro

賬號:朱利爾,密碼:123

管理員賬號:admin,密碼:123456


  • Github開源地址:https://github.com/jwwam/tourismPro
  • 下載 or 部署問題請加QQ群:696852484
  • 這是一個免費、輕量化、簡單、易上手的旅游網(wǎng)站項目,系統(tǒng)包括完整的前端Html頁面和后臺代碼,該項目僅適合作為JavaWeb入門或畢業(yè)設(shè)計使用,不具備實際使用價值,項目中涉及皮爾遜相關(guān)系數(shù)的相似度算法Java實現(xiàn)和實際應(yīng)用可查看景點推薦模塊。
  • 本項目開源免費,如果您看到有人售賣或利用該項目盈利請幫忙舉報,謝謝。
  • PS:本人承接畢業(yè)設(shè)計制作,有意請聯(lián)系我,劃至頁面底部獲取我的聯(lián)系方式。
  • 以下請您仔細閱讀:
    這個項目相比于原來tourism的設(shè)計更加簡潔明了,使用體驗也更好,底層應(yīng)用的實現(xiàn)代碼也很簡單,但是在部署方式上可能需要耗費一定的精力才能跑起來(相比老版本),其實這對于每一個項目來說都是如此,相信找到這個項目的小伙伴大多是即將畢業(yè)的同學(xué),如果您只是想畢業(yè)交差然后另謀他路請直接略過此段往下看,或者建議您找淘寶或者我?guī)湍氵h程部署,花錢買時間永遠是最劃算的買賣(恰飯時間O(∩_∩)O),您大可利用多余的時間去做更有意義的事情。但是如果您畢業(yè)后從事編程相關(guān)的工作,請一定仔細食用這個項目,相信你一定會有所收獲。一個系統(tǒng)從設(shè)計到實現(xiàn)是一個非常復(fù)雜的過程,這個項目算不上牛逼但是帶你入門足夠了,項目用到的算法也不算牛逼但是面試吹牛也足夠了,以上。

Project description-項目描述

  • 此項目為tourism的重構(gòu)版本【tourism是3年前做的一個旅游網(wǎng)站畢業(yè)設(shè)計,采用ssh架構(gòu)】
  • 因為tourism開發(fā)時間久遠,現(xiàn)在對這個項目進行了全新升級
  • 本次升級拋棄了原來一些老舊的技術(shù),底層的所有代碼全部重寫
  • 采用前后端分離架構(gòu)
  • RESTful API風(fēng)格接口化、Json形式數(shù)據(jù)傳輸
  • 前端頁面進行了升級,引用了一些基本的組件,如dataTables.js、bootstrap.js、bootbox.js
  • 前端沒有采用主流框架如Vue、React等,使用基本的HTML+CSS+JQ也減輕了上手難度
  • 引入皮爾遜線性相似度推薦算法的Java實現(xiàn),應(yīng)用于項目的“景點推薦”欄目

Project framework-項目架構(gòu)

  • 采用前后端分離,Jquery + SpringBoot2.0
  • 后端語言Java
  • ORM使用SpringDataJPA
  • 數(shù)據(jù)庫使用MySql5.7+Mongodb3
  • 緩存Redis
  • 部署Nginx+Jar

Project algorithm-相關(guān)算法

  • 皮爾遜相關(guān)系數(shù)的相似度算法(Pearson)

  • 以下給出其實現(xiàn)公式:

  • 該算法在本系統(tǒng)中實現(xiàn)了基于景點分?jǐn)?shù)近似度的推薦功能,以下給出數(shù)據(jù)獲取方法代碼,具體算法實現(xiàn)請查看CFUtils.cosineSimilarity()方法。

public List<Spots> findRecommendList(String id) {//系統(tǒng)中我將景點抽象成了產(chǎn)品,這樣便于擴展,如酒店、旅行團均可看作產(chǎn)品評分,統(tǒng)一記錄在系統(tǒng)的分?jǐn)?shù)表中//如果是查詢景點推薦列表,則根據(jù)入?yún)⒕包cid查詢景點List<Score> productScoreList = scoreDao.findByProductId(id);//因為相似度比對需要兩份數(shù)據(jù),首先得到自己查詢的景點的分?jǐn)?shù)集合double[] ownProductScoreList = new double[productScoreList.size()];for (int i = 0; i < productScoreList.size(); i++) {ownProductScoreList[i] = Double.parseDouble(productScoreList.get(i).getGrade());}//然后得到分?jǐn)?shù)表中所有景點的分?jǐn)?shù)集合List<Score> productCountInScoreList = scoreDao.findAllGroupByProductId();HashMap<String,double[]> ss = new HashMap<String,double[]>();//循環(huán)所有景點for (int i = 0; i < productCountInScoreList.size(); i++) {//得到該產(chǎn)品的所有分?jǐn)?shù)List<Score> bb = scoreDao.findByProductId(productCountInScoreList.get(i).getProductId());double[] otherProductScoreList = new double[bb.size()];//循環(huán)該產(chǎn)品的所有分?jǐn)?shù)for (int j = 0; j < bb.size(); j++) {otherProductScoreList[j] = Double.parseDouble(bb.get(j).getGrade());}//將產(chǎn)品作為key,分?jǐn)?shù)集合作為value存入mapss.put(productCountInScoreList.get(i).getProductId(),otherProductScoreList);}List<Spots> resSpotsList = new ArrayList<>();//循環(huán)Map依次比對其線性相似度ss.forEach((String k, double[] v)->{//得到相似度值double n = CFUtils.cosineSimilarity(ownProductScoreList,v);log.info("id:{},線性相似度:{}",k,n);//判斷相似度值是否符合自己設(shè)定的閾值if(n > pearsonCorrelation) {//符合相似閾值,放入推薦列表resSpotsList.add(spotsDao.findById(k));}});return resSpotsList;}

Project view Page-頁面預(yù)覽如下:

注:看不到圖片可能需要梯子(maybe u need VPN)

  • 前臺登錄&注冊:

  • 前臺首頁:

  • 前臺景點列表&詳情:

  • 前臺景點推薦:

  • 前臺酒店列表&詳情&預(yù)訂:


  • 前臺旅線列表&詳情:

  • 前臺訂單列表:

  • 后臺首頁:

  • 后臺景點列表&添加&更新&刪除:



  • 后臺酒店列表&添加&更新:

  • 后臺線路列表&更新:

  • 后臺訂單列表&訂單審核:

  • 后臺旅行社列表:

  • 后臺用戶列表:

Run-啟動訪問(本地部署)

1.啟動Nginx

  • 下載地址:點擊下載
啟動命令:nginx.exe

將兩個前端頁面【tour-front】和【tour】文件包拷貝到Nginx根目錄下,修改./conf/nginx.conf配置文件,替換原有的server配置如下:

server {listen 80;server_name localhost;location / {root tour-front;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}server {listen 8082;server_name localhost;location / {root tour;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}

關(guān)閉Nginx

nginx.exe -s stop

重啟Nginx

nginx.exe -s reload

2.啟動Mongodb

  • 下載地址:點擊下載
  • 下載后需要本地配置,具體請自行搜索(參考地址)。
啟動命令:net start mongoDB

3.啟動Redis

  • 下載地址:點擊下載
  • 下載后需要本地配置,具體請自行搜索(參考地址)。
啟動命令:redis-server.exe --service-start --service-name redisserver

4.啟動項目

  • 本地啟動
    打開idea選擇import project,選擇tourismPro或者mongodb-file-server導(dǎo)入,然后等待相關(guān)依賴加載完成
    修改tourismPro項目中application.properties配置文件,將你自己的MySQL賬號和密碼替換寫入
#數(shù)據(jù)源 spring.datasource.url=jdbc:mysql://localhost:3306/tourismPro?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf8 spring.datasource.username=你自己的MySQL賬號 spring.datasource.password=你自己的MySQL密碼 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

修改mongodb-file-server項目中application.properties配置文件,將你自己本地創(chuàng)建的數(shù)據(jù)庫替換寫入,這里在mongodb中創(chuàng)建了名為tourismPro的數(shù)據(jù)庫

spring.data.mongodb.uri=mongodb://localhost:27017/tourismPro

如圖啟動main方法(mongodb-file-server同理)

5.view address訪問地址

前臺:http://localhost 后臺:http://localhost:8082/index.html

Quick start-快速部署(另一種部署方式)

注:使用我配置好的Nginx部署前端項目,通過我打包的jar直接啟動后端項目

  • 下載部署包:百度網(wǎng)盤
  • 提取碼:1bra

1.工具介紹:

  • 【MongoDB安裝包】mongodb-win32-x86_64-3.4.24.zip
  • 【MongoDB連接工具】Robo3T_v1.3.1.exe
  • 【Redis安裝包】Redis-x64-3.0.504.zip
  • 【Redis連接工具】redis-desktop-manager-0.9.3.817.exe
  • 【Nginx安裝包】nginx-1.18.0.zip
  • 【MySql連接工具】Navicat網(wǎng)上一大堆我就不上傳了

2.前端部署:

  • 務(wù)必保證系統(tǒng)的80端口、8082端口不被占用
  • 解壓nginx-1.18.0-tourismPro.rar
  • 雙擊解壓后nginx-1.18.0-tourismPro目錄中的nginx.exe
  • 打開瀏覽器,輸入localhost,再打開新標(biāo)簽輸入localhost:8082
  • 頁面正常顯示則前端部署完成

3.后端部署:

  • 務(wù)必保證系統(tǒng)的8081端口不被占用
  • 務(wù)必保證系統(tǒng)已經(jīng)正確配置了JDK1.8環(huán)境變量
  • 務(wù)必保證系統(tǒng)正確安裝且啟動了Redis且未修改默認(rèn)端口、未設(shè)置密碼
  • 務(wù)必保證系統(tǒng)正確安裝且啟動了Mongodb且新建了一個名為tourismPro的數(shù)據(jù)庫
  • 務(wù)必保證系統(tǒng)安裝的是Mysql5.X版本(本項目暫不支持8.X系列的MySQL數(shù)據(jù)庫)且新建了一個名為tourismPro的數(shù)據(jù)庫
  • 安裝數(shù)據(jù)庫時設(shè)置初始化賬號為root,密碼為1234
  • 打開cmd或者powershell輸入以下命令:
java -jar tourismPro.jar
  • 打開一個新的cmd或powershell輸入以下命令:
java -jar mongodb-file-server.jar

兩個jar包啟動都不報錯則部署成功

4.驗證:

打開瀏覽器訪問地址

前臺:http://localhost 后臺:http://localhost:8082/index.html

在后臺添加數(shù)據(jù)查看是否在前臺正確展示

PS-其他說明

  • 本項目使用SpringDataJpa自動構(gòu)建數(shù)據(jù)庫表,啟動項目會自動生成表結(jié)構(gòu),無需您手動創(chuàng)建
  • 啟動不能自動構(gòu)建表,并且報錯"Specified key was too long; max key length is xxx bytes"的請保證您的MySQL版本為5.X,并且修改您的數(shù)據(jù)庫編碼字符集為utf8 – UTF-8 Unicode
  • 項目使用Redis存儲Session會話
  • 項目使用MongoDB作為小型文件存儲數(shù)據(jù)庫
  • 項目中推薦算法部分的實現(xiàn)需要評分?jǐn)?shù)據(jù)支撐,請登錄不同用戶為景點提交評分、評論(每個景點不少于5個評分)

Call me-聯(lián)系方式

  • E-mail:824247231@qq.com
  • QQ:824247231
  • QQ群:696852484

總結(jié)

以上是生活随笔為你收集整理的Java旅游网站源码+页面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。