Java Web —— 第三天(Ajax+组件)

news2024/9/21 2:46:23

Ajax

概念: Asynchronous JavaScript And XML,异步的JavaScript和XML。

作用:

数据交换:通过Aiax可以给服务器发送请求,并获服务器响应的数据

异步交互:可以在不重新加载整个页面的情况下,服务器交换数据并更新部分网页的技术,如:搜

联想、用户名是否可用的校验等等

同步与异步

 原生Ajax

1.准备数据地址: http://yapi.smart-xwork.cn/mock/169327/emp/list

2.创建XMLHttpRequest对象:用于和服务器交换数据

3.向服务器发送请求

4.获取服务器响应数据

Axios

介绍: Axios 对原生的Ajax进行了封装,简化书写,快速开发。

官网:https://www.axios-http.cn/

Axios入门

1.引入Axios的is文件

2.使用Axios发送请求,并获取响应结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="../JS/axios-0.18.0.js"></script>
    <title>Document</title>
</head>
<body>
    <input type="button" value="获取数据GET" onclick="get()">

    <input type="button" value="删除数据POST" onclick="post()">


</body>
<script>
    function get(){
        //通过axios发送异步请求-get
        // axios({
        //     method:"get",
        //     url:""
        // }).then(result => {
        //     console.log(result.data);
        // })   
        //简化操作
        axios.get("https://mock.apifox.cn/m1/3128855-0-default/emp/list").then(result =>
         {console.log(result.data);
         });
    }


    function post(){
        //通过axios发送异步请求-post
        // axios({
        //     method:"post",
        //     url:"",
        //     data:"id=1"
        // }).then(result => {
        //     console.log(result.data);
        // })
        axios.post("https://mock.apifox.cn/m1/3128855-0-default/emp/deleteById","id=1").then(result =>{
            console.log(result.data);
        });
    }
</script>
</html>

案例

基于Vue及Axios完成数据的动态加载展示

1.数据准备的url: 

https://mock.apifox.cn/m1/3128855-0-default/emp/list


2.在页面加载完成后,自动发送异步请求,加载数据,渲染展示页面(性别:1代表男,2代表女)

示例代码:

<!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>Ajax-Axios-案例</title>
    <script src="../JS/axios-0.18.0.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <table border="1" cellspacing="0" width="60%">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>图像</th>
                <th>性别</th>
                <th>职位</th>
                <th>入职日期</th>
                <th>最后操作时间</th>
            </tr>
            <tr align="center" v-for="(emp,index) in emps">
            <td>{{index+1}}</td>
            <td>{{emp.name}}</td>
            <!-- <td>
                <img src="emp.image" width="70px" height="50px">
            </td> -->
            <td>
                <img :src="emp.image" width="70px" height="50px">
            </td>
            <td>
                <span v-if="emp.gender == 1">男</span>
                <span v-if="emp.gender == 2">女</span>
            </td>
            <td>{{emp.job}}</td>
            <td>{{emp.entrydate}}</td>
            <td>{{emp.updatetime}}</td>
            </tr>
        </table>
    </div>
</body>

<script>
   new Vue({
    el:"#app",
    data: {
        emps:[]
     },
    mounted(){
        //发送异步请求 加载数据
        //this.emps:指向 Vue 实例中的 emps 数据属性。this 在这里指代当前的 Vue 实例。
        //result:是 Axios 请求成功后的响应对象。这个对象包含了从服务器返回的数据。
        //result.data:通常情况下,Axios 返回的响应对象包含一个 data 属性,该属性包含了服务器返回的实际数据
        //result.data.data:服务器返回的数据结构中包含一个 data 属性,result.data.data 就是从响应数据中进一步提取出的所需数据。
        axios.get("https://mock.apifox.cn/m1/3128855-0-default/emp/list").then(result => {
            this.emps = result.data.data;  
        })
    }
   })
</script>

</html>

YApi

介绍:YApi是高效、易用、功能强大的 api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务

地址:YApi Pro-高效、易用、功能强大的可视化接口管理平台

前端工程化

环境准备
 vue-cli

介绍:Vue-cli是Vue官方提供的一个脚手架,用于快速生成一个 Vue 的项目模板

