web前端实验5

实 验 报 告
课 程 Web前端应用开发 实验项目 Jquery AJAX编程 成 绩
专业班级 班内序号 指导教师
姓 名 学 号 实验日期
实验目的及要求:
(1) 理解和掌握Jquery AJAX的get方式请求
(2) 理解和掌握Jquery AJAX的post方式提交
(3) 理解和掌握vue axios的前后端数据交互请求

服务器接口测试地址:
http://114.67.241.121:8088/swagger-ui.html

接口使用说明:

点开“用户管理”下“用户登录”,“try it out”

输入接口参数 username:admin password:123456。点击execute

查看返回结果,token为当前用户的身份令牌

复制身份令牌,点击页面右上角的“Authorization”,粘贴后点击按钮“Authorize”

点击“Close”关闭弹窗。
测试其他接口,输入相关参数,点击“execute”即可正常运行。

实验内容:
1、设计登录界面,输入账号、密码(测试账号:admin 密码:123456)后调用服务端Api接口进行身份验证验证。登录成功记录所返回的身份令牌,登录失败给出相应反馈提示。
 接口地址:http:// 114.67.241.121:8088/user/login
 请求方式:post
 接口参数

 返回数据

运行截图

代码:

2.登录成功进入学生管理界面,调用Api接口获取所有学生信息,并设计界面加载显示数据。
 接口地址:http:// 114.67.241.121:8088/stu/list
 请求方式:get
 请求头:
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌
 接口参数:无
 返回数据
请求头未携带登录成功所返回的token

请求头中携带当前登录用户的token身份令牌

运行截图

代码:

3.点击“添加”按钮进入添加界面,完成相关信息输入后,调用Api接口保存数据信息。
 接口地址:http:// 114.67.241.121:8088/stu/add
 请求方式:post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌

 接口参数

 返回结果

运行截图

代码:

4.点击“修改”按钮进入修改界面,读取当前学生信息,输入修改后数据后保存完成数据信息更新。
 接口地址:http:// 114.67.241.121:8088/stu/edit
 请求方式:post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌

 接口参数

 返回结果

运行截图

代码:

5.点击“删除”按钮请求服务端删除数据接口,在服务端数据成功删除后,移除表格中数据行。
 接口地址:http:// 114.67.241.121:8088/stu/del
 请求方式:Post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌
 接口参数

 返回结果

运行截图

代码:

此次实验年利用了jquery、ajax以及bootstrap,项目目录结构如下:
在这里插入图片描述
登录页面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01登录界面</title>
    <link rel="stylesheet" href="bootstrap.min.css">
    <script src="jquery.min.js"></script>
    <style>
        .login {
            width: 600px;
            margin: 120px auto;
        }
    </style>

    <script>
        $(function () {
            // 登录
            login()

            function login() {
                $('#formLogin').on('submit', function (e) {
                    e.preventDefault()
                    const data = $(this).serialize()
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/user/login',
                        data: data,
                        success: function (reg) {
                            console.log(reg)
                            if (reg.code === 200) {
                                // console.log(reg.data.token)
                                location.href = './02学生管理界面.html'
                                localStorage.setItem('token', reg.data.token)
                                return reg.data.token//登录成功返回身份令牌

                            } else {
                                alert('登录失败!')
                                return null


                            }
                        }
                    })
                })
            }
        })


    </script>
</head>

<body>

    <div class="login">
        <div class="panel panel-primary">
            <div class="panel-heading">
                <h3 class="panel-title">用户登录</h3>
            </div>
            <form class="panel-body" id="formLogin">
                <div class="input-group">
                    <div class="input-group-addon">账号</div>
                    <input type="text" class="form-control" name="username" placeholder="请输入账号">
                </div>
                <div class="input-group">
                    <div class="input-group-addon">密码</div>
                    <input type="password" class="form-control" name="password" placeholder="请输入密码">
                </div>
                <button type="submit" class="btn btn-primary">登录</button>

            </form>
        </div>
    </div>


</body>

</html>

