服务计算——web 技术 - 处理 Request 与 Response

2023-10-27

基于Negroni框架的cloudgo应用

本次实验是基于Negroni框架的应用。我设计了一个简单的四则运算应用。

这个应用设计主要分为两部分, 中间件设计 以及 main函数的设计 。接下来就分别对这两个部分进行介绍。

中间件设计

printFunctionInfo

这个中间件的功能是 打印应用使用方法 ,以及在开头输出一个 ”calculator“ 的大型字样。

使用到的是 io.WriteString 来写 response

使用方法:

访问:http:127.0.0.1:1234/?operation=add&left=1&right=2

其中 opertaion 可以是 mul、div、add、sub

服务端将返回计算结果。

errorFilter

这个中间件的功能是 检查输入参数错误

operation 的检查十分简单,只需要判断是否是 mul、div、add、sub 中的一个即可

left、right 的检测用到了 strconv库 中的 Atoi 函数,若是转换后 error 为空,那么就证明输入参数无错。

若是这两项检测有错误,则打印错误信息,并停止服务

若都没有错误,则进入下一个中间件

myCalculate

这个中间件的功能就是 计算

通过 operation 来确定我们所作运算的种类,接着设置一个变量 answer 来存储答案。

在输出的时候,同样要使用到 io.WriteString 函数。

这里注意到的是,该函数的第二个参数是一个 string 类型。所以我们要使用到 strconv 库中的 Itoa 函数进行 intstring 的转换。

还有另外的 http.handler 中间件,是照搬老师的课程博客的,这里就不再赘述了。

main函数设计

main函数设计主要就是要将设计好的中间件,使用 UseFunc 函数加入到中间件链中即可。其余的就和课程博客一样,设置路由,并且设置端口而已。

这里使用的端口是 1234

func main() {
	n := negroni.New()			//get a negroni instance
	n.UseFunc(printFunctionInfo)	//push printFunctionInfo into MiddleWare chain
	n.UseFunc(errorFilter)		//push errorFilter into MiddleWare chain
	n.UseFunc(myCalculate)		//push myCalculate into MiddleWare chain

	router:=http.NewServeMux()		//get a router
	router.Handle("/",handler())	//route "\" to handler()

	n.UseHandler(router)		//push router into MiddleWare chain

	n.Run(":1234")			//set port: 1234

}

