来啦来啦,一个星期中最终要的时刻来了,基于Tomcat服务器上的网易云项目来了。小编这都几天没更新,是因为小编是一个在校的学生,目前在武汉一家Java培训机构培训,想来的可以找小编免费介绍,听说最近几天报名有优惠,python&Java都可以找小编了解,好了广告打完了我们直接进入主题吧!!!!!!!!!!!!!!!!

小编还是一样给出项目的结构图,大家可以瞅一眼

小编也是一个学生,所以呢前端页面是偷我们培训机构的,感觉挺好的,其次呢?小编使用的技术是Java做后端,html+css做的前端,脚本则是JS,数据库当然是mysql,其他没有了,小编写的代码有点多,可以给后台代码给各位看看,可能比较菜,里面也有点功能没写完,欢迎各位大佬指导.

登录后台LongServlet.java 

package com.wxsc.controller;import com.wxsc.dao.*;
import com.wxsc.pojo.US;
import com.wxsc.pojo.User;
import com.wxsc.pojo.song;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;/*** @author 张宗臣* @version 1.0* @date 2021/12/6 0006 10:07*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置编码req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 获取请求参数String username = req.getParameter("username");String pwd = req.getParameter("password");// dao层userDao userDao = new UserDaoImpl();// 用户User u = userDao.Login(username,pwd);USDao usDao = new USDaoLmpl();//用户--歌曲SongDao songDao = new SongDaoLmpl();// 歌曲// 如果登陆成功,用户的信息绑定到会话// 获得当前用户的歌曲信息if (u!=null){HttpSession session  = req.getSession();session.setAttribute("user",u);// 查询用户的歌曲// 先获得当前用户的歌曲id集合List<Integer> ids = usDao.findByUid(u.getId());// 再根据id集合获得歌曲集合List<song> songs = songDao.findBySidList(ids);System.out.println(songs);session.setAttribute("songs",songs);req.getRequestDispatcher("main.jsp").forward(req,resp);}else {resp.sendRedirect("login.html");}}
}

添加歌曲的后台 AddSongServlet.java

package com.wxsc.controller;import com.wxsc.dao.SongDao;
import com.wxsc.dao.SongDaoLmpl;
import com.wxsc.pojo.song;import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import javax.sound.midi.Soundbank;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Timestamp;
import java.util.Date;/*** @author 张宗臣* @version 1.0* @date 2021/12/5 0005 17:05* 上传歌曲的Servlet*/
//识别上下文件的注解
@MultipartConfig
@WebServlet("/addSong")
public class AddSongServlet  extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置编码req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 上传文件,获得文件上传的信息[fileName-value location-value upLocadTime-value,size-value] 返回一个不完整的songsong s = uploadFile(req);// 获得歌手 专辑,风格String singer = req.getParameter("singer");s.setSinger(singer);String album  = req.getParameter("album");s.setAlbum(album);String style = req.getParameter("style");s.setStyle(style);System.out.println(singer+album+style);// 访问数据库,添加到数据库中SongDao songDao = new SongDaoLmpl();songDao.addSong(s);// 添加成功页面req.getRequestDispatcher("index.jsp").forward(req,resp);}private song uploadFile(HttpServletRequest req) throws IOException, ServletException {// 获得请求头的封装的Part对象----->封装请求文件的信息// Content-Disposition :form-data;name = file ;filename="程辰 - 好像在爱你.mp3"Part part = req.getPart("file");// part本质自己不能获取文件名,但可以的到文件头//可以通过 请求头的信息,进而获取上传文件的信息,进而截取String message = part.getHeader("Content-Disposition");// subString(最后一个等号加上7 刚好是文件名,到文件的末尾的位置) 函数是取前不取后String fileName = message.substring(message.lastIndexOf("=")+7,message.length()-1);System.out.println(fileName);// 获得输入流InputStream in = part.getInputStream();// 构建输出流String location = "D:\\Wyy_Music"+ File.separator+fileName;FileOutputStream fos = new FileOutputStream(location);//IO操作byte[] b = new byte[1024];int len = 0;while ((len = in.read())!=-1){fos.write(b,0,len);}//关闭in.close();fos.close();// 上传时间Timestamp uploadTime = new Timestamp(System.currentTimeMillis());File file  = new File(location);long size = file.length();song s = new song();s.setSize(size);s.setUploadTime(uploadTime);s.setLocation(location);s.setName(fileName.substring(0,fileName.lastIndexOf(".")));return s;}}

删除的后台代码 DeleteServlet.java

package com.wxsc.controller;import com.alibaba.fastjson.JSON;
import com.wxsc.dao.SongDao;
import com.wxsc.dao.SongDaoLmpl;
import com.wxsc.dao.USDao;
import com.wxsc.dao.USDaoLmpl;
import com.wxsc.pojo.US;
import com.wxsc.pojo.User;
import com.wxsc.pojo.song;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;/*** @author 张宗臣* @version 1.0* @date 2021/12/7 0007 19:22*/
@WebServlet("/deleteSong")
public class DeleteServlet  extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置编码req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 获得请求参数int id = Integer.parseInt(req.getParameter("sid"));// daoSongDao songDao = new SongDaoLmpl();USDao usDao = new USDaoLmpl();boolean flag = songDao.deleteById(id);if (flag){HttpSession session = req.getSession();User u  = (User) session.getAttribute("user");// 重新绑定会话里面的歌曲信息,因为歌曲发生了更新List<Integer> ids = usDao.findByUid(u.getId());// 根据歌曲id集合获得歌曲对象集合List<song> songs = songDao.findBySidList(ids);session.setAttribute("songs",songs);// 转发resp.getWriter().println(JSON.toJSONString(true));}else {resp.getWriter().println(JSON.toJSONString(false));}}
}

