go搭建服务器基础

2023-11-15

goweb应用工作原理(用于个人学习)

​ 客户端发送请求给多路复用器,多路复用器根据请求------->处理器处理器-------->模型------->数据库

数据库找到相应的数据反馈给模型,模型将数据封装发给处理器 ,处理器给模板引擎然后生成模板

在这里插入图片描述

go里面有相应的http的包直接调用即可,这一点比java相对方便很多,下面有几种方式可以搭建服务器

hanglerFunc方式

package main    //声明包
 
import (      //导入包    
	"fmt"     //打印使用
	"net/http"  //  http服务使用
)
//处理器
func hangler(w http.ResponseWriter, r *http.Request) {     //名称可以随意命名   函数的参数不可随意命名
	fmt.Fprintln(w, "hello goweb", r.URL.Path)   //写到前台页面上去

}

func main() {
	http.HandleFunc("/", hangler)     //更具web原理  添加路径 添加处理器   将路径和处理器产生关联
	http.ListenAndServe(":8080", nil)  // 端口号   

}

Mux多路复用方式

package main

import (
	"fmt"
	"net/http"
)

func hangler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "hello goweb", r.URL.Path)

}

func main() {
	mux := http.NewServeMux()  //多路服务器处理请求
	http.HandleFunc("/", hangler)
	http.ListenAndServe(":8080", mux)
}

handle

package main  //声明包

import (
	"fmt"     // 打印
	"net/http"// http
	"time"
)

type Myhangdler struct{}  //定义结构体

func (m *Myhangdler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的处理器处理请求自定义hangler")
}

func main() {
	myhangdler := Myhangdler{}    //实例化接工体
	server := http.Server{
		Addr:        ":8080",   //声明端口
		Handler:     &myhangdler,  //声明处理器
		ReadTimeout: 2 * time.Second,  //读取时间设置
	}
	server.ListenAndServe()   // 应用到监听中去

	//http.Handle("/myhangler", &myhangdler)
	//http.ListenAndServe(":8080", nil)

}

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

