【项目】- 在线音乐服务器

该项目实现了在线音乐服务器,包括音乐操作、喜好管理等功能。技术上涉及设计简单的web服务器、MySql数据库操作、Http协议理解及Servlet使用。首先设计实体类和数据库表,接着实现数据库接口与操作,使用servlet和json完成前后端交互。项目后期可扩展MV功能,并强调代码的单元测试、数据库编程熟练度和API设计清晰度的重要性。
摘要由CSDN通过智能技术生成

项目功能:
对音乐的简单操作
添加喜欢的歌曲
对喜欢的歌曲进行基本的操作

项目技术:
设计简单的web服务器
对MySql的基本操作
Http的相关理解
Servlet的使用

项目准备:
1、实体类的设计及建立数据库:
主要涉及到两个实体:用户和音乐
涉及到的表:
音乐表:

CREATE TABLE `music` (  
`id` int PRIMARY KEY  AUTO_INCREMENT,  
`title` varchar(50) NOT NULL,  
`singer` varchar(30) NOT NULL,  
`time` varchar(13) NOT NULL,  
`url` varchar(100) NOT NULL, 
`userid` int(11) NOT NULL);

用户表:

CREATE TABLE `user` (  
`id` INT PRIMARY KEY AUTO_INCREMENT,  
`username` varchar(20) NOT NULL,  
`password` varchar(32) NOT NULL,  
`age` INT NOT NULL,  
`gender` varchar(2) NOT NULL, 
`email` varchar(50) NOT NULL);

喜欢表:

CREATE TABLE `lovemusic` (  
`id` int PRIMARY KEY  AUTO_INCREMENT,  
`user_id` int(11) NOT NULL,  
	`music_id` int(11) NOT NULL);

2、相关接口的设计
接口设计的合理,后续代码对HTTP的拆分,效率更高。
重点要清楚每个请求的类型、内容和需要返回的响应的内容。

项目编写:
1、数据库的操作
在这一部分使用了sql语句以及MySql的JDBC编程
(1)连接数据库
需要使用Database类进行连接,封装建立连接和断开连接的过程
(2)创建实体类:用户和音乐
(3)对数据库进行基本的增删改查,拼装相关的sql语句并执行。
(4)对数据库的操作进行单元测试。

2、接口的实现
在这一部分使用到了servlet和简单的json
(1)json
使用JackSon库中的ObjectMapper类完成json的解析和构造,

public static void main(String[] args) throws JsonProcessingException { 
ObjectMapper objectMapper = new ObjectMapper(); 
Person person = new Person(1, "111", "111"); 
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString); 
}

将person对象转换为了json最后返回。

(2)servlet
根据接口的设计,最后实现servlet,完成前后端的交互。

@WebServlet("/loginServlet") //设计api时,设计的请求内容
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("application/json;charset=utf-8");
        String username = req.getParameter("username");//获取请求中的数据
        String password = req.getParameter("password");

        User loginUser = new User();//构建响应的内容
        loginUser.setUsername(username);
        loginUser.setPassword(password);
        UserService userService = new UserService();
        User user = userService.login(loginUser);

        Map<String,Object> return_map = new HashMap<>();

        if(user != null) {
            System.out.println("登陆成功!");
            req.getSession().setAttribute("user",user);
            return_map.put("msg",true);
        }else {
            System.out.println("登陆失败");
            return_map.put("msg",false);
        }

        //把return_map返回前端
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(resp.getWriter(),return_map);
    }
}

项目拓展
后期可以完成MV的功能实现

项目总结
每一阶段的代码设计完成之后都需要进行单元测试。
数据库编程中的代码需要熟练牢记。
设计Api时,要理解清楚请求和响应的内容。
编写代码要尽量做到高内聚低耦合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值