文档章节

Go语言实现简单的一个静态WEB服务器

itfanr
 itfanr
发布于 2014/11/16 10:20
字数 236
阅读 348
收藏 8

行业解决方案、产品招募中!想赚钱就来传!>>>

Android SDK的文档直接打开的话会很慢,而且不支持搜索。所以,本地搭建静态服务器是必要的。以下为引用的其他博客的资源,感谢作者。

首先,搭建一个静态的服务器 我写程序喜欢使用HTML通过AJAX发送JSON请求到后端处理。 HttpServer.go 代码如下:

package main
import (
        "flag"
        "io/ioutil"
        "log"
        "net/http"
        "os"
        "strings"
)

var realPath *string

func staticResource(w http.ResponseWriter, r *http.Request) {
        path := r.URL.Path
        request_type := path[strings.LastIndex(path, "."):]
        switch request_type {
        case ".css":
                w.Header().Set("content-type", "text/css")
        case ".js":
                w.Header().Set("content-type", "text/javascript")
        default:
        } 
        fin, err := os.Open(*realPath + path)
        defer fin.Close()
        if err != nil {
                log.Fatal("static resource:", err)
        } 
        fd, _ := ioutil.ReadAll(fin)
        w.Write(fd)
}

func main() {
        realPath = flag.String("path", "", "static resource path")
        flag.Parse()
        http.HandleFunc("/", staticResource)
        err := http.ListenAndServe(":8080", nil)
        if err != nil {
                log.Fatal("ListenAndServe:", err)
        } 
}

更BT的方法:

package main
import (
        "net/http"
)
func main() {
        http.Handle("/", http.FileServer(http.Dir("/tmp/static/")))
        http.ListenAndServe(":8080", nil)
}

将EasyUI前端框架解压到 /tmp/static 目录下:

在GOPATH下执行

go run HttpServer.go --path=/tmp/static
itfanr

itfanr

粉丝 124
博文 546
码字总数 191788
作品 1
济南
程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.4K
6
用vertx实现高吞吐量的站点计数器

工具:vertx,redis,mongodb,log4j 源代码地址:https://github.com/jianglibo/visitrank 先看架构图: 如果你不熟悉vertx,请先google一下。我这里将vertx当作一个容器,上面所有的圆圈要...

jianglibo
2014/04/03
3.9K
3
SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet
2014/05/21
9.6K
0
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.3K
16

没有更多内容

加载失败,请刷新页面

加载更多

阿里云手动搭建k8s搭建中遇到的问题解决(持续更新)

阿里云手动搭建k8s搭建中遇到的问题解决(持续更新) 参考文章: (1)阿里云手动搭建k8s搭建中遇到的问题解决(持续更新) (2)https://www.cnblogs.com/charlieroro/p/8450102.html 备忘一...

osc_r94nrknb
6分钟前
0
0
在IntelliJ IDEA中多线程并发代码的调试方法

通常来说,多线程的并发及条件断点的debug是很难完成的,或许本篇文章会给你提供一个友好的调试方法。让你在多线程开发过程中的调试更加的有的放矢。 我们将通过一个例子来学习。在这里,我编...

fightinging
7分钟前
0
0
Oracle使用PLSQL导入数据后中文乱码的解决方法

Oracle使用PLSQL导入数据后中文乱码的解决方法 参考文章: (1)Oracle使用PLSQL导入数据后中文乱码的解决方法 (2)https://www.cnblogs.com/yzhyingcool/p/10431137.html 备忘一下。...

osc_4punxmqt
7分钟前
0
0
ATFX安全知识:亏损形成或因偏见,勿被认知所骗

在汇市中,有一些人尽管有多年的投资交易经验,却总是与盈利无缘。如果归咎于交易水平不够,明显是很勉强的。是心态不对吗?可能也不是。其根本就在于没有分清外汇交易的本质,其潜意识里将投...

osc_ufe2hk4l
7分钟前
0
0
编码的浪漫:完美序列化的官方评测

在北银河65000个共和星,Zipack就像一台以可控核聚变驱动的永续型发动机,动力强劲,没有一丝赘肉。 西伯利亚大橘猫 Zipack VS MessagePack 虽然以前使劲吹过MessagePack,认为它是JSON的完美...

失败人士
14分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部