技术文章

PHP mvc的学习

时光怂恿深爱的人放手 提交于 2021-02-18 06:51:46
MVC 在学JAVA的时候就了解过,所以在学PHP的时候相对比较简单多了。 M:意味着读取数据库的数据,或读取文本的数据。 简单理解就是读数据。 V:意味着视图,就是给用户查看的界面,给予用户交互操作。 简单理解就是图形界面。 C:意味着控制,就是业务的逻辑问题控制,例如说客户要访问到哪? 简单理解就是流程控制的方式。 MVC的理解并不是很难,简单附上代码理解下就OK!。当然,还得应用到实战中,在实战中学习才有意义。 每天进步一点点,那是必须的~ C:控制 / V视图 代码 <? php class DemoController{ function index(){ echo "hello,word" ; //这里面你可以随意的改成你需要的页面,这就达到了V视图的效果。 } } ?> M:读取数据代码   <? php // require('controller/democontroller.php'); //$controller=new DemoController(); //$controller->index(); $c_str = $_GET ['c' ]; // 获取要运行的controller $c_name = $c_str . 'controller' ; // 按照约定url中获取的controller名字不包含Controller,此处补齐。 $c_path

Spring MVC 介绍

橙三吉。 提交于 2021-02-18 06:50:41
前言 Spring MVC 基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像 Spring 框架那样灵活和松耦合 的 Web 应用程序。 目录 1、Spring MVC 工作流程 2、搭建 Spring MVC 一、Spring MVC 工作流程 下图展示了 Spring MVC 所经历的流程 1、请求旅程的第一站是 Spring 的 DispatcherServlet。与大多数基于 Java 的 Web 框架一样, Spring MVC 所有的请求都会 通过一个前端控制器 Servlet。前端控制器是常用的 Web 应用程序模式,在这里一个单实例的 Servlet 将请求委托给应用程序的 其他组件来执行实际的处理。 在 Spring MVC 中, DispatcherServlet就是 前端控制器 。 2、DispatcherServlet 的任务是将请求发送给 Spring MVC 控制器(controller)。控制器是一个用于处理请求的 Spring 组件。 在典型的应用程序中可能会有多个控制器,DispatcherServlet 需要知道应该将请求发送给哪个控制器。所以 DispatcherServlet 会 查询一个或多个 处理器映射(handle mapping) 来确定请求的下一个站点在哪里

FPGA设计技巧

眉间皱痕 提交于 2021-02-18 06:38:00
FPGA的用处比我们平时想象的用处更广泛,原因在于其中集成的模块种类更多,而不仅仅是原来的简单逻辑单元查找表(LUT)。而且还有一些其他资源,例如 : DSP: 实际上就是乘加器,FPGA内部可以集成多个乘加器,而一般的DSP芯片往往每个core只有一个。换言之,FPGA可以更容易实现多个DSP core功能。在某些需要大量乘加计算的场合,往往多个乘加器并行工作的速度可以远远超过一个高速乘加器。 SERDES: 高速串行接口。将来PCI-E、XAUI、HT、S-ATA等高速串行接口会越来越多。有了SERDES模块,FPGA可以很容易将这些高速串行接口集成进来,无需再购买专门的接口芯片。    CPU core: 分为2种,软core和硬core。软core是用逻辑代码写的CPU模块,可以在任何资源足够的FPGA中实现,使用非常灵活。而且在大容量的FPGA中还可以集成多个软core,实现多核并行处理。硬core是在特定的FPGA内部做好的CPU core,优点是速度快、性能好,缺点是不够灵活。    不过,FPGA还是有缺点。对于某些高主频的应用,FPGA就无能为力了。现在虽然理论上FPGA可以支持的500MHz,但在实际设计中,往往200MHz以上工作频率就很难实现了。 PART1 FPGA设计技巧一:时钟树 对于FPGA来说,要尽可能避免异步设计,尽可能采用同步设计

RocketMQ环境搭建

落花浮王杯 提交于 2021-02-18 06:37:08
RocketMQ 环境搭建 [TOC] 下载 Release Notes - Apache RocketMQ - Version 4.5.2 快速入门 Quick Start 启动 nameserver 和 broker unzip rocketmq.zip cd rocketmq/ nohup sh bin/mqnamesrv & nohup sh bin/mqbroker -n localhost:9876 & 配置外网访问 在 conf 文件夹下修改 broker.conf 添加 namesrvAddr = xx.xx.xx.xx:9876;xx.xx.xx.xx:9876 # (多个地址以;分隔) brokerIP1 = xx.xx.xx.xx enablePropertyFilter = true 启动 namesrv nohup mqnamesrv & 启动 broker nohup mqbroker -n xx.xx.xx.xx:9876 autoCreateTopicEnable=true -c /usr/local/rocketmq/conf/broker.conf & ### 测试生成消费 ``` sh export NAMESRV_ADDR=localhost:9876 sh bin/tools.sh org.apache.rocketmq.example

月底开课!10周掌握全链路UI设计技能,《静电的UI设计教室》11月班来啦~

删除回忆录丶 提交于 2021-02-18 06:35:12
双十一来啦!各位小伙伴准备好了吗? 除了特别优惠外 我们会再送出价值70元的设计图书一本 千万不要错过机会! 赶快加静电老师微信 hixulei 咨询吧! .. 静电的UI设计教室 学员作品展示第2期《子履》 静电的UI设计教室 学员作品展示第1期《大橘的账本》 本文分享自微信公众号 - 静Design(JingDesign91)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4581575/blog/4721595

Java 数据库树形查询生成菜单结构

拥有回忆 提交于 2021-02-18 06:34:13
Java 数据库树形查询 JAVA从数据库读取菜单,递归生成菜单树。 定义菜单类 public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单url private String url; // 菜单图标 private String icon; // 菜单顺序 private int order; // 子菜单 private List<Menu> childMenus; // ... 省去getter和setter方法以及toString方法 } 根据这个类定义数据库并且插入我们的菜单数据。 创建数据库 DROP TABLE IF EXISTS `jrbac_menu`; CREATE TABLE `jrbac_menu` ( `id` varchar(32) NOT NULL COMMENT '主键id,uuid32位', `name` varchar(64) NOT NULL COMMENT '登录用户名', `parent_id` varchar(32) DEFAULT NULL COMMENT '父菜单id', `url` varchar(64) DEFAULT NULL COMMENT '访问地址',

Kubernetes Pod 驱逐详解

落花浮王杯 提交于 2021-02-18 06:33:54
原文链接: Kubernetes Pod 驱逐详解 在 Kubernetes 中,Pod 使用的资源最重要的是 CPU、内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 IO)。可压缩资源不可能导致 Pod 被驱逐,因为当 Pod 的 CPU 使用量很多时,系统可以通过重新分配权重来限制 Pod 的 CPU 使用。而对于不可压缩资源来说,如果资源不足,也就无法继续申请资源(内存用完就是用完了),此时 Kubernetes 会从该节点上驱逐一定数量的 Pod,以保证该节点上有充足的资源。 当不可压缩资源不足时,Kubernetes 是通过 kubelet 来驱逐 Pod 的。kubelet 也不是随机驱逐的,它有自己的一套驱逐机制,每个计算节点的 kubelet 都会通过抓取 cAdvisor 的指标来监控节点的资源使用量,下面我们来具体分析每种情况。 更多精彩内容请关注微信公众号:云原生实验室 1. 存储资源不足 下面是 kubelet 默认的关于节点存储的驱逐触发条件: nodefs.available<10%(容器 volume 使用的文件系统的可用空间,包括文件系统剩余大小和 inode 数量) imagefs.available<15%(容器镜像使用的文件系统的可用空间,包括文件系统剩余大小和 inode 数量) 当 imagefs

基于VSCode的vue单文件组件模板设置---一次设置,可爽终生

放肆的年华 提交于 2021-02-18 06:30:45
第一步: 第二步: 第三步: 打开vue.json文件后,如果是初次设置,应该如下图所示,绿色注释部分不用管,注意那两个白色大括号 第四步:在大括号内全部粘贴如下代码,保存即可完成vue模板的设置 "Print to vue": { "prefix": "vue", "body": [ "<template>", " <div></div>", "</template>", "", "<script>", "export default {", " name: '',", " data () {", " return {}", " },", " created () {},", " // mounted () {},", " computed: {},", " watch: {},", " methods: {}", "}", "</script>", "", "<style lang=\"\" scoped>", "", "</style>", "" ], "description": "快速创建vue单文件组件" } 第五步:,每次创建完后缀为.vue的文件后,就可以通过在文件中输入vue来触发配置模板 第六步:效果图如下 提醒: 这里需要先注释掉mounted(){}生命周期方法,等使用时再打开注释即可,一个里面什么也不定义的空mounted(){}在运行时会报错 第七步:

Photoshop 更换证件照底色

跟風遠走 提交于 2021-02-18 06:29:51
1.打开photoshop CS6. 2.打开照片 (上栏)文件---->打开 或者,直接把照片拖进ps中。 3.复制图层 右击背景,点击复制图层 (复制图层的作用是,如果对图层操作错误,可以在对原图层进行复制,再操作) 4.选择魔术棒工具 右击(左栏第四个),单击魔术棒工具 5.单击照片 6.单击左栏最后一个,设置前景色 7.将RGB值分别调为 255,255,255,单击确定 8.单击(上栏)编辑---->填充 9.对出现的填充对话框,单击确定。 10.得到白底照片并存储,单击(上栏)文件---->存储为---->选择照片格式。 11.在桌面打开照片。 PS: 蓝底照片RGB: R0 G191 B243 红底照片RGB: R255 G0 B0 白底照片RGB: R255 G255 B255 黑底照片RGB: R0 G0 B0 来源: oschina 链接: https://my.oschina.net/u/4305692/blog/3670656

朝前代理(forward proxy)和反向代理(reverse proxy)

谁说胖子不能爱 提交于 2021-02-18 06:29:19
朝前代理(forward proxy)是代理客户去访问因特网上的其他服务的服务中介,反向代理(reverse proxy)是代理服务器接收因特网上的访问的服务中介。 摘录Wikipedia上关于朝前代理和反向代理的的一段文字: A forward proxy acts as an intermediary for its associated clients to contact any server, a reverse proxy acts as an intermediary for its associated servers to be contacted by any client. 直译就是: 朝前代理作为一个中介为他的关联客户去联系任何服务器, 反向代理作为一个中介为他的关联服务器去 被 任何客户联系。 关键点:朝前代理是代理客户的,反向代理是代理服务器的 朝前代理和反向代理示例: 一般公司内网用户上因特网都有一个web代理服务器,用于控制内网用户对外网的访问。这个web代理服务器属于朝前代理,因为他代理的是内网客户。 一个利用nginx的代理功能部署的网站,其中nginx服务器所起的作用就是反向代理,他代理的是实际的web服务器,作为网站的前端向外提供web服务。 关键字:正向代理,反向代理,朝前代理,nginx upstream 来源: oschina 链接: