WEB应用开发综合实训day9

第八章 MobileNetv3网络详解 本文介绍了基于互补的搜索技术和新颖的架构设计的MobileNets的下一代。MobileNetV3通过硬件感知网络架构搜索(NAS)和NetAdapt算法相结合,针对移动电话CPU进行优化,随后通过新颖的架构改进技术进行了进一步提高。本文开始探索自动化搜索算法和网络设计如何相互协作,以利用互补的方法改进整体技术水平。通过此过程,我们创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用情况。 阅读详情

本节实训内容为layui数据表格、表单、弹出层、文件上传、ajax以及后端SSM框架、细节巨多、一定要勤加练习

  • 分页歌手列表

    • 前端(artistlist.js)
      //加载模块
      layui.use(function() { //亦可加载特定模块:layui.use(['layer', 'laydate', function(){
          //得到各种内置组件
          var layer = layui.layer //弹层
              , laypage = layui.laypage //分页
              , laydate = layui.laydate //日期
              , table = layui.table //表格
          //向世界问个好
          layer.msg('Hello World');
          //执行一个 table 实例
          table.render({
              elem: '#demo'//表格id
              ,height: 600
              ,url: 'artist/list' //返回歌手列表接口
              ,title: '歌手表'
              ,page: true //开启分页,会默认传值page=1  limit=10
              ,toolbar: '#headBar' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
              ,totalRow: true //开启合计行
              ,cols: [[ //表头
                  {type: 'checkbox', fixed: 'left'}
                  // field的取值跟返回实体类的属性一致
                  ,{field: 'aId', title: 'ID',}
                  ,{field: 'aName', title: '歌手名'}
                  ,{field: 'aPhoto', width:120,unresize:true, title: '歌手头像',templet:function (d) {
                          return "<img src="+d.aPhoto+">"
                      }
                  }
                  //自定义行工具栏
                  ,{fixed: 'right',width:180,  align:'center', toolbar: '#barDemo'}
              ]]
          });
      })
      
    • 后端
      @Override
      public ResultVo getArtistList(Integer page, Integer limit) {
          int start = (page-1)*limit;
          try{
              List<TbArtist> artistList = tbArtistMapper.getArtistListByPage(start,limit);
              //分页查询数量
              int length = tbArtistMapper.getArtistCount();
              ResultVo successVo = ResultVo.getSuccessVo("success", artistList);
              successVo.setCount(length);
              return successVo;
          }catch (Exception e){
              e.printStackTrace();
              return ResultVo.getFailVo("fail");
          }
      }
      
  • 添加歌手,跳转页面

    artistlist.js
    //监听头工具栏事件
    // test:是被监听表格的lay-filter的取值
    table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id)
        ,data = checkStatus.data; //获取选中的数据
        // obj.event:被点击按钮的lay-event的取值
        switch(obj.event){
            case 'add':
                layer.open({
                    type:2, //iframe层
                    content:"add_artist",
                    area: ['60%', '60%'],//弹层的宽高
                    shade:0.8,
                    shadeClose:true
                })
                break;
            case 'delete':
                if(data.length === 0){
                    layer.msg('请选择一行');
                } else {
                    layer.msg('删除');
                }
                break;
        };
    });
    
    绘制add_artist.html页面
  • 文件上传

    • 导入文件上传依赖
    • 配置spring-mvc
    • add_artist.js
      layui.use(['upload', 'element', 'layer','form'], function() {
          var $ = layui.jquery
              , upload = layui.upload
              , element = layui.element
              , layer = layui.layer
              , form = layui.form;
      
          //常规使用 - 普通图片上传
          var uploadInst = upload.render({
              elem: '#chooseImg'//绑定上传按钮
              , url: 'artist/upload' //歌手头像上传接口
              //提交参数
              ,data:{
                  //存储文件的文件夹
                  parentName:'img'
              }
              ,field:'uploadFile'//设定文件域的字段名,后端的MultipartFile要跟他一致
              ,accept:'images'//指定只能上传图片
              ,auto:true//选完文件后自动上传
              , before: function (obj) {
                  //上传文件回显
                  obj.preview(function (index, file, result) {
                      $('#demo1').attr('src', result); //图片链接(base64)
                      $("#demo1").css({"width":"160px","height":"160px"})
                  });
              }
              , done: function (res) {//上传成功才会执行的函数
                  //将路径给隐藏的input框赋值
                  $("#aPath").val(res.data)
              }
          });
      
         
      })
      
    • 后端
      ------------------ArtistController---------------------
      /**
           * 歌手头像上传,返回图片存储的相对路径
           */
      @RequestMapping("/upload")
      @ResponseBody
      public ResultVo upload(String parentName, MultipartFile uploadFile, HttpServletRequest request){
      
          return artistService.upload(parentName,uploadFile,request);
      }
      ------------------ArtistService---------------------
      @Override
      public ResultVo upload(String parentName, MultipartFile uploadFile, HttpServletRequest request) {
          try{
              //上传文件并且返回路径
              String filePath = FileUploadUtil.upload(parentName,uploadFile,request);
              return ResultVo.getSuccessVo("success",filePath);
          }catch (Exception e){
              e.printStackTrace();
              return ResultVo.getFailVo("fail");
          }
      }
      
    • 自行封装文件上传工具类(FileUploadUtil)
      /**
       * 文件上传:上传不同类型的文件,要存储到不同的文件夹中
       */
      public class FileUploadUtil {
          public static String upload(String parentName, MultipartFile uploadFile, HttpServletRequest request) {
              //1. 获取项目的根路径
              String basepath = request.getServletContext().getRealPath("/upload/");
              //2. 获取父文件夹路径,并判断是否存在
              // ..../upload/img/
              String parentPath = basepath+parentName+"/";
              File parentFile = new File(parentPath);
              //3. 不存在就创建
              if(!parentFile.exists()){
                  parentFile.mkdirs();
              }
              //4. 生成不重复的文件名称
              // 文件名称不能重复(使用当前毫秒数,但是文件后缀需要获取)
              String fileName = System.currentTimeMillis()+getFileSuffix(uploadFile.getOriginalFilename());
              try {
                  //文件上传
                  uploadFile.transferTo(new File(parentPath+fileName));
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return "upload/"+parentName+"/"+fileName;
          }
          //返回文件后缀  x.x.gif
          public static String getFileSuffix(String originalName){
              //获取最后一个点的下标
              int index = originalName.lastIndexOf(".");
              //从某下标开始截取
              return originalName.substring(index);
          }
      }
      
  • 添加歌手

    • add_artist.js
      // demo1 : 提交按钮 lay-filter的取值
      form.on('submit(demo1)', function(data){
          console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value}
      
          //使用ajax向后端发异步请求
          $.ajax({
              type:"post",//请求方式
              url:"artist/add",//请求地址
              data:data.field,//传递表单字段
              success:function (res) { //后端执行成功之后回来调用的函数
                  // res:后端执行完毕之后返回的结果
                  layer.msg(res.msg);
                  //父窗口重新加载(表格重新加载)
                  window.parent.location.reload();
              }
          })
          return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
      });
      
    • 后端
      ---------------------ArtistController----------------------
      /**
           * 添加歌手
           */
      @RequestMapping("/add")
      @ResponseBody
      public ResultVo add(TbArtist tbArtist){
          ResultVo resultVo = artistService.add(tbArtist);
          return resultVo;
      }
      ---------------------ArtistServiceImpl----------------------
      @Override
      public ResultVo add(TbArtist tbArtist) {
          try{
              tbArtistMapper.insert(tbArtist);
              return ResultVo.getSuccessVo("添加成功");
          }catch (Exception e){
              e.printStackTrace();
              TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
              return ResultVo.getFailVo("添加失败");
          }
      }
      
