用php做京东网站页面,网站开发的权限设置,海南网站开发公司,网站建设外包工作室一、Restful风格请求 在目前所学内容中每个请求都需要绑定一个HandleFunc#xff0c;而在实际项目中会有很多URL#xff0c;且可能出现满足特定规定的URL#xff0c;例如#xff1a;/sxt/it和/sxt/baizhan都是以/sxt/开头#xff0c;且如果这两个URL里面代码也差不多是&am…一、Restful风格请求在目前所学内容中每个请求都需要绑定一个HandleFunc而在实际项目中会有很多URL且可能出现满足特定规定的URL例如/sxt/it和/sxt/baizhan都是以/sxt/开头且如果这两个URL里面代码也差不多是写两个Func就属于代码冗余了可以使用restful风格把满足特定格式url和功能类似的代码提入到一个func中实现代码复用二、Go语言的多路复用器在http包中提供了ServeMux实现多路复用器他会对URL进行解析然后重定向到正确的处理器上ServeMux是一个结构体里面存放了map和读写锁typeServeMuxstruct{mu sync.RWMutex mmap[string]myxentry hostsbool//whether any patterns contain hostnames.}在Go语言中有提供了ServeMux的对象DefaultServeMuxvarDefaultServeMuxdefaultServeMuxvardefautlServeMux ServeMux而平时使用的http.Server不指定Handler属性时默认就是DefaultServeMux三、使用第三方实现Restful风格可以使用命令从github上下载第三方库下载后放入到%GOROOT%/src/github.com中go get githbub.com/gorilla/mux使用mux包的Router实现restful风格packagemainimport(fmtgithub.com/gorilla/muxnet/http)funchello(w http.ResponseWriter,r*http.Request){vars:mux.Vars(r)fmt.Fprintln(w,dayinle,vars[key])}funcabc(w http.ResponseWriter,r*http.Request){fmt.Fprintln(w,abc)}funcmain(){r:mux.NewRouter()r.HandleFunc(/hello/{key},hello)r.HandleFunc(/abc,abc)http.ListenAndServe(:8090,r)}