效果展示

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务计算——web 技术 - 处理 Request 与 Response 的相关文章

  • Vue总结第二天~自定义子组件、父子组件通信、插槽

    目录 一 组件 组件目录 1 注册组件 全局组件 局部组件和demo template模块 1 注册组件的基本步骤 2 全局组件demo 3 局部组件demo 4 template模块的简化 模板的分离写法 即将其内容封装到 templat
  • JPA基本数据类型映射

    Employ author Administrator Entity Table name T EMPLOY SequenceGenerator name SEQ sequenceName SEQ SYS FUNC MENU initial
  • 深入理解express框架

    写在前面 Express 是一个简洁而灵活的 node js Web应用框架 提供了一系列强大特性帮助你创建各种 Web 应用 和丰富的 HTTP 工具 使用 Express 可以快速地搭建一个完整功能的网站 http jafeney co
  • web开发中的四个域对象生命周期 作用域详细介绍

    Web开发中的四个域对象 有范围小到大 page jsp有效 request 一次请求 session 一次会话 application 当前web应用 page域指的是pageContext request域指的是HttpServletR
  • CentOS 7下go环境配置(超多问题)

    文章目录 1 安装Visual Code 2 获得golang安装包并安装 3 第一个GO语言程序 hello go 4 安装必要工具与插件 1 安装Visual Code 在终端中安装VScode 使用以下命令 sudo rpm impo
  • JSP四大作用域

    一 ServletContext 1 生命周期 当Web应用被加载进容器时创建代表整个web应用的ServletContext对象 当服务器关闭或Web应用被移除时 ServletContext对象跟着销毁 2 作用范围 整个Web应用 3
  • 一款新的网页设计工具,简单好用

    之前一直在找一些智能化的 简单操作的网页设计工具 后来发现这个VXPLO 还蛮好用的 使用地址http www vxplo cn VXPLO是互联网上出现的第一款基于云计算方式的交互式网页设计工具 也是一个互动作品分享平台 大家需要网页设计
  • VMware 搭建私有云

    我们的目的是在VMware workstation 上安装Centos 7系统 并配置用远程桌面访问虚拟机 在虚拟机上安装Centos 7 首先按照老师给出的博客 VirtualBox 安装 Centos 7 笔记 进行安装 博主使用的是v
  • spring工程的单元测试用例加载配置方法

    spring开发时可以使用基于java注解的配置 也可以使用基于xml配置文件的配置方法 大多数情况下在开发过程中需要编写单元测试用例针对不同的模块进行独立测试用于验证独立的功能 本文介绍在基于不同的配置项目中单元测试加载配置的方法 1 基
  • Linux下Tomcat设置404错误页无法正确定向

    使用自定义错误页面代替tomcat中的默认错误页面 我的配置如下默认配置文件 opt tomcat5 conf web xml程序配置文件 opt tomcat5 webapps 本公司的WEB WEB INF web xml 在web x
  • JAVA操作Excel文件

    JAVA EXCEL API 是一开放源码项目 通过它Java开发人员可以读取Excel文件的内容 创建新的Excel文件 更新已经存在的Excel文件 使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表 因
  • 【服务计算】docker实践报告

    docker实践报告 环境说明 准备docker环境 运行第一个容器 Docker基本操作 MySQL与容器化 拉取MySQL镜像 构建docker镜像 MySQL容器使用 Docker compose与多容器应用自动化部署 docker网
  • VMware+CentOS7搭建私有云桌面服务

    VMware CentOS7搭建私有云桌面服务 1 安装VMware虚拟机工作台 官网下载安装包 版本 14 1 3 Pro 地址 https my vmware com en web vmware info slug desktop en
  • js限制输入框字数

  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Docker-Compose一键部署

    Docker Compose一键部署 文章目录 Docker Compose一键部署 Docker 网络模式 一键部署 Docker 网络模式 关于 docker 网络模式 有时间会另出一篇博客详细介绍 或者在该博客下继续补充 docker
  • 重新学javaweb---JavaEE 监听器

    监听器 监听器就是一个java程序 功能是监听另一个java对象变化 方法调用 属性变更 实现 写一个类实现响应的接口 注册监听器 利用 web xml 8个监听器 分为了3种 一 用来监听三大作用域的创建和销毁的监听器 除了page域 1
  • 本地映射到外网

    很多人做开发的苦恼 外网访问不了本地 很多调试进行不了 比如说微信开发 这个时候要用手机调试 但是服务器在自己电脑上 外网访问不了 这个时候我们可以用一些工具 使我们的内网ip映射到外网 让外网可以访问 一 使用ngrok让微信公众平台通过
  • tomcat虚拟目录和虚拟主机等相关配置

    一 WEB 服务器 1 什么是WEB 服务器 就是一台电脑 安装了一个服务器软件 2 为什么需要安装 WEB 服务器 思考问题 从一台计算机的 IE 浏览器如何去访问另一台计算机中的文件 2 1 两台计算机是如何实现通讯的 IP地址 计算机
  • 使用Rest API设计简单的博客网站

    博客根地址 https mygithub com 对于每个用户自己的博客网站都在这个根地址后加url信息 使用Rest API进行设计 在这里设计如下API https mygithub com username articles http