AI算力网络与通信领域流量分析:优化策略探讨_副本 今天的AI就像一个"超级吃货",每天要"吃"掉海量数据、“消耗"巨量算力——训练一个千亿参数的大模型,可能需要上万块GPU同时工作数周,其间产生的数据传输量足以填满数百万个1TB硬盘。这些GPU和计算节点通过网络连接形成"AI算力网络”,而数据在节点间的流动就是"通信流量"。如果把算力比作AI的"肌肉",那流量就是"血液"——血液不通畅,肌肉再强也使不上劲。 阅读详情

相关推荐

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

Web前端开发技术实验与实践(第3版)储久良编著实训9

实训9 JavaScript基础应用 项目26 改变新闻网页中的字号 页面效果截图 代码截图 项目27 计算任意区间内连续自然数的累加和 页面效果截图 项目28 消息对话框综合应用 代码截图

weixin_45867761的博客 1万+

UE5摄像机抖动全攻略:从Perlin噪点到Sequence实战(附参数调优技巧)

本文深入解析UE5摄像机抖动技术,从Perlin噪点算法到CameraShakeBase蓝图应用,再到Sequence高级控制,提供全面的参数调优技巧。涵盖战斗、爆炸等场景的预设参数,帮助开发者实现专业级抖动效果,提升游戏沉浸感。

weixin_30300225的博客 96

java web实验作业9

这次的java实验没想到写这么久,这还是之前有一点前端知识,,,不说了,各种傻的bug 实现一个模拟计算器 更改文本框中的数字值 document.getElementById("result").value=""; 判断鼠标点击按钮函数为 var isleftnumber=0; var isrightnumber=0; f