Vue-cli提供了如下功能:

统一的目录结构

本地调试

热部署

单元测试

集成打包上线

依赖环境:NodeJS

安装NodeJS

1.双击安装包

2.选择安装目录

3.验证NodeJS环境变量

4.配置npm的全局安装路径

npm config set prefix "D:\NodeJS"

验证

5.切换npm的淘宝镜像

npm config set registry https://registry.npm.taobao.org

6.安装Vue-cli

npm install -g @vue/cli

验证

vue --version

创建Vue项目

命令行:

vue create 项目名

图形化界面:

vue ui

1.创建文件夹 在其根目录直接进入cmd界面

2.浏览器显示此界面

 3.在vscode中打开项目

Vue项目-目录结构

基于Vue脚手架创建出来的工程,有标准的目录结构,如下:

Vue项目 启动
方式一:图形化界面

以管理员方式运行vscode

点击顶部导航栏的终端 运行任务

方式二:命令行

Vue组件库Element

什么是Element

Element:是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库

组件:组成网页的部件,例如 超链接、按钮、图片、表格、表单、分页条等等。

官网: https://element.eleme.cn/#/zh-CNListener

快速入门

安装ElementUI组件库 (在当前工程的目录下),在命令行执行指令:

npm install element-ui@2.15.3

引入ElementUl组件库

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

如果项目中显示则代表成功

常见组件-Button按钮

常见组件-Table表格

常见组件-分页

Pagination 分页: 当数据量过多时,使用分页分解数据

常见组件-对话框

Dialog 对话框:在保留当前页面状态的情况下,告知用户并承载相关操作

常见组件-表单

Form 表单:由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据

App.vue代码

<template>
  <div>
    <element-view></element-view>
  </div>
</template>

<script>
import ElementView from './views/element/ElementView.vue'

 export default{
  components:{ElementView},
  data(){
    return{
      message:"Hello Vue"
    }
  },
  methods:{}

 }
</script>

ElementView.vue代码

<template>
  <div>
    <!-- 按钮 -->
    <el-row>
      <el-button>默认按钮</el-button>
      <el-button type="primary">主要按钮</el-button>
      <el-button type="success">成功按钮</el-button>
      <el-button type="info">信息按钮</el-button>
      <el-button type="warning">警告按钮</el-button>
      <el-button type="danger">危险按钮</el-button>
    </el-row>

    <br>
    <br>
    <br>

    <!-- Table表格 -->
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="日期" width="180">
      </el-table-column>
      <el-table-column prop="name" label="姓名" width="180">
      </el-table-column>
      <el-table-column prop="address" label="地址">
      </el-table-column>
    </el-table>

    <!-- Pagination 分页组件 -->
    <el-pagination background layout="sizes, prev, pager, next, jumper, total" @size-change="handleSizeChange"
      @current-change="handleCurrentChange" :total="1000"></el-pagination>


    <br>
    <br>
    <br>

    <!-- Dialog对话框 -->
    <!-- Table -->
    <el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>


    <el-dialog title="收货地址" :visible.sync="dialogTableVisible">
      <el-table :data="gridData">
        <el-table-column property="date" label="日期" width="150"></el-table-column>
        <el-table-column property="name" label="姓名" width="200"></el-table-column>
        <el-table-column property="address" label="地址"></el-table-column>
      </el-table>
    </el-dialog>

    <br>
    <br>
    <br>

    <!-- Dialog对话框 - Form表单  -->
    <el-button type="text" @click="dialogFormVisible = true">打开嵌套Form的 Dialog</el-button>


    <el-dialog title="Form表单" :visible.sync="dialogFormVisible">
      <el-form ref="form" :model="form" label-width="80px">
        <el-form-item label="活动名称">
          <el-input v-model="form.name"></el-input>
        </el-form-item>
        <el-form-item label="活动区域">
          <el-select v-model="form.region" placeholder="请选择活动区域">
            <el-option label="区域一" value="shanghai"></el-option>
            <el-option label="区域二" value="beijing"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="活动时间">
          <el-col :span="11">
            <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
          </el-col>
          <el-col class="line" :span="2">-</el-col>
          <el-col :span="11">
            <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
          </el-col>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">提交</el-button>
          <el-button>取消</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>


  </div>



