Other

6.ASP.NET Core2.2_中间件

中间件(Middleware) 在asp.net core中, 中间件是可以处理hppt请求或者响应的管道。它是服务于整个应用管道之中很重要的过程。比如:要处理用户权限的验证和拦截一些用户的异常给用户友好提示等都要用中间件做处理。 在 ASP.NET Core 中,你可以使用 Middleware 构建你的请求处理管道。 ASP.NET Core 中间件为一个 HttpContext 执行异步逻辑,然后按顺序调用下一个中间件或者直接终止请求。一般来说你要使用一个中间件,只需要在 Configure 方法里调用 IApplicationBuilder 上一个对应的 UseXYZ 扩展方法。 ASP.NET Core 带来了丰富的内置中间件,如: 静态文件(Static files) 路由(Routing) 身份验证(Authentication) 你也可以创建你自己的 自定义中间件。 你也可以在 ASP.NET Core 中使用任何基于 OWIN 的中间件。查看 OWIN 获取更多信息。 中间件特点 可同时被访问和请求 可以处理请求后,将请求传递给下一个中间件 可以处理请求后,使管道短路 可以传出响应 中间件是按照添加顺序执行的 中间件流程: 用户发送http请求,经过管道里的所有中间件处理后才到MVC,MVC处理后将数据原路从经过的中间件中返回。可以将管道里的每个中间件理解为处理数据的一个环节。

为什么很多编程语言中的数组都是从0开始编号?

为什么大多数编程语言中,数组要从 0 开始编号,而不是从 1 开始呢? 从数组存储的内存模型上看: “下标”最确切的定义应该是“偏移(offset)” 用a表示数组的首地址,a[0]就是偏移为0的位置,也就是首地址,a[k]就表示偏移k个type size的位置,所以计算a[k]的内存地址只需要使用下面公式: a[k]_address = base_address + k * type_size 但如果从1开始计数,那计算数组元素a[k]的内存地址就变成了: a[k]_address = base_address + (k-1)*type_size 不难发现,从1开始编号,每次随机访问数组元素就会多了一次减法运算,对于CPU来说,就多了一次减法指令。 数组作为非常基础的数据结构,通过下标随机访问数组元素又是其非常基础的编程操作,效率的优化就要尽可能做到极致。所以为了减少一次减法操作,数组选择了从 0 开始编号,而不是从 1 开始。 历史原因:C 语言设计者用 0 开始计数数组下标,之后的 Java、JavaScript 等高级语言都效仿了 C 语言,或者说,为了在一定程度上减少 C 语言程序员学习 Java 的学习成本,因此继续沿用了从 0 开始计数的习惯。实际上,很多语言中数组也并不是从 0 开始计数的,比如 Matlab。甚至还有一些语言支持负数下标,比如 Python。

Linux createdb 命令

Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux createdb 命令。 原文地址:Linux createdb 命令

tcpdump小工具使用

1.tcpdump使用 例如可以这样使用 tcpdump -i any host 192.168.x.x -s0 -vvv -w 1.cap -i any 任何网络 -s0 防止截断 -w写入文件 -vvv详细的信息 最终得到一个名为1.cap的文件,可以使用wireshark工具打开

SQL查阅笔记——多表查询1

显示内连接查询 select * from emp inner join dept on emp.dep_id = dept.did; select * from emp join dept on emp.dep_id = dept.did; -- 隐式内连接 SELECT 字段列表 FROM 表1,表2… WHERE 条件; -- 左外连接 -- 查询emp表所有数据和对应的部门信息 select * from emp left join dept on emp.dep_id = dept.did; -- 右外连接 -- 查询dept表所有数据和对应的员工信息 select * from emp right join dept on emp.dep_id = dept.did; select * from dept left join emp on emp.dep_id = dept.

yum安装Nginx并支持TCP代理