学生管理页面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02学生管理界面</title>
    <link rel="stylesheet" href="bootstrap.min.css">
    <script src="jquery.min.js"></script>
    <script src="bootstrap.min.js"></script>
    <style>
        th,
        td {
            text-align: center;
        }
    </style>
    <script>
        $(function () {
            // 渲染页面
            getStuList()

            // 获取身份令牌
            const token = localStorage.getItem('token')


            // 点击添加学生(模态框这里用的有问题!!!)
            $('#btnAdd').on('click', function () {
                $('#myModalAdd').modal()
                //获取表单数据(新增学生信息data)
                $('#formAdd').on('submit', function (e) {
                    e.preventDefault()
                    // 还可以对用户的输入进行限制(不能为空等)
                    const data = {
                        stuaddess: $('#formAdd input[name=stuaddess]').val(),
                        stugender: $('#formAdd input[name=stugender]').val(),
                        stugrade: $('#formAdd input[name=stugrade]').val(),
                        stumajor: $('#formAdd input[name=stumajor]').val(),
                        stuname: $('#formAdd input[name=stuname]').val(),
                        stunative: $('#formAdd input[name=stunative]').val(),
                        stuno: $('#formAdd input[name=stuno]').val(),
                        stuphone: $('#formAdd input[name=stuphone]').val(),
                    }//data这时是JS对象
                    // 要转成JSON字符串
                    const t = JSON.stringify(data)
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/stu/add',
                        contentType: 'application/json',
                        headers: {
                            Authorization: token
                        },
                        data: t,//JSON格式
                        success: function (reg) {
                            if (reg.code === 200) {
                                console.log('添加成功!');
                            } else {
                                return alert('添加失败!')
                            }
                            // 重新渲染界面
                            getStuList()
                            // 表单清空
                            $('#formAdd')[0].reset()
                            $('#chadiao').click()
                        }
                    })
                })


            })
            $('#btnAddoff').on('click', function () {
                $('#formAdd')[0].reset()
                $('#myModalAdd #chadiao').click()
            })




            // 获取所有学生信息,渲染在页面上
            function getStuList() {
                const token = localStorage.getItem('token')
                $.ajax({
                    type: 'GET',
                    url: 'http://114.67.241.121:8088/stu/list',
                    // header请求头携带变量:Authorization???!!!
                    headers: {
                        'Authorization': token
                    },
                    data: {},
                    success: function (reg) {
                        // console.log(reg.data)
                        if (reg.code === 200) {//请求成功
                            // 先清空原来渲染的
                            $('tbody').empty()
                            $.each(reg.data, function (i, ele) {
                                // 再一一渲染在页面上
                                const tr = $(`
                            <tr>
                                <td>${ele.stuid}</td>
                                <td>${ele.stuno}</td>
                                <td>${ele.stuname}</td>
                                <td>${ele.stugender}</td>
                                <td>${ele.stugrade}</td>
                                <td>${ele.stumajor}</td>
                                <td>${ele.stuphone}</td>
                                <td>${ele.stuaddess}</td>
                                <td>${ele.stunative}</td>
                                <td><a href="javascript:;" data-idModify=${ele.stuid} id='modify'>修改</a></td>
                                <td><a href="javascript:;" data-id=${ele.stuid} id='move'>删除</a></td>
                            </tr>
                            `)
                                $('tbody').append(tr)
                            })
                        } else {
                            return alert('数据获取失败!')
                        }


                    }
                })
            }

            // 删除(删除完之后重新渲染)
            $('tbody').on('click', '#move', function () {
                const stuId = $(this).attr('data-id')
                $.ajax({
                    type: 'POST',
                    url: 'http://114.67.241.121:8088/stu/del?stuid=' + stuId,
                    contentType: 'application/json; charset=utf-8',
                    headers: {
                        Authorization: token
                    },
                    // data: stuId,
                    success: function (reg) {
                        if (reg.code === 200) {//删除成功
                            getStuList()
                        } else {
                            return alert('删除失败!')
                        }
                    }
                })

            })

            // 修改
            $('tbody').on('click', '#modify', function () {
                const stuId = $(this).attr('data-idModify')
                console.log(stuId);
                $('#myModalModify').modal()
                $('#formModify').on('submit', function (e) {
                    e.preventDefault()
                    // 还可以对用户的输入进行限制(不能为空等)
                    const data = {
                        stuaddess: $('#formModify input[name=stuaddess]').val(),
                        stugender: $('#formModify input[name=stugender]').val(),
                        stugrade: $('#formModify input[name=stugrade]').val(),
                        stumajor: $('#formModify input[name=stumajor]').val(),
                        stuname: $('#formModify input[name=stuname]').val(),
                        stunative: $('#formModify input[name=stunative]').val(),
                        stuno: $('#formModify input[name=stuno]').val(),
                        stuphone: $('#formModify input[name=stuphone]').val(),
                    }//data这时是JS对象
                    // 要转成JSON字符串
                    const t = JSON.stringify(data)
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/stu/edit',
                        contentType: 'application/json',
                        headers: {
                            Authorization: token
                        },
                        data: t,//JSON格式
                        success: function (reg) {
                            console.log(reg)
                            if (reg.code === 200) {
                                console.log('修改成功!');
                            } else {
                                return alert('修改失败!')
                            }
                            // 重新渲染界面
                            getStuList()
                            // 表单清空
                            $('#formModify')[0].reset()
                            $('#myModalModify #chadiao').click()
                        }
                    })
                })
            })

        })
    </script>
