开发技术

前端:JQuery HTML CSS

后端:JSP+Servlet+JDBC

算法:标签推荐、热门推荐

代码开源地址

特色

推荐算法、注释丰富、纯经典MVC架构

功能

1、用户登录

(1) 用户基本信息展示、修改

(2) 用户收藏列表

(3) 用户听歌记录

2、网站主要实现功能

(1) 热门歌曲推荐

(2) 用户喜欢歌曲推荐

(3) 歌曲排行推荐

① 人气排行(根据听曲人数总量确定)

② 下载排行(根据歌曲下载次数确定)

③ 收藏排行(根据歌曲被收藏的次数确定)

(4) 歌曲搜索

(5) 歌曲评论及展示

(6) 歌曲区分类展示(为歌曲定义标签并分标签展示)

(7) 用户给歌曲打标签(标签是系统推荐的标签,用户只能在其中选择(此标签在整个系统中不起作用,只对于此用户起作用))

3、管理员功能

(1) 管理员页面与普通用户页面展示不同

(2) 上传并管理所有歌曲

① 上传歌曲

② 为歌曲定义标签

③ 删除歌曲

④ 修改歌曲基本信息

(3) 管理用户信息

(4) 管理评论信息

运行截图

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

个性化音乐推荐系统

核心推荐算法代码实现

package com.controller;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import com.entity.SongList;

import com.entity.SongListWithSong;

import com.service.SongListServiceImpl;

import com.service.SongListServiceInter;

import com.service.SongListWithSongServiceImpl;

import com.service.SongListWithSongServiceInter;

/**

* 标签推荐

* @author 29207

*

*/

public class TagsRecommendServlet extends HttpServlet {

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

Map songListTagsNameMap = new HashMap();//存储歌单标签名字和出现次数

java.util.List> songListTagsNameListClassement = new ArrayList>();//存储排序后歌单标签名字和出现次数

PrintWriter out = response.getWriter();

//获取歌单编号

String songListIdString = request.getParameter("songListId");

int songListId = Integer.parseInt(songListIdString);//歌单编号

//声明查询歌单的服务

SongListServiceInter songListService = new SongListServiceImpl();

//用于存放所有歌曲存在的所有歌单

ArrayList allSongLists = new ArrayList();

//查询该歌单中存在的歌曲

//声明songListWithSong(歌曲歌单表服务对象)

SongListWithSongServiceInter songListWithSongService = new SongListWithSongServiceImpl();

//调用方法

ArrayList songListWithSongs = songListWithSongService.selectSongListWithSongOfSongLIstId(songListId);

//遍历,获取其中的歌曲编号

for (SongListWithSong songListWithSong : songListWithSongs) {

int songId = songListWithSong.getSongId();//获取每一个歌曲编号

//根据歌曲编号,查询该歌曲存在在哪些歌单中

ArrayList songFromSongLists = songListWithSongService.selectSongListIdFromSongListWithSongOfSongId(songId);

//遍历,取出每个歌单的歌单编号,根据歌单编号查找歌单

for (SongListWithSong songListWithSong2 : songFromSongLists) {

int oneSongFromsongListId = songListWithSong2.getSongListId();

//根据歌单编号查询歌单信息

SongList oneSongList = songListService.selectSongListOfSongListId(oneSongFromsongListId);

//把该歌单存入allSongLists

allSongLists.add(oneSongList);

}

}

System.out.println("==========我是标签推荐服务=========");

//一个歌单中所有歌曲涉及到的所有歌单为allSongLists

int allSongListsLen = allSongLists.size();

UserSongListRecommendServlet userSongListRecommendServlet = new UserSongListRecommendServlet();

songListTagsNameMap = userSongListRecommendServlet.getSongListTagsNameMap(allSongListsLen, allSongLists, songListTagsNameMap);

songListTagsNameListClassement = userSongListRecommendServlet.songListTagsNameComm(songListTagsNameMap);//标签排序后

int songListTagsNameListClassementLen = songListTagsNameListClassement.size();

JSONObject tagsRecommJsonObject = new JSONObject();

System.out.println("排序后长度:" + songListTagsNameListClassementLen);

if (songListTagsNameListClassementLen == 0) {

out.print("null");

}else {

if (songListTagsNameListClassementLen <= 5) {

for (int i = 0; i < songListTagsNameListClassementLen; i++) {

String tagsRecomm = songListTagsNameListClassement.get(i).getKey();

tagsRecommJsonObject.put(i, tagsRecomm);

}

}else {

for (int i = 0; i < 5; i++) {

String tagsRecomm = songListTagsNameListClassement.get(i).getKey();

tagsRecommJsonObject.put(i, tagsRecomm);

}

}

System.out.println("推荐标签JSON===" + tagsRecommJsonObject);

out.print(tagsRecommJsonObject);

}

}

}