随机推荐

  • 柔性OLED拼接屏有哪些场景化应用?

    柔性OLED拼接屏是一种新型的显示技术 它采用了柔性OLED屏幕 可以实现多个屏幕的拼接 形成一个大屏幕显示 这种技术可以应用于各种场合 如商业展示 广告宣传 会议演示等 柔性OLED屏幕是一种新型的显示技术 它采用了柔性材料作为基底 可以
  • java基于ssm+vue的共享充电宝管理系统 elementui

    随着时代的发展 人们的生活越来越离不开手机 但是因为技术水平等原因的限制 手机的电池并没有人们想象中的那么耐用 很多时候人们在外出的时候 很可能会遇到手机没电的情况发生 作为日常通讯的必备工具 如果没电了 很可能会影响一些重要的事情 尤其是
  • 3D相机调研

    最近因为自己实验需要配置一个3D相机 安装在机械臂上实现eye in arm的自动化引导过程 调研结果记录如下 3D相机又称为深度相机 即通过该相机能检测出拍摄空间的景深距离 与普通相机 2D的最大区别 普通彩色相机 2D相机 拍摄到的图片
  • JS -- input输入框只能输入正整数

    摘自文章 input输入框只能输入正整数 半城烟沙的技术博客 51CTO博客 one
  • 最大比例

    X星球的某个大奖赛设了M级奖励 每个级别的奖金是一个正整数 并且 相邻的两个级别间的比例是个固定值 也就是说 所有级别的奖金数构成了一个等比数列 比如 16 24 36 54 其等比值为 3 2 现在 我们随机调查了一些获奖者的奖金数 请你
  • 面试题深入思考01-----Arrays.sort()与Collections.sort()

    面试题深入思考01 Arrays sort 与Collections sort 1 Collections sort Collections本质是关于集合的一种工具类 其中包含对集合的各种api 例如排序 反转 交换和复制等 其中sort方
  • word怎么恢复保存前的文件,word文件恢复

    我们在使用word编辑文档时偶尔会有误删除文档的经历 word要怎么恢复保存前的文件呢 本文为你提供了五种解决思路 你可以通过搜索word文档的备份文档 自动恢复文件 临时文件 回收站 第三方数据恢复软件找到文档 方法一 搜索 Word 备
  • katex

    Katex Accents Accent functions inside text Delimiters Delimiter Sizing Environments Letters and Unicode Other Letters Un
  • Android ----蓝牙架构

    蓝牙 1 fromwork 2 service 3 driver Bluetooth apk bluedroid 芯片厂家 fromwork到service直接调用 service到driver利用service调用 fromwork到dr
  • 【机器学习 - 4】:线性回归算法

    文章目录 线性回归 线性回归的理解 损失函数 简单线性回归 封装线性回归算法 线性回归算法 在sklearn中调用线性回归算法 向量化运算 线性回归模型中的误差 均方误差 MSE 均方根误差 平均绝对误差 调用sklearn中的均方根误差和
  • 位置式和增量式PID控制

    PID控制是一个二阶线性控制器 定义 通过调整比例 积分和微分三项参数 使得大多数的工业控制系统获得良好的闭环控制性能 优点 a 技术成熟 b 易被人们熟悉和掌握 c 不需要建立数学模型 d 控制效果好 e 鲁棒性 通常依据控制器输出与执行
  • 测试管理之测试过程

    测试过程 以此文来阐述自己对于测试过程的认识 目录 文章目录 目录 过程分类 测试过程主要分为测试前 测试中 测试完成 发布后 测试前 测试前注意事项 需求评审 参与评审 了解需求背景 需求详情以及需求价值 初步评估需求覆盖面 需求测试工作
  • CSS背景:背景色/背景图像/背景重复/背景附着/简写背景属性(一文搞懂)

    目录 CSS背景 CSS 背景色 实例 其他元素 实例 不透明度 透明度 实例 使用 RGBA 的透明度 实例 CSS 背景图像 实例 实例 实例 CSS 背景重复 实例 实例 CSS background repeat no repeat
  • 程序员版孔乙己

    互联网的格局 是和别处不同的 都是格子衫 稀疏的头发 双肩包 男 写代码的人 傍午傍晚散了工 每每三两人 背着手 沿着软件园溜达一圈 倘肯花点钱 便还会走到星巴克 买一杯咖啡 那样便能再多摸几分钟的鱼 我从十九岁起 便在软件园的星巴克打工
  • Vim 键盘贴纸(打印用)

    Vim是一个类似于Vi的著名的功能强大 高度可定制的文本编辑器 在Vi的基础上改进和增加了很多特性 vim学习过程中需要记住好多键位的使用 下面分享一下vim键位图 打印后贴在键盘上 原版下载地址 密码 ultv 注 作者纯手工打造 难免有
  • 数据相关知识点(数据资产、业务底座、业务中台、企业数仓、即席查询)

    业务底座 企业数仓所提供的支撑能力 业务中台 企业在经营过程中积累起来的 具有一定规模的且能够快速适应变化 能够支撑器企业数字化转型升级的能力 企业数仓 又名企业数据仓库 是一个面向主题的 集成的 非易失的且随时间变化的数据集合 用来支持管
  • 微信小程序自定义弹窗实现详解(可通用)

    本文为自定义弹窗 该内容可满足如下需求 自定义各种布局弹窗 点击弹窗布局外消失弹窗 弹出弹窗时背景阴影半透明 各方向弹出效果 本文为自下而上弹出 wxml 文件中 直接放到wxml的最底部就行了 十分简练
  • Unity之实现拖拽UI功能

    一 unity 图片切割 先把图片导入到Unity中 选中图片你会看到上边的Inspector界面 然后 选择Texture Type类型为Advanced 将Read Write Enabled选上 然后Sprite Mode选择Mult
  • [ Matlab ] 遗传算法求最短路径

    打包下载源代码 实例描述 配送中心数为 1 客户数 k 为 8 车辆总数 m 为 2 车辆载重皆为 8 吨 各客户点需求为 g i 1 2 8 单位为吨 已知客户点与配送中心的距离如表 1 其中 0 表示中心仓库 要求合理安排车辆的运输路线
  • 服务计算——web 技术 - 处理 Request 与 Response

    基于Negroni框架的cloudgo应用 本次实验是基于Negroni框架的应用 我设计了一个简单的四则运算应用 这个应用设计主要分为两部分 中间件设计 以及 main函数的设计 接下来就分别对这两个部分进行介绍 中间件设计 printF