最近闲来无事,就用IDEA编写了一个简单的音乐网站,此网站具有音乐的试听,下载,收藏功能,并且点击收藏时,可以根据用户收藏的音乐信息,进行判定,推荐相类似的歌曲,而且,网站还进行了用户请求过滤,未登录时,仅可进行音乐试听操作,非管理员登录,不能进行后台操作。
项目的源代码已经开源到GitHub:https://github.com/LeeXChen/MusicStation.git
网站示例如下:
网站首页
音乐展示界面:
查找功能可以根据用户选手或者歌曲名,进行模糊查询:
音乐播放界面:
点击收藏时,根据歌曲信息,进行推荐相似音乐:
下载音乐:
我的收藏:
访问出错时的提示(用于过滤通过地址栏进行输入的地址,例如:http://localhost:8080/MusicStation/1231231231312):
非管理员登陆时,禁止访问后台:
管理员登录时的后台管理界面:
相关的数据库建表语句如下:
1.音乐表(此表用于存储音乐相关信息)
songname:歌曲名
singer:歌手
style:音乐风格(用于收藏时推荐相似音乐)
location:歌曲相对位置,对应于项目中web目录下的music文件夹,用于音乐播放及音乐下载,建议根据示例存储音乐和插入mysql语句,否则会报错
img_path:歌曲封面图片的位置,对应于项目中web目录下的static文件夹中的img文件夹,建议根据示例存储图片和插入mysql语句,否则会报错
download_count:音乐下载次数记录
CREATE DATABASE `music` ;
USE `music`;
DROP TABLE IF EXISTS `m_music`;
CREATE TABLE `m_music` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`songname` varchar(200) NOT NULL,
`singer` varchar(20) NOT NULL,
`style` varchar(20) NOT NULL,
`location` varchar(200) NOT NULL,
`img_path` varchar(200) NOT NULL,
`download_count` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `songname` (`songname`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8;
insert into `m_music`(`id`,`songname`,`singer`,`style`,`location`,`img_path`,`download_count`) values (1,'告白气球.mp3','周杰伦','流行','music/流行/','static/img/周杰伦.jpg',14);
2.用户表及管理员账号
CREATE DATABASE `music`;
USE `music`;
DROP TABLE IF EXISTS `m_user`;
CREATE TABLE `m_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(200) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert into `m_user`(`id`,`username`,`password`,`email`) values (1,'admin','admin','[email protected]');
3.用户收藏所对应的表
DROP TABLE IF EXISTS `u_collection`;
CREATE TABLE `u_collection` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`songname` varchar(200) NOT NULL,
`singer` varchar(20) NOT NULL,
`download_count` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
以上就是整个项目的示例,因为只是一个简单的项目,用于巩固所学知识,所以没有运用相关开发框架,不足之处,还望大家不吝赐教。