安装命令 sudo yum install epel-release -y sudo yum install nginx nginx-mod-stream -y systemctl status nginx systemctl start nginx 修改配置文件 vim /etc/nginx/nginx.conf 在http模块下添加 TCP方向代理 stream { upstream harbor-80 { server 172.16.16.26:80; } server { listen 80; proxy_pass harbor-80; tcp_nodelay on; } upstream harbor-443 { server 172.16.16.26:443; } server { listen 443; proxy_pass harbor-80; tcp_nodelay on; } }

day28linux正则表达式学习笔记

通配符和正则的区别 1.从语法上就记住,只有awk、gre、sed才识别正则表达式符号、其他都是通配符 2.从用法上区分 表达式操作的是文件、目录名(属于是通配符) 表达式操作的是文件内容(正则表达式) 基本正则表达式 测试文本数据 [root@yuchao-tx-server test]# cat chaoge666.txt I am teacher yuchao. I teach linux,python! I like english My website is http://yuchaoit.cn Our school site is https://apecome.com My qq num is 877348180 Good good study , day day up! 关于单引号、双引号 正则的模式,建议使用双引号 如果未涉及变量等,用单引号也不影响 ^ 尖角符 语法 写于最左侧,如 ^my 逐行匹配,找到以my开头的内容     $ 美元符 语法 word$ 匹配以word结尾的行   ^$ 匹配空行 找出文件的空行   .

Ubuntu: softwares

软件选择上我自诩还是折腾过挺多玩意儿的,但是整理这些东西实在琐碎,所以一直没有写一篇随笔来总结,现在终于开了一个坑,推荐一些ubuntu/linux下的常用软件。 1. 系统工具类 Clash for windows 这个软件并不是仅在windows下才有,它在linux和mac下都有对应版本,可以到github下载。 勾选随系统启动后如果不生效,是因为自启动.desktop文件没有给相应权限,可以到~/.config/autostart找到cfw.desktop,右键属性勾选”允许执行文件“。 如果不想开机启动,也可以把它复制到桌面,在文件上右键勾选允许“允许运行”,然后就可以通过双击启动它。 2. 截图工具 系统gnome自带 gnome40.4自带几个截图快捷键,简单截图非常好用,在写这篇随笔的时候我已经按下了好几个 ctrl+shift+PrtSc (设置-键盘-键盘快捷键-截图) flameshot 说到截图软件必须推荐flameshot。操作简单,功能丰富,最主要的是要robust不要折腾(这也是为什么不推荐shutter的理由,你可能换个环境就装不起来)。

一个简单的rust的例子native windows gui

Native Windows GUI guide - Getting started (gabdube.github.io) 1、创建一个项目 >cargo new gui 2、在toml添加依赖 [dependencies]native-windows-gui = 1.0.12native-windows-derive = 1.0.3 3、在main.rs中添加代码 /* * @Author: your name * @Date: 2022-04-17 12:32:47 * @LastEditTime: 2022-04-17 12:33:37 * @LastEditors: your name * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: \gui\src\main.rs */ /*! A very simple application that show your name in a message box. See `basic` for the version without the derive macro */ extern crate native_windows_derive as nwd; extern crate native_windows_gui as nwg; use nwd::NwgUi; use nwg::NativeUi; #[derive(Default, NwgUi)] pub struct BasicApp { #[nwg_control(size: (300, 115), position: (300, 300), title: Basic example, flags: WINDOW|VISIBLE)] #[nwg_events( OnWindowClose: [BasicApp::say_goodbye] )] window: nwg::Window, #[nwg_control(text: Heisenberg, size: (280, 25), position: (10, 10))] name_edit: nwg::TextInput, #[nwg_control(text: Say my name, size: (280, 60), position: (10, 40))] #[nwg_events( OnButtonClick: [BasicApp::say_hello] )] hello_button: nwg::Button, } impl BasicApp { fn say_hello(&self) { nwg::simple_message(Hello, &format!

IDEA数据库插件 DB Navigator安装与连接数据库

引用 https://blog.csdn.net/sion_eden_minori/article/details/109362054  第一步: 在Files---Settings---Plugins中 搜索database 安装第一个 Database Navigator。   第二步: 重启编译器安装好插件后 ,选择自己需要的数据库