</template>

<script>
export default {
  data() {
    return {
      form: {
          name: '',
          region: '',
          date1: '',
          date2: '',
      },
      gridData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }],
      dialogTableVisible: false,
      dialogFormVisible: false,
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }]
    }
  },
  methods: {
    handleSizeChange: function (val) {
      alert("每页记录数变化" + val)
    },
    handleCurrentChange: function (val) {
      alert("页码发生了变化" + val)
    },
    onSubmit:function() {
        alert(JSON.stringify(this.form));
      }
  }
};
</script>

<style></style>

案例:

Vue项目中使用Axios:

npm install axios;

需要使用axios时,导入axios:

import axios from 'axios'; 

步骤:

创建页面,完成页面的整体布局规划

布局中各个部分的组件实现

列表数据的异步加载,并渲染展示

代码如下:

EmpView.vue

<template>
    <div>
        <!-- 使用 Element UI 的布局容器 -->
        <el-container style="height: 700px; border: 1px solid #eee">
            
            <!-- 顶部标题部分 -->
            <el-header style="font-size: 40px; background-color: rgb(238, 241, 246) ;text-align : center">
                tlias智能学习辅助系统
            </el-header>
            
            <el-container>
                <!-- 侧边栏 -->
                <el-aside width="250px" style="border: 1px solid #eee">
                    <el-menu :default-openeds="['1', '3']">
                        <!-- 子菜单:系统信息管理 -->
                        <el-submenu index="1">
                            <template slot="title">
                                <i class="el-icon-message"></i>系统信息管理
                            </template>
                            <!-- 菜单项:部门管理 -->
                            <el-menu-item index="1-1">部门管理</el-menu-item>
                            <!-- 菜单项:员工管理 -->
                            <el-menu-item index="1-2">员工管理</el-menu-item>
                        </el-submenu>
                    </el-menu>
                </el-aside>

                <!-- 主内容区 -->
                <el-main>
                    <!-- 查询表单 -->
                    <el-form :inline="true" :model="searchForm" class="demo-form-inline">
                        <!-- 输入员工姓名 -->
                        <el-form-item label="姓名">
                            <el-input v-model="searchForm.name" placeholder="请输入员工姓名"></el-input>
                        </el-form-item>

                        <!-- 选择性别 -->
                        <el-form-item label="性别">
                            <el-select v-model="searchForm.gender" placeholder="请选择">
                                <el-option label="男" value="1"></el-option>
                                <el-option label="女" value="2"></el-option>
                            </el-select>
                        </el-form-item>

                        <!-- 日期选择器:选择入职日期 -->
                        <el-form-item label="入职日期 从">
                            <el-date-picker v-model="searchForm.entrydate" type="daterange" range-separator="至"
                                start-placeholder="开始日期" end-placeholder="结束日期">
                            </el-date-picker>
                        </el-form-item>

                        <!-- 查询按钮 -->
                        <el-form-item>
                            <el-button type="primary" @click="onSubmit">查询</el-button>
                        </el-form-item>
                    </el-form>

                    <!-- 员工信息表格 -->
                    <el-table :data="tableData" border>
                        <!-- 列:姓名 -->
                        <el-table-column prop="name" label="姓名" width="200"></el-table-column>
                        <!-- 列:图像 -->
                        <el-table-column label="图像" width="200">
                            <template slot-scope="scope">
                                <!-- 显示员工图片 -->
                                <img :src="scope.row.image" width="100px" height="70px">
                            </template>
                        </el-table-column>
                        <!-- 列:性别 -->
                        <el-table-column label="性别" width="160">
                            <template slot-scope="scope">
                                <!-- 根据值显示性别文本 -->
                                {{ scope.row.gender == 1 ? '男' : '女' }}
                            </template>
                        </el-table-column>
                        <!-- 列:职位 -->
                        <el-table-column prop="job" label="职位" width="160"></el-table-column>
                        <!-- 列:入职日期 -->
                        <el-table-column prop="entrydate" label="入职日期" width="200"></el-table-column>
                        <!-- 列:最后操作时间 -->
                        <el-table-column prop="updatetime" label="最后操作时间" width="230"></el-table-column>
                        <!-- 列:操作 -->
                        <el-table-column label="操作">
                            <!-- 编辑按钮 -->
                            <el-button type="primary" size="mini">编辑</el-button>
                            <!-- 删除按钮 -->
                            <el-button type="danger" size="mini">删除</el-button>
                        </el-table-column>
                    </el-table>

                    <br>

                    <!-- 分页条 -->
                    <!-- Pagination 分页组件 -->
                    <el-pagination background layout="sizes, prev, pager, next, jumper, total"
                        @size-change="handleSizeChange" @current-change="handleCurrentChange"
                        :total="1000"></el-pagination>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>