</head>

<body>

    <div class="panel panel-primary">
        <div class="panel-heading">
            <h3 class="panel-title">学生管理</h3>
        </div>
        <div class="panel-body">
            <!-- 这里写个新增学生信息的模态框 -->
            <!-- 添加学生信息按钮 -->
            <button type="button" class="btn btn-success" id="btnAdd">添加</button>


            <!-- 这里是添加模态框 -->
            <div class="modal fade" id="myModalAdd" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <!-- 这里是模态框标题 -->
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                                    aria-hidden="true" id="chadiao">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">添加学生信息</h4>
                        </div>
                        <!-- 这里是模态框内表单内容 -->
                        <div class="modal-body">
                            <form id="formAdd">
                                <div class="input-group">
                                    <div class="input-group-addon">学号</div>
                                    <input type="text" class="form-control" placeholder="请输入学号" name="stuno">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">姓名</div>
                                    <input type="text" class="form-control" placeholder="请输入姓名" name="stuname">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">性别</div>
                                    <input type="text" class="form-control" placeholder="请输入性别" name="stugender">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">年级</div>
                                    <input type="text" class="form-control" placeholder="请输入年级" name="stugrade">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">专业</div>
                                    <input type="text" class="form-control" placeholder="请输入专业" name="stumajor">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">联系电话</div>
                                    <input type="text" class="form-control" placeholder="请输入联系电话" name="stuphone">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">住址</div>
                                    <input type="text" class="form-control" placeholder="请输入住址" name="stuaddess">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">户籍</div>
                                    <input type="text" class="form-control" placeholder="请输入户籍" name="stunative">
                                </div>
                                <!-- 这里是表单内关闭/保存按钮 -->
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-default" id="btnAddoff">关闭</button>
                                    <button type="submit" class="btn btn-primary" id="btnAddSave">保存</button>
                                </div>
                            </form>
                        </div>

                    </div>
                </div>
            </div>

            <!-- 这里是修改模态框 -->
            <div class="modal fade" id="myModalModify" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <!-- 这里是模态框标题 -->
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                                    aria-hidden="true" id="chadiao">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">修改学生信息</h4>
                        </div>
                        <!-- 这里是模态框内表单内容 -->
                        <div class="modal-body">
                            <form id="formModify">
                                <div class="input-group">
                                    <div class="input-group-addon">学号</div>
                                    <input type="text" class="form-control" placeholder="请输入学号" name="stuno">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">姓名</div>
                                    <input type="text" class="form-control" placeholder="请输入姓名" name="stuname">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">性别</div>
                                    <input type="text" class="form-control" placeholder="请输入性别" name="stugender">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">年级</div>
                                    <input type="text" class="form-control" placeholder="请输入年级" name="stugrade">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">专业</div>
                                    <input type="text" class="form-control" placeholder="请输入专业" name="stumajor">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">联系电话</div>
                                    <input type="text" class="form-control" placeholder="请输入联系电话" name="stuphone">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">住址</div>
                                    <input type="text" class="form-control" placeholder="请输入住址" name="stuaddess">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">户籍</div>
                                    <input type="text" class="form-control" placeholder="请输入户籍" name="stunative">
                                </div>
                                <!-- 这里是表单内关闭/保存按钮 -->
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-default" id="btnModifyoff">关闭</button>
                                    <button type="submit" class="btn btn-primary" id="btnModifySave">保存</button>
                                </div>
                            </form>
                        </div>

                    </div>
                </div>
            </div>


            <!-- 这里再来个查询的输入框,做过滤查询(可能要用到浮动) -->

            <!-- table -->
            <table class="table table-bordered table-hover table-responsive">
                <thead>
                    <tr class="active">
                        <th>id</th>
                        <th>学号</th>
                        <th>姓名</th>
                        <th>性别</th>
                        <th>年级</th>
                        <th>专业</th>
                        <th>联系电话</th>
                        <th>住址</th>
                        <th>户籍</th>
                        <th colspan="2">操作</th>
                    </tr>
                </thead>
                <tbody>
                    <!-- <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td><a href="javascript:;">修改</a></td>
                        <td><a href="javascript:;">删除</a></td>
                    </tr> -->
                </tbody>
            </table>
        </div>


    </div>