go搭建服务器基础 的相关文章

  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|使用matplotlib绘制多种柱状图

    简介 在数据可视化领域 Matplotlib是一款强大的Python库 它可以用于创建多种类型的图表 包括柱状图 本文将介绍如何使用Matplotlib创建多种不同类型的柱状图 并提供示例代码 创建基本柱状图 首先 让我们创建一个基本的柱状
  • 【计算机毕业设计】电影院订票信息管理系统

    当今社会已经步入了科学技术进步和经济社会快速发展的新时期 国际信息和学术交流也不断加强 计算机技术对经济社会发展和人民生活改善的影响也日益突出 人类的生存和思考方式也产生了变化 传统电影院订票采取了人工的管理方法 但这种管理方法存在着许多弊
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 【C++】__declspec含义

    目录 一 declspec dllexport 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 declspec dllexport declspec dllexport 是 Microsoft Visual C 编译器提供的一个扩展
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Android Navigation的四大要点你都知道吗?

    在JetPack中有一个组件是Navigation 顾名思义它是一个页面导航组件 相对于其他的第三方导航 不同的是它是专门为Fragment的页面管理所设计的 它对于单个Activity的App来说非常有用 因为以一个Activity为架构
  • Hutool改变我们的coding方式(二)

    Hutool改变我们的coding方式 Hutool 简介 Hutool如何改变我们的coding方式 文档 安装 Maven
  • Python 文件的复制重命名以及xlsx文件中表格分开保存

    1 需要的头文件 import shutil import os import openpyxl 2 复制文件以及重命名 直接使用shutil库复制 重命名 移动即可 函数封装示例 source path 为全局变量被复制文件路径 dest
  • 春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了

    俺滴座右铭是不在沉默中爆发 就在沉默中灭亡 一起加油学习 珍惜现在来之不易的学习时光吧 等工作之后 你就会发现 想学习真的需要挤时间 厚积薄发啦 我们知道Java是面向对象的静态型编程语言 在Java的世界里万物皆对象 但我认为是万物皆数据
  • 【自适应滤波】一种接近最佳的自适应滤波器,用于突发系统变化研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 【路径规划】基于改进遗传算法求解机器人栅格地图路径规划(Matlab实现实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 初学者如何快速入门Python(内附详细攻略),一文讲清

    目前python可以说是一门非常火爆的编程语言 应用范围也非常的广泛 工资也挺高 未来发展也极好 Python究竟应该怎么学呢 我自己最初也是从零基础开始学习Python的 给大家分享Python的学习思路和方法 一味的买书看书 看视频 是
  • 2024年华为OD机试真题-分割均衡字符串-Python-OD统一考试(C卷)

    题目描述 均衡串定义 字符串只包含两种字符 且两种字符的个数相同 给定一个均衡字符串 请给出可分割成新的均衡子串的最大个数 约定字符串中只包含大写的 X 和 Y 两种字符 输入描述 均衡串 XXYYXY 字符串的长度 2 10000 给定的
  • 学Python,一个月从小白到大神?看你怎么学!

    Python是一门超强大而且超受欢迎的编程语言 它被用在各种领域 比如网站开发 数据分析 人工智能和机器学习 学会Python会给你创造很多职业机会 所以绝对是值得一试的 但你有没有过这样的梦想 一个月时间 从Python小白变成Pytho
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • 精简CUDA教程——CUDA Runtime API

    精简CUDA教程 CUDA Runtime API tensorRT从零起步迈向高性能工业级部署 就业导向 课程笔记 讲师讲的不错 可以去看原视频支持下 Runtime API 概述 环境 图中可以看到 Runtime API 是基于 Dr
  • (C语言)在屏幕上输出对应的图案(* ** *** *****.....)

    在屏幕上输出如下的图案 根据上面图片可以看出来 前7行中下一行的星比前一行多出两个星 第8行到第13行是下一行比前一行少2个星 代码为 include
  • el-select远程搜索:remote-method遇到的坑

    在使用远程搜索的时候 就是每次发请求获取数据然后选择 会出现选择后总是会出现选择紊乱的情况 在使用debugger后排查了很久 发现每次选择内容后 都会触发 remote method这个事件 也就是继续会发请求 然后获取到新的数据重新赋值
  • 什么是值传递,什么是引用传递

    一般认为 java中基础类型数据传递都是值传递 java中实例对象的传递是引用传递 值传递是对基本型变量而言 传递的是该变量的一个副本 不影响该原变量 而引用传递是一般对于对象型变量而言 传递的是该对象地址的副本 并不是原对象本身 1 值传
  • linux bash环境配置文件

    linux bash环境配置文件 你是否会觉得奇怪 怎么我们什么动作都没有进行 但是一进入 bash 就取得一堆有用的变量了 这 是因为系统有一些环境配置文件案的存在 让 bash 在启动时直接读取这些配置文件 以规划好 bash 的操作环
  • ubuntu切换国内镜像源,加速apt-get下载速度

    ubuntu切换国内镜像源 加速apt get下载速度 如题 使用apt get命令安装包时 由于系统自带的下载源在国外服务器上 故下载速度较慢 若切换为国内源 将显著提升下载速度 下列是设置步骤 STEP 1 查找适合自己系统的镜像源配置
  • 深入理解线程的原理和用法

    Java中的线程 程序 进程和线程 1程序是一段静态的代码 它是应用程序执行的蓝本 2进程是程序的一次动态执行过程 它对应了从代码加载 执行到执行完毕的一个完整过程 作为蓝本的程序可以被多次加载到系统的不同内存区域分别执行 形成不同的进程
  • 某某analysis参数算法分析

    作者 TheWeiJun 来源 逆向与爬虫的故事 今天给大家带来一个干货分享 由于想要查看某些APP的详细信息 需要通过APP名称去某麦网站进行搜索查看 而整个过程中涉及到逆向分析 为了方便大家学习 本次完整流程记录如下 目录 一 确定要获
  • java可变参数函数_Java 变参函数的实现

    Java的变参函数实现实际上参数是一个数组 其简单用法如下 public class variableParamTest private static void variableParam Object args for Object v
  • vue实现任务周期cron表达式选择组件

    vue cron表达式 Cron表达式的详细用法 vue cron 基于vue的cron表达式组件 项目开发过程中遇到了需要在from表单输入cron表达式的情况 但对cron表达式没有深刻了解的用户来说 输入一个正确的cron表达式有些困
  • 实现文件上传进度条及解决request.upload.addEventListener in not a function问题

    使用axios上传文件时需要进度条 可通过监听axios的onUploadProgress获取当前文件上传进度 进度条可以用antd的Progress 实现过程中出现问题request upload addEventListener in
  • 关于Hadoop分布式计算:多个Map分布在不同节点上执行

    1 背景 问题 学习Hadoop已经快一年了 也是似懂非懂的样子 由于项目的原因 再次启动Hadoop 一直以为这个很简单就能够实现多个机器一起完成一个任务 其实并不然 在实验过程中 发现Map的数量并不能通过设置 mapreduce jo
  • 一文详解APS能做什么?不能做什么?

    APS Advanced Planning Scheduling 被翻译成 高级计划排程 我觉得似乎advance用在这里应该是 进阶 的意思 就是在原来手工作业或者MRP MRPII基础进了一步 高级 总觉得是高大上 而APS就是一个辅助
  • Maya删除被锁定的节点

    问题描述 在Maya中如果节点被锁定 则无法被修改或删除 这种情况下需要通过Maya的命令对节点的状态进行修改 解决方法 首先选中被锁定的节点 然后在Python脚本编辑器中执行以下的代码 import maya cmds as mc li
  • 运用@Transactional,自己抛出异常时不会回滚的原因

    近日测试用例 发现这样一个现象 在业务代码中 有如下两种情况 比如 throw new RuntimeException xxxxxxxxxxxx 事务回滚 throw new Exception xxxxxxxxxxxx 事务没有回滚 自
  • 中缀表达式转后缀表达式C语言实现

    解决思路 依次扫描字符串元素 遇到左括号 直接入栈 遇到数字 输出当前数字 遇到乘除符号 除非栈顶遇到为 外进栈 否则遇到栈顶为 时 栈顶出栈 遇到加减符号 除非栈顶遇到 否则栈顶出栈 遇到右括号 除非栈顶遇到 否则栈顶出栈 遍历完后 弹出
  • 中文汉字 hex十六进制 互转

    工具地址 http stool chinaz com hex
  • 关于STM32调试器CMSIS_DAP的使用及注意事项

    说明 最近在淘宝上买了一个STM32F4x1系列的最小系统板 提供CMSIS DAP固件 进群领取固件 秒变CMSIS DAP调试器 技术交流QQ群 970663546 售后QQ群 1055686596 凭订单号进入 1 关于KEIL设置
  • 2021-07-26 WSL2 的安装和联网

    0 说明 最近在学习 Data Assimilation Research Testbed DART 相关内容 其软件是在 Unix Linux 操作系统下编译和运行的 由于我的电脑是 Windows 10 的 DART 推荐可以使用 Wi
  • go搭建服务器基础

    goweb应用工作原理 用于个人学习 客户端发送请求给多路复用器 多路复用器根据请求 gt 处理器处理器 gt 模型 gt 数据库 数据库找到相应的数据反馈给模型 模型将数据封装发给处理器 处理器给模板引擎然后生成模板 go里面有相应的ht