<script>
import axios from 'axios';
export default {
    data() {
        return {
            // 定义存储表格数据和查询表单数据的变量
            tableData: [],
            searchForm: {
                name: "",
                gender: "",
                entrydate: []
            }
        }
    },
    methods: {
        // 查询按钮的回调函数
        onSubmit: function () {
            alert("查询数据")
        },
        // 分页组件中每页记录数变化的回调函数
        handleSizeChange: function (val) {
            alert("每页记录数变化" + val)
        },
        // 分页组件中当前页码变化的回调函数
        handleCurrentChange: function (val) {
            alert("页码发生了变化" + val)
        }
    },
    mounted(){
        // 组件挂载后,通过 Axios 发送异步请求,获取员工数据
        axios.get("https://mock.apifox.cn/m1/3128855-0-default/emp/list").then((result) => { 
           this.tableData = result.data.data; // 将请求结果赋值给表格数据
        }); 
    }
}
</script>
<style></style>

App.vue也需要修改

<template>
  <div>
    <!-- <element-view></element-view> -->

    <!-- 员工管理 -->
    <emp-view></emp-view>
  </div>
</template>

<script>

// import ElementView from './views/element/ElementView.vue'
import EmpView from './views/tlias/EmpView.vue'
 export default{
  components:{ EmpView /* {ElementView} */} ,
  data(){
    return{
      message:"Hello Vue"
    }
  },
  methods:{}

 }
</script>

Vue路由 

Vue Router

介绍: Vue Router 是 Vue 的官方路由。

组成:

VueRouter:路由器类,根据路由请求在路由视图中动态渲染选中的组件

<router-link>:请求链接组件,浏览器会解析成<a>

<router-view>:动态视图组件,用来染展示与路由路径对应的组件

安装 (创建Vue项目时已选择)

npm install vue-router@3.5.1

案例

通过Vue的路由VueRouter完成左侧菜单栏点击切换效果

1.配置src-router-index.js文件中的路由信息

const routes = [
  {
    path: '/emp',
    name: 'emp',
    component: () => import('../views/tlias/EmpView.vue')
  },
  {
    path: '/dept',
    name: 'dept',
    component: () => import('../views/tlias/DeptView.vue')
  },
  {
    path: '/',
    redirect:'/emp'
  }
]

2.在DeptView.vue和EmpView.vue中替换侧边栏中代码

<!-- 侧边栏 -->
 <el-aside width="250px" style="border: 1px solid #eee">
     <el-menu :default-openeds="['1', '3']">
          <!-- 子菜单:系统信息管理 -->
          <el-submenu index="1">
               <template slot="title">
                      <i class="el-icon-message"></i>系统信息管理
               </template>
           <!-- 菜单项:部门管理 -->
      <el-menu-item index="1-1">
          <router-link to="/dept">部门管理</router-link>
               </el-menu-item>
             <!-- 菜单项:员工管理 -->
             <el-menu-item index="1-2">
                 <router-link to="/emp">员工管理</router-link>
                  </el-menu-item>
                  </el-submenu>
                 </el-menu>
                </el-aside>

3.修改App.vue中的代码

<template>
  <div>
    <!-- <element-view></element-view> -->

    <!-- 员工管理 -->
    <!-- <emp-view></emp-view> -->
    
    <router-view></router-view>
  </div>