</body>

</html>
文档: http://doc.wuguokai.cn/s/xPq1iNw_v
http://chat4.wuguokai.cn
79783435
https://blog.csdn.net/u010436243/article/details/130155724

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/14204.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis可视化工具-Another Redis Desktop Manager 安装与连接哨兵集群

目录 一、下载安装 1.1 下载 1.2 安装 二、使用 2.1 新建连接 2.2 新增数据 2.3 应用设置 2.3.1深色模式、语言 2.3.2多个连接的颜色标记 一、下载安装 Another Redis DeskTop Manager 是 Redis 可视化管理工具&#xff0c;体积小&#xff0c;完全免费。最重要的是稳定…

低代码平台名声臭,用起来却真香——60%开发者不敢承认

群体盲从意识会淹没个体的理性&#xff0c;个体一旦将自己归入该群体&#xff0c;其原本独立的理性就会被群体的无知疯狂所淹没。——《乌合之众》 不知道从什么时候开始&#xff0c;“低代码不行”的论调充斥着整个互联网圈子&#xff0c;csdn、掘金、知乎、B站、脉脉……到处…

面试华为,花了2个月才上岸,真的难呀····

花2个月时间面试一家公司&#xff0c;你们觉得值吗&#xff1f; 背景介绍 美本计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三暑假回国的时间比…

32岁阿里P7,把简历改成不知名小公司,学历改成普通本科,工作内容不变,投简历全挂!...

hr靠什么来招人&#xff1f; 一位猎头讲述了自己和朋友打赌的故事&#xff1a; 朋友在阿里云&#xff0c;32岁&#xff0c;P7&#xff0c;他把简历上的公司改成不知名&#xff0c;学历改成普通本科&#xff0c;工作内容不变&#xff0c;结果投其他公司&#xff08;比如京东&…

Spring Boot异步任务、异步消息

目录 1.异步任务 1.1.概述 1.2.使用 2.异步消息 2.1.概述 2.2.使用 1.异步任务 1.1.概述 举一个例子&#xff0c;我现在有一个网上商城&#xff0c;客户在界面点击下单后&#xff0c;后台需要完成两步&#xff1a; 1.创建客户订单 2.发短信通知客户订单号 这里面第2…

【hello Linux】理解文件系统

目录 创建文件的过程&#xff1a; 删除文件的过程&#xff1a; 创建目录的过程&#xff1a; 查看inode编号&#xff1a; 硬链接 软链接 Linux&#x1f337; 我们知道文件所有数据 文件内容 文件属性信息&#xff1b; 未打开的文件是被存放到磁盘/固态硬盘中的&#xff1b; …

《前端bug齁逼多,真假开发说》2023/4/10-2023/4/18问题汇总

1 高德地图 运行抱错 INVALID_USER_SCODE 这里是错误信息对应原因 错误信息列表-参考手册-地图 JS API | 高德地图API 这里是高德地图api设置说明 准备-入门-教程-地图 JS API | 高德地图API 如果你自己能排查出错误 那不用看我的&#xff0c;如果都写的对还是抱错…

