自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shengzhu1的博客

学习web后端的一些总结

  • 博客(20)
  • 收藏
  • 关注

转载 beego的SQL注入

SQL注入攻击SQL注入攻击是Web安全史上的一个重要里程碑,它从1999年首次进入人们的视线,至今已经有十几年的历史了,虽然我们现在已经有了很全面的防范对策,但是它的威力仍然不容小觑,SQL注入攻击至今仍然是Web安全领域中的一个重要组成部分。SQL注入实例考虑以下简单的登录表单: <form action="/login" method="POST"> <p>Username: <

2017-03-31 17:59:31 8880 1

转载 golang中的单元测试

一般为了保证整个系统的稳定性,通常都需要编写大量的单元测试,诸如像java的junit,php的phpunit等都提供了类似的功能。golang中的testing包提供了这个测试的功能,结合go test工具搞起来就很方便了。golang中的单元测试不单有功能测试,也还提供了性能测试,非常给力。功能测试在golang的src目录下新建目录math,测试目录结构如下:golang单元测试目录fibon

2017-03-30 17:22:28 2168 1

原创 beego跨域+后台Session控制

vue+beego作为后台跨域设置在使用golang做web的应用程序的时候,最容易碰到跨域问题了,跨域就是www.a.com访问www.b.com的文件。但是在浏览器里,为了安全起见,这样做是不允许的,这就是js的同源策略了。 鉴于此,vue前端需要传输数据到后端时,就遇到了跨域的问题,为了解决跨域问题,beego框架提供了以下的解决方法// 这段代码放在router.go文件的init()的开

2017-03-29 15:49:30 8969 2

转载 HTTP cookies 详解

HTTP cookies,通常称之为“cookie”,已经存在很长时间了,但是仍然没有被充分理解。首要问题是存在许多误解,认为 cookie 是后门程序或病毒,却忽视了其工作原理。第二个问题是,对于 cookie 的操作缺少统一的接口。尽管存在这些问题,cookie 仍旧在 Web 开发中扮演者重要的角色,以至于如果没有出现相应的代替品就消失的话,我们许多喜欢的 Web 应用将变的不可用。cook

2017-03-29 11:35:13 369

转载 如何在Linux中查看所有正在运行的进程

你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。ps命令输入下面的ps命令,显示所有运行中的进程:ps aux | less 其中, 1. ps a 显示现行终端机下的所有程序,包括其他用户的程序。 2. ps -A 显示所有

2017-03-29 11:02:38 9550

原创 golang的time.Parse()函数

golang的time包官方API:func Parse(layout, value string) (Time, error)Code:// See the example for time.Format for a thorough description of how// to define the layout string to parse a time.Time value; Par

2017-03-28 16:08:11 30304 1

转载 golang使用http client发起get和post请求示例

golang要请求远程网页,可以使用net/http包中的client提供的方法实现。查看了官方网站有一些示例,没有太全面的例子,于是自己整理了一下。get请求get请求可以直接http.Get方法,非常简单。1234567891011121314func httpGet() {    resp, err := http.Get("http://www.01happy.com/demo/accept

2017-03-28 10:45:31 2461

原创 golang的断言

最近用interface比较多,因此需要接触断言,有时会与类型转换函数搞混,因此了解一下断言和其用法,具体如下: 断言的应用var temp interface{}temp := "abcd"fmt.Printfln(temp.(string))可以看出类型断言的使用场景为:当某个类型为interface{}的变量,真实类型为A时,才做某件事时,这时可以使用类型断言。而普通的类型转化用法如下:

2017-03-27 15:07:05 1065

原创 golang的JSON处理

解析到结构体主要是把JSON数据解析到结构体,再去处理结构体数据,就会变得简单,例如有以下的JSON请求数据Req:{ "data":{ "PlayingNumber" : "number" , "WaitingNumber" : "number" , "PlayingUsers" : [{

2017-03-24 17:38:18 824

转载 ubuntu 16.04下搜狗输入法不能输入中文解决

之前一段时间正常使用的搜狗输入法突然无法输出中文(具体现象是,可以呼出搜狗输入法界面,但是候选词列表无显示),解决之后记录下来,希望能为同样遇到这个问题的人提供参考。同时附linux下常见软件崩溃问题解决方案。我的系统是:ubuntu 16.04 LTS 搜狗版本:sogoupinyin_2.1.0.0082_amd64 fcitx版本:1:4.2.9.1-1ubuntu1.16.04.1方法一

2017-03-24 14:57:32 426

原创 Mysql的数据分组

任务需求要统计玩家的分数排行榜,但是同一个玩家只能在排行榜中出现一次,因此需要去重处理。解决方案目前的设计是有一个PlayLog表,每一次用户游戏结束之后在PlayLog表中增加一条记录,设计如下type PlayLog struct { Id int64 User *User `orm:"rel(fk)"` StartTime time.Time

2017-03-23 17:32:33 487

原创 Mysql数据库sql_mode模式

查看数据库模式mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等! 查看默认的sql mode模式: select @@sql_mode; mysql 5.7版本mysql 5.7版本以上有一个名为ONLY_FULL_GROUP_BY的模式,早期的版本不存在这个模式, 这个模式影响GroupeBy功能的使用,利用set ses

2017-03-21 21:58:11 1107

原创 微信端从网页授权获取用户基本信息

在之后的项目中,可能要遇到从微信入口进入到游戏页面的操作,那么微信授权之后开发者又是如何获取用户的基本信息的?第一步:用户同意授权,获取code下图为scope等于snsapi_userinfo时的授权页面: * 用户同意授权后* 如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。若用户禁止授权,则重定向后不会带上code参数,仅会带上s

2017-03-17 15:20:26 674

原创 jQuery的attr()属性

问题描述在咕咕云的开发中,需要用到ajax的方法显示任务详情,在此页面上回复任务,删除评论,评论评论(即评论的盖楼),但是盖楼的功能一直想不到怎么解决。JavaScript代码解决var cid = data.data.Task.comment[i].cid;replyComment.id = cid//遍历完成后才进入这个函数。。。。。如何解决? replyComment.ad

2017-03-14 14:47:52 1155

转载 JavaScript 详说事件机制之冒泡、捕获、传播、委托

DOM事件流(event  flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话,会先触发父元素绑定的事件。事件冒泡(dubbed  bubbling):与事件捕获恰恰相反,事件冒泡顺

2017-03-13 19:57:57 474

原创 JS的getElementsByName()

之前用过getElementById()函数,直接调用某个元素的Id,即可以进行后续的操作,但是换了Name之后就有幺蛾子了 - getElementsByName()是Elements,而不是Element,写函数的时候要注意一下 - getElementsByName()的数据要访问时,要加下标document.getElementsByName("task_id")[0].value =

2017-03-10 09:47:31 590

原创 golang语言Time包的一个巨坑

Time包的time.Parse()time包中有一个Parse()函数,API为func Parse(layout, value string) (Time, error)作用是把一个表示时间的字符串转换成time.Time类型,使用如下:time1, _ := time.Parse("2006-01-02 15:04:00", "2016-02-24 12:03:21")fmt.Printl

2017-03-06 20:59:16 1468 2

转载 Terminator终端的配置

配置文件的位置安装好terminator终端后,按照网上的教程,路径~/.config/terminator/config是空的,连terminator文件夹都找不到命令man terminator_config出来也看不出什么干脆自己新建一个文件config文件,还是上面的路径,配置文件的内容参考网上的[global_config] title_transmit_bg_color =

2017-03-06 15:25:22 4890

转载 HTTP POST GET 本质区别详解

[原文链接](http://blog.csdn.net/gideal_wang/article/details/4316691) 一 原理区别    一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全

2017-03-06 10:34:29 204

转载 读懂diff

diff是Unix系统的一个很重要的工具程序。 它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:  $ diff <变动前的文件> <变动后的文

2017-03-02 19:42:18 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除