还有的代码小编就不意译为ctrl c v了想要的可以联系小编qq:3265857641或者微信Q3265857641小编第一时间给你解答,当然小编也为你们准备好了网盘链接,

链接:https://pan.baidu.com/s/1F7GdCAYANheYp5IoU9G9Pg 提取码:ns4q

但是小编感觉可以加一下小编,不会还可以第一时间为你解答,或者你对Java十分热爱亦或者你对自己的控制力不相信,可以询问小编,小编可以给你安排免费的VIP试听课,不满意不报名

Javaweb网易云音乐相关推荐

  1. 在Ubuntu 14.04 64bit上安装网易云音乐Linux版本(最新官方版)

    在Chrome浏览器中,登陆官网下载Linux版本中的Ubuntu 16.04 64bit的deb包 http://music.163.com/#/download 下载完成后,双击该deb包即可自动 ...

  2. 习惯了收听虾米酷狗网易云音乐的你,好歹知道一下音乐推荐到底是咋回事吧

    翻译 | reason_ W编辑 | suiling 营长按: 不好意思,被标题党了吧 其实,我们全篇讲的是坐音乐推荐的始祖Spotify的音乐推荐系统. 搞懂了这货的算法,还有啥是你不知道的. 不说 ...

  3. 网易云音乐的消息队列改造之路

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 十年文案老司机,不如网易评论区. 网易云音乐自2013年上线后,业务保持了高速增长.云音乐除了 ...

  4. 网易云音乐消息队列改造之路

    网易云音乐从 13 年 4 月上线以来,业务和用户突飞猛进. 后台技术也从传统的 Tomcat 集群到分布式微服务快速演进和迭代,在业务的不断催生下,诞生了云音乐的 RPC,API 网关和链路跟踪等多 ...

  5. 关于网易云音乐爬虫的api接口?

    抓包能力有限,分析了一下网易云音乐的一些api接口,但是关于它很多post请求都是加了密,没有弄太明白.之前在知乎看到过一个豆瓣工程师写的教程,但是被投诉删掉了,请问有网友fork了的吗?因为我觉得他 ...

  6. ubuntu16.04 安装网易云音乐

    最爱的播放器 网易云音乐 哈哈,刚刚折腾了双系统,立马开始了软件安装. 网易云音乐从官网下载对应的 64 位版本,我下载的是 netease-cloud-music_1.0.0_amd64_ubunt ...

  7. 11月13日科技联播:支付宝上线首张电子离婚证;网易云音乐敲定新一轮融资

    继电子结婚证后,支付宝再上线电子离婚证:网易云音乐新一轮融资敲定,超6亿美元继续加码音乐市场:亚马逊50亿美元新总部尘埃落定,将分设两地:锤子身陷资金链再被曝裁员,罗永浩回应将起诉不实报导,一起来看今 ...

  8. 实现一个网易云音乐的 BottomSheetDialog

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  9. Vue.js全家桶高还原网易云音乐(Windows PC版)

    项目地址 由于网易云的api限制,部分功能可能会失效,如有需要可以clone项目下来在本地运行,如果api炸了,麻烦在评论中告知一下我 因为做的是PC端 所以请在电脑端访问 源码地址 项目预览(评论和 ...

  10. Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路...

     Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路 先看一看我的代码运行结果. 代码运行起来初始化状态: 点击开始按钮,唱片机的机械臂匀速接近唱片磁盘,同时唱片磁盘也 ...

最新文章

  1. OUTER在mysql_MySQL不支持OUTER APPLY
  2. 90后「V神」封神之路:4岁学编程,19岁创办以太坊,4年十亿身家!
  3. 如何取消支付宝工资理财
  4. [转]如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误...
  5. iOS:ShareSDk的分享
  6. mysql - 要问 varchar 能存几个汉字? 能存几个 字母? 能存几个数字?请看下文讲解 (Java)
  7. 如何为SAP Cloud for Customer Lead页面配置自定义的Source字段
  8. 学习生物信息的系列书籍
  9. KVO.非常简单的键值监听模式
  10. 国际电话号码的区号mysql数据表
  11. 如何在Visio中旋转图形
  12. 微信公众号自动回复添加文件
  13. 基于springCloud gateway请求包含url包含{}大括号特殊字符的问题
  14. linux安装gt620驱动下载,Debian6安装Nvidia GT 620显卡驱动
  15. VUE + 微信分享
  16. iOS Charts
  17. 用浏览器收藏夹的书签保存javascript的简单脚本
  18. 海外跨境电商商城源码-进出口电商平台网站-多语言多商户平台
  19. Unknown custom element: <HeaderTop> - did you register the component correctly?
  20. STM32内部Flash读写问题

热门文章

  1. 这可能是最详细的Arduino制作4*4光立方教程(原创)
  2. 存储器的分类及层次结构
  3. Spring MVC拦截器配置以及统一登陆校验实现
  4. native2ascii的使用
  5. 魔方栈源码-网站在线玩魔方源码-云魔方
  6. cmd ntsd命令
  7. Silverlight 下载
  8. 最新VS2012破解 序列号,vs2012旗舰版密钥序列号【收藏】
  9. JAVA——根据QQ群号得到idkey以及QQ群加群链接[网页版本]解决方案
  10. DirectX修复工具使用技巧之三——命令行与配置文件参数介绍