1686_MATLAB处理Excel文件

全部学习汇总&#xff1a; GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral …

非常详细的阻抗测试基础知识

编者注&#xff1a;为什么要测量阻抗呢&#xff1f;阻抗能代表什么&#xff1f;阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师&#xff0c;都在关注各类器件的阻抗&#xff0c;本文非常值得一读。全文13000多字&#…

基于html+css的图片展示17

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2023年4月-近期看书

复习书记 用于读书 文章目录 复习书记一、(2001)控制工程基础二、(3001)交通管理与控制三、(1001)英语 一、(2001)控制工程基础 学习这本书的前6章节。 参看视频链接&#xff1a; https://www.bilibili.com/video/BV1Sb411q7jU?p8&spm_id_frompageDriver&vd_source…

数字化转型危与机,20年老厂的升级之路

“投资大、周期长、见效慢”&#xff0c;是每一家企业在考虑数字化战略时&#xff0c;都会纠结的问题。 打江山容易&#xff0c;守江山难 企业在快速扩张的过程中&#xff0c;往往可以不需要过多的考虑细节的问题&#xff0c;跑马圈地的打法会更加有效。 但是市场占有量开始饱…

瀚高股份吕新杰:创新开源双驱动,躬耕国产数据库

作者 | 伍杏玲 近年来&#xff0c;国际形势不断变幻&#xff0c;也给人们带来巨大警示&#xff1a;关键核心技术是买不来、讨不来的&#xff0c;中国科技企业需寻找研发自强之路。 瀚高基础软件股份有限公司&#xff08;简称瀚高股份&#xff09;专注数据库十八年&#xff0c;始…

大厂面试-算法优化:冒泡排序你会优化吗?

关注公众号&#xff1a;”奇叔码技术“ 回复&#xff1a;“java面试题大全”或者“java面试题” 即可领取资料 原文&#xff1a;冒泡排序及优化代码 https://blog.csdn.net/weixin_43989347/article/details/122025689原文&#xff1a;十大经典排序算法 https://frxcat.fun/p…

史上最详细的八大排序详解!(建议收藏)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

问题排查记录-ffmpeg链接libavfilter和libavcodec:未定义的引用

目录 一、问题背景 二、问题现象 2.1 ffmpeg测试例程 2.2 编译脚本 2.3 错误提示 三、问题排查 3.1 关于提示找不到“stdio" "iostream"头文件的问题 3.1.1查看工具链头文件检索位置 3.1.2 根据工具链路径查找头文件 3.1.3 在编译脚本中指定头文件路径…

第一章 Maven概述

第一节 为什么要学习Maven&#xff1f; maven-作为依赖管理工具 ①jar 包的规模 随着我们使用越来越多的框架&#xff0c;或者框架封装程度越来越高&#xff0c;项目中使用的jar包也越来越多。项目中&#xff0c;一个模块里面用到上百个jar包是非常正常的。 比如下面的例子…

Flex布局

flex是 W3C 提出的一种新的布局方案 当我将某一元素设置为 display&#xff1a;flex 时&#xff0c;这个元素所包含的直接子元素就成为了我的子民 但是我发现我无法控制我的子民&#xff0c; 首先我要解决的是我要控制子民的方向 flex-direction: row 以行排列row-reverse…

Linux-初学者系列2——用户组管理和权限管理

用户组管理和权限管理 Linux-初学者系列2_用户组管理和权限管理一、所有者1、查看文件的所有者指令 2、修改文件所有者指令实操 二、组创建语法指令&#xff1a;实操&#xff1a; 三、所在组1、查看文件/目录所在组基本指令&#xff1a;实操&#xff1a; 2、修改文件所在组基本…

在当前互联网行情下,Android想转音视频开发,会有前景吗?

前言 近年来&#xff0c;由于三年疫情的影响&#xff0c;很多公司都开始陆陆续续的在裁员&#xff0c;Android开发工作岗位也是&#xff0c;可能有些从事Android开发的朋友还没有意识到&#xff0c;Android开发岗位正在变少&#xff0c;求职者&#xff0c;僧多粥少&#xff0c…
最新文章