</template>

<script>

// import ElementView from './views/element/ElementView.vue'
// import EmpView from './views/tlias/EmpView.vue'
 export default{
  components:{ /* EmpView */ /* {ElementView} */} ,
  data(){
    return{
      message:"Hello Vue"
    }
  },
  methods:{}

 }
</script>

4.运行项目

打包

点击顶部导航栏——终端

执行打包操作

左侧资源管理器会出现新文件dist

部署

Nginx

介绍:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

其特点是占有内存少,并发能力强,在各大型互联网公司都有非常广泛的使用

官网:https://nginx.org/

Nginx目录

部署:将打包好的 dist 目录下的文件,复制到nginx安装目录的html目录下

在浏览器打开http://localhost:90/   可运行项目

如果运行失败  可能是端口号(默认为80)占用  在conf下的nginx.conf文件中修改端口号即可

第36行

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发笔记--通用基础数据校验的设计

最近在开发一个功能&#xff0c;对排水管网的基础数据(包括管井、管道、泵站&#xff0c;雨水口&#xff0c;雨水口线&#xff0c;泵站&#xff0c;污水处理厂&#xff0c;排口等)的导入进行校验。 以字段为纬度&#xff0c;考虑二个方面的校验&#xff1a;数据库唯一&#xf…

RHCA III之路---EX436-9

RHCA III之路---EX436-9 1. 题目2. 解题2.1 安装apache2.2 配置页面2.3 配置selinux和防火墙2.4 创建资源 3. 确认 1. 题目 2. 解题 考试时会给你个url,从url下载index.html并放入默认目录 2.1 安装apache 3个节点分别安装 yum install -y httpd2.2 配置页面 nodea上执行 …

VIVADO IP核之DDS直接数字频率合成器使用详解

VIVADO IP核之DDS直接数字频率合成器使用详解 目录 前言 一、DDS基本知识 二、DDS IP核使用之SIN COS LUT only 三、DDS IP核之SIN COS LUT only仿真 四、DDS IP核使用之Phase Generator and SIN COS LUT 五、DDS IP核之Phase Generator and SIN COS LUT仿真 总结 前言 …

js 深入理解原型(prototype)及如何创建对象

目录 1. 概述2. 工厂模式3. 构造函数模式3.1 创建的格式3.2 JS内部执行步骤3.3 constructor 构造器3.4 构造函数也是函数3.5 构造函数的问题 4. 原型模式 prototype4.1 理解原型本质4.2 原型层级(访问一个属性&#xff0c;查询的次序&#xff09;4.2.1 查询次序&#xff1a;实例…

电动工具研讨会展商阵容揭晓,您的元器件选型指南!

导语 面对日益激烈的市场竞争&#xff0c;如何让您的电动工具脱颖而出&#xff1f;PI、MPS等多家知名元器件厂商将带来最新产品&#xff0c;覆盖MCU、电源管理芯片、功率器件等多个领域&#xff0c;助您一站式选型&#xff01; 在智能制造浪潮的推动下&#xff0c;电动工具正快…

谷粒商城实战笔记-145-性能压测-性能监控-jvisualvm使用-解决插件不能安装

文章目录 jvisualvm的作用安装查看gc相关信息的插件解决jvisualvm不能正常安装插件的问题1&#xff0c;查看java版本2&#xff0c;打开网址3&#xff0c;修改jvisualvm的设置 jvisualvm的作用 JVisualVM是一个集成在Java Development Kit (JDK) 中的多功能工具&#xff0c;它提…

使用易语言写一个翻译小助手

下载地址: https://pan.quark.cn/s/fa0935d10b10

springboot流浪猫狗领养管理系统-计算机毕业设计源码51529

目 录 摘要 1 绪论 1.1 研究背景及意义 1.2 开发现状 1.3论文结构与章节安排 2 流浪猫狗领养管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例…

Java社会校招类型人力资源招聘系统小程序源码

解锁社会校招新篇章&#xff1a;探索高效人力资源招聘系统 引言&#xff1a;为何社会校招需要升级&#xff1f; 在这个日新月异的时代&#xff0c;企业之间的竞争愈发激烈&#xff0c;而人才作为核心竞争力&#xff0c;其获取与培养成为了每个企业不可忽视的战略要点。尤其是…

桥韵国风:传统美学桥梁可视化

融合国风元素&#xff0c;采用图扑可视化技术&#xff0c;将桥梁结构与美学设计生动展示&#xff0c;传递传统文化的独特韵味&#xff0c;提升观赏与研究价值。

MySQL排序,相同分数的,排序相同

一、数据准备 CREATE TABLE staff_product (staffId bigint NOT NULL COMMENT 员工id,staffName varchar(255) DEFAULT NULL COMMENT 员工姓名,product_count int DEFAULT NULL COMMENT 生产的产品数,PRIMARY KEY (staffId) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT员工…

『大模型笔记』人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)

人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF) 文章目录 一. 人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)1. 概念解释2. RLHF的组成部分2.1. 强化学习(Reinforcement Learning, RL)2.2. 状态空间(state space)2.3. 动作空…