计算机毕设音乐网站系统,计算机毕业设计之JavaWeb个性化音乐推荐系统 音乐网站...相关推荐

  1. 基于java电影评论网站系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java电影评论网站系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java电影评论网站系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈: ...

  2. JAVA宠物商城网站系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA宠物商城网站系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA宠物商城网站系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. 基于JAVA漫画网站系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA漫画网站系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA漫画网站系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  4. java项目-第161期ssm弹幕视频网站系统_ssm毕业设计_计算机毕业设计

    java项目-第161期ssm弹幕视频网站系统_ssm毕业设计_计算机毕业设计 [源码请到资源专栏下载] 今天分享的项目是<ssm弹幕视频网站> 该项目分为2个角色,管理员.用户. 用户可 ...

  5. 基于JAVA住房公积金筹集子系统的网站系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA住房公积金筹集子系统的网站系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA住房公积金筹集子系统的网站系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: ...

  6. Java毕设项目住房公积金筹集子系统的网站系统计算机(附源码+系统+数据库+LW)

    Java毕设项目住房公积金筹集子系统的网站系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm ...

  7. java毕业生设计住房公积金筹集子系统的网站系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计住房公积金筹集子系统的网站系统计算机源码+系统+mysql+调试部署+lw java毕业生设计住房公积金筹集子系统的网站系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  8. Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW)

    Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...

  9. 如何使用Python+Django+Mysql开发个性化职位推荐系统 招聘网站推荐系统 基于用户、项目的协同过滤推荐算法 基于内容、聚类、关联规则推荐算法WebPositionCFRSPython

    如何使用Python+Django+Mysql开发个性化职位推荐系统 招聘网站推荐系统 基于用户.项目的协同过滤推荐算法 基于内容.聚类.关联规则推荐算法WebPositionCFRSPython 一 ...

  10. springboot+mysql电影网站系统-计算机毕业设计源码04876

    摘  要 本次系统设计中,以用户的实际操作感作为整体开发的出发点,结合Java开发语言对软件开发原理,以实际运用作为出发点,以提高心仪电影获取效率为目的,使用SpingBoot框架技术整体开发源程序, ...

最新文章

  1. CSS2.0中文手册(CHM版)
  2. 开发日记-20190506 关键词 汇编语言(五)Hello World!
  3. JavaScript 读取、写入Txt文档
  4. BZOJ3879: SvT【后缀数组+单调栈】
  5. Windows 8 Release Preview 安装秘技两则
  6. 数组,三种初始化和内存分析
  7. java 试题 历届试题 单词分析 题解
  8. 构建azure对话机器人_如何在5分钟内使用Azure创建聊天机器人
  9. boot spring 启动 文本_springboot 选择启动某个配置文件
  10. 【暖*墟】#洛谷网课1.30# 树上问题
  11. 手把手教你使用Bitvise Tunnelier设置SSH代理服务器
  12. JZOJ1205. 帮助Bubu(2017.8B组)
  13. linux火狐插件目录,Firefox的插件目录在哪里?
  14. BF(暴力求解算法)
  15. 销量下降,到底应该怎么分析?!
  16. poj Best Cow Line
  17. 尚品汇_第4章_ 商品spu保存
  18. Oracle的客户端工具
  19. 湖北电信天邑TY1608_S905L3B_MT7668_卡刷固件包
  20. 哈佛管理论丛-谁背上了猴子

热门文章

  1. 1秒把 FLV MOV AVI MKV 3GP WEBM 转去 MP4 完全免费 - 完美教程 超级简单 你没看错
  2. Modbus TCP协议
  3. 扎耶德可持续发展奖在评审会期间公布30名决赛入围者名单
  4. CAD转换PDF格式后文字模糊怎么办?
  5. word转HTML-python第三方包Mammoth
  6. [SVN]svn如何生成patch和打(导入)patch文件的简单方法
  7. 高清MP4芯片方案点评
  8. FarPoint.Web.Spread 那些事
  9. 应用程序无法正常启动(0xc0000022)
  10. 转载一篇超强的手绘MM教程!完全只用Photoshop做出的美女!