DS00HY的小博客 757

Optisystem软件与Matlab软件的联合数据读取

目录 Matlab软件程序编写 Optisystem软件的连接与设置 数据读取结果 Matlab软件程序编写 利用Matlab软件按照下图编写程序,保存为getdata.m文件。 OutputPort1 =InputPort1; fileID=fopen('OSAdata.txt','wt'); fprintf(fileID,'%f\n',OutputPort1.Sampled.Signal); fclose(fileID); Optisystem软件的连接与设置 (以基于线性插值法

Vivian_Chen_的博客 4853

单片机入门说明书:从本质到架构,一文看透MCU核心原理

其实你每天用的洗衣机、刷的智能门锁、开的汽车里,都藏着它的身影。相当于工厂里的“运输轨道”,CPU算出的结果通过总线送到RAM存储,ROM里的程序通过总线传给CPU执行,外设的信号通过总线交给CPU处理,整个过程每秒能重复上百万次,确保各模块协同高效。高端单片机(比如STM32F4系列)还会配备DMA(直接存储器访问)单元,相当于“专用传送带”——不需要CPU干预,就能直接让外设和RAM之间传输数据(比如让ADC采集的温度数据直接存进RAM),大大降低CPU负担,让CPU能专注处理更重要的任务。

IAMIF12的博客 1041

第九章 web安全性入门 实训九

SampleServlet.java package com.demo; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.ht..

欢迎来到我的博客 565

关于对鱼眼相机图片进行畸变校正的两种思路

鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrd​fθ,其中rdr_drd​为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsin⁡θ2rd​2fsinθ/2。

qq_45670407的博客 1546

WEB应用开发综合实训day3

本节实训内容为Spring Web Mvc框架、表单提交、JSON数据转换器 文章目录新建maven-archetype-webapp项目导入SpringMvc依赖配置web.xml创建项目目录配置tomcat运行项目配置spring-mvc.xmlWEB-INF文件夹 新建maven-archetype-webapp项目 不要选择前两天的quickstart项目 导入SpringMvc依赖 pom.xml <!-- https://mvnrepository.com/artifact/org..

weixin_48978100的博客 733

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

weixin_54626591的博客 1万+

C#怼倍福TwinCAT3:ADS协议封装实战(附完整读写源码+避坑清单)

变量名大小写敏感:PLC里定义的是GVL.bStart,你写GVL.BStart绝对读不到;数组访问格式:PLC数组是,C#里读单个元素要写,读整个数组不用写索引;句柄要释放:用创建的句柄,一定要用using包起来,否则会占着资源;PLC必须运行:哪怕变量定义对了,PLC没Run(只是Login)也读不到数据;路由配置:如果上位机和PLC不在一个网段,要在TwinCAT3里添加路由(Router→Edit Routes)。倍福ADS通信其实不难,核心就是“配置对+变量名写对+数据类型匹配”。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 950

WEB应用开发综合实训day7

本节实训内容为Thymeleaf、Mybatis逆向工程、jQuery入门 相关项目下载链接链接:文章目录Thymeleaf前言:如果你只会ajax的话,不建议你直接使用html,因为ajax拿到的数据给html标签赋值的时候非常不方便,我们之前学过jsp,在jsp可以直接把后端数据通过jstl标签进行for循环遍历、if判断等。但是jsp技术比较老,我们使用更好的thymeleaf替换jsp页面进行页面数据显示。thymeleaf相对jsp的优势:jsp对于前端不友好,有大量的java代码,jsp不能单.

weixin_48978100的博客 309

华为OD机试真题 新系统2026-04-01 C语言 实现【空间占用计算】

员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。

MISAYAONE的博客 230

web前端实训day02——html、css部分知识回顾

目录web前端实训day01——html知识回顾04表单案例四总结一、什么是前端二、前端的重要性三、前端的主要结构四、开发工具(顺手就行)五、浏览器(推荐使用谷歌)六、html知识 web前端实训day01——html知识回顾04 表单 <!-- 表单:<form></form> 属性: action:表单提交的地址 method:用于描述表单提交数据的方式,get,post get形式传参:将参数拼接到u

Happy_change的博客 851

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WEB应用开发综合实训day8

本节实训类容为layui数据表格、按钮、结合SSM进行分页查询、级联查询 文章目录首页绘制导入layui复制首页模板并修改PageController分页查询歌曲列表导入fastjson依赖,并配置spring-mvcmusiclist.jsResultVo分页查询后台代码表格信息详细显示自定义按钮查询专辑名称和歌手musiclist.js解析专辑、歌手数据 首页绘制 导入layui 复制首页模板并修改 <link rel="stylesheet" th:href="@{/layui/.

weixin_48978100的博客 349

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

实训学习Day 1 Web漏洞原理与利用

s -t 600 shutdown –a可取消关机计划。

huilang041的博客 754

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

1Day实训:漏洞安全实战,web安全实战

8、输入1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>XXX#,猜解表名。6、输入1’ and (select count(table_name) from information_schema.tables where table_schema=database())>X#,猜解数据库中有多少张表。

2401_82575438的博客 1064

实训day09实训日志

日期 2019年6月 27日 第 9 天 共 10天 实习地点 科技楼423 教学大纲中规定的实习教学内容 校内综合实训是系统讲授微信小程序开发技术,通过小程序开发项目实例来训练学生的实践能力,检验学生对微信小程序开发技术所学知识的综合运用能力的重要环节。每位学...

wolaozhou0617的博客 312

【中软实训】Day01:Java Web开发环境安装与配置&收获与感想

说明:从今日(2019年6月25日)开始,笔者将在宁波中软国际进行实训,这期间,将每日对本博客进行更新,依次来记录每日的学习情况,以及分享自我收获与感悟。 每日实训记录栏:https://blog.youkuaiyun.com/cxh_1231/article/category/9059743 今日记录:Java Web开发环境的安装与配置过程,以及实训首日的收获和感想记录。 0、笔者想说 首先,...

拾年之璐 1967

菜鸟之路Day38一一Web开发综合案例(三)

文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。文件上传前端三要素前端与后端数据交互。

blue的博客 723

python实训day9

今天是实训的最后一天,一眨眼,两周的实训就这么结束了,时间飞快,学到的东西有限,需要课后自己多思考整理练习才能进步。 一.今日内容: 1.scrapy爬虫框架的使用: 一 Scrapy爬虫框架发送请求 ---> 获取响应数据 ---> 解析数据 ---> 保存数据 ** Scarpy框架介绍 ** 1、引擎(EGINE) 引擎负责控制系统所有组件...

weixin_38170853的博客 171

漏洞攻击实战 实训day1

通过 php 探针的信息,判断出该站点使用phpstudy 搭建,因为使用 phpstudy 搭建的站点默认存在该探针文件。4.根据上传zip返回绝对路径和文件包含这2点,我们可以通过上 传一个有php脚本的zip文件并且包含他来获取信息. 我们将一个文件内容为 的php文件打包成 一个zip压缩包。查看具体原因发现是因为程序自身会在 后面加上.php,注意,在包含文件的时候%23表示#,如果 直接使用#,浏览器会不编码,且把#以后的字符当做锚点, 请求的时候不会带上#以后的字符。

2302_78574538的博客 715

[JavaWeb实训Day1]Windows10+JDK1.8.0+Tomcat9.0.8配置教程

目录一、安装 EclipseJee二、配置JDK和Tomcat环境变量三、 JavaWeb实训第一天: eclipseJEE安装+配置Tomcat+项目环境搭建 一、安装 EclipseJee 下载链接:Eclipse官网 安装教程:EclipseJee百度安装教程 我的参考安装目录: 二、配置JDK和Tomcat环境变量 1、打开系统环境变量 2、新建系统环境变量 需要新建的有: 1 ...

cungudafa的博客 1124

Day3实训

1、查看进程信息,发现tcp://xcn1.yiluzhuanqian.com:80外链信息(因病毒外链站点已被捣毁,病毒无法连接到攻击者服务器,略去本步)执行netstat -ltnpa 命令,发现存在异常外联。应急响应是组织机构为应对网络攻击、数据泄露等安全事件,通过技术和管理手段快速响应并恢复业务的过程,包含事前预防、事中处置和事后改进三个阶段。6、D盾排查,排查系统用户、TCP连接(netstat命令)、进程信息、启动项、计划任务等是否存在异常(就是查看各种日志)/index.php?

2401_82575438的博客 433

实训Day-1 漏洞攻击实战

1.在拿到靶机时首先可以进行目录扫描,查看是否存在可以目录2.在存在过滤时可以尝试双写等方式绕过3.存在前端JS过滤时可以直接禁用4.

likfishdn的博客 925

Web每日一练day9

<html> <body> <form > <fieldset style="padding: 2"> <legend>分组框</legend> <!-- ********FOUND********* --> <input name="fruit" type="____________" value="A">苹果<br> <!-- ********FOUND********* --&gt.

weixin_43942765的博客 373
上一篇: WEB应用开发综合实训day8
下一篇: WEB应用开发综合实训day10
不觉晴光晚
博客等级 码龄6年 19粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值