【OpenCV C++20 学习笔记】直方图均衡化-Histogram Equalization

直方图均衡化-Histogram Equalization 原理图片的直方图直方图均衡化实现方法 API示例 原理 图片的直方图 直方图的横坐标是图片的强度值&#xff08;颜色值&#xff09;&#xff0c;纵坐标是每个强度值对应的像素的个数&#xff1b;因此坐标系上的每个方形图就代表了整张图片…

IDEA 生成类的注释信息

新建任意类&#xff0c;自动生成注释信息&#xff08;选其一&#xff0c;否则会多出一份注释信息&#xff09; 打开File -> Settings -> Editor -> File and Code Templates -> Includes&#xff0c;在File Header中添加如下信息&#xff0c;然后点击OK即可 /** *…

【数据结构与算法 | 力扣+二叉搜索树篇】力扣938,1008

1. 力扣938&#xff1a;二叉搜索树的范围和 1.1 题目&#xff1a; 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1&#xff1a; 输入&#xff1a;root [10,5,15,3,7,null,18], low 7, high 15 输出&#xff1a;32示…

从原理到实践,GraphRAG 如何提升 LLM 的摘要总结能力?

作者介绍&#xff1a;王振亚&#xff0c;蚂蚁大安全技术部技术专家 GraphRAG 是一种基于知识图谱的检索增强生成方法。微软在7月初开源了 GraphRAG 项目&#xff0c;一个月左右的时间内&#xff0c;它已经获得了 13k 的 stars。 相对于通常的 RAG &#xff0c;GraphRAG 在从多…

HTTPS是怎么建⽴连接的(通俗易懂版)

首先了解HTTPS的构造&#xff0c;如下图所示&#xff1a; SSL/TLS 协议基本流程&#xff1a; 客户端向服务器索要并验证服务器的公钥。 双⽅协商⽣产「会话秘钥」。 双⽅采⽤「会话秘钥」进⾏加密通信。 HTTPS建立连接的具体流程如下&#xff1a; ⾸先&#xff0c;客户端向…

电商产品摄影福音!AI绘画 ComfyUI 产品摄影工作流 (自定义产品位置并保留细节),再也不用请摄影师了!

大家好&#xff0c;我是画画的小强 今天&#xff0c;我将介绍一个最新开发的 AI绘画 的产品摄影ComfyUI工作流。只需要提供一张产品图片&#xff0c;然后用提示词描述你想要的画面&#xff0c;就可以生成一张效果非常自然的产品摄影图片。 本次教程所用到的工作流我已经准备好…

一机两用的简单介绍

电子政务外网终端使用过程的风险与挑战 1、终端防护弱&#xff0c;失陷风险大 政务外网终端具备访问互联网能力&#xff0c;造成政务外网终端极易感染僵木蠕病毒&#xff0c;破坏正常办公 政务外网终端易被攻击失陷&#xff0c;成为从互联网攻击政务外网的跳板机 2、VPN漏洞…

资源覆盖机制在安卓中的应用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 什么是资源覆盖&#xff08;Resource Overlay&#xff09;&#xff1f; 资源覆盖的分类 静态资源覆盖&#xff08;SRO&#…