2014

Spring MVC接收List集合和数组参数

Spring MVC在接收集合请求参数时,需要根据参数情况对Controller和前端JS代码做相应的调整。在接收基本类型的List或数组时,只需使用@RequestParam指定对应名称即可完成转换。但是在接收对象实体类型的List时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。

AJAX跨域POST问题(HTTP,HTTPS)

浏览器遵循同源策略(same-origin policy),它不允许当前站点的脚本与不同源的站点之间进行数据交互,只要协议、域名、端口有任何一个不同,都被视为不同源。但有时确实又必须在当前站点通过Ajax请求其他不同源的资源,这明显与同源策略相悖,于是就有了JavaScript跨域问题。

至于为什么要有同源策略,可以Google一下同源策略的详解,这里只记录如何解决Ajax跨域POst的问题,包括不同协议(HTTP, HTTPS)之间的Ajax请求。跨域问题的解决办法有很多,对于端口和协议的不同,只能通过后台来解决。

跨域资源共享(CORS)

CORS原理

CORS(Cross-Origin Resource Sharing)跨域资源共享,定义了一种跨域访问的机制,当必须在访问跨域资源时,浏览器与服务器应该如何沟通。CORS背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。

MySQL获取汉字拼音首字母函数

功能:支持多个汉字
用法:SELECT PINYIN(‘单身不是狗’);
+———————-+
| PINYIN(‘单身不是狗’) |
+———————-+
| DSBSG |
+———————-+
1 row in set

注意:数据库的字符编码集得是UTF8或GBK才行。

编程高手的进阶之路

对于外界,Coding是被神化的,似乎需要极高的智商和热情才能从事这个行业。

IT界聪明的人很多,但极具天赋真正的能称之为天才的人不多,一般人们口中所谓的天才,只不过是比平常人更快的掌握技能、完成工作罢了;只要你找到了正确的方向,并辅以足够的时间,你一样能够踏上成功彼岸。

工作中解决问题的途径有很多,你能最快想到的方法一部分取决于你的天赋另一部分是靠经验。事实上,大部分人由于平时的工作繁重,不会去思考寻找最优的解决方案,写的代码能刚好满足需求就算完事了。这样无法得到提示你甚至会无形中加重自己的工作量,因为随着年龄的增长,属于你自己的时间会越来越少,你的精力会被生活瓜分。

如何才能得到最优秀的方案呢?

首先,我们得知道什么才是最优秀的解决方案,最优解决方案需要你能够走在需求的前面,将当前需求里有的、没有直接提出来的、现在暂时没有但将来可能有的等等,及编程潜规则等各个方方面面都综合考虑,给出最优方案。以一招胜万招。

你不再被需求牵着走,而是你牵着需求走。注重细节,注意那些当前需求里没有明文给出的细节:代码性能的差异、运行平台(浏览器)的差异、需求的隐性扩展、代码的向后兼容等等。

Git同步代码

Git是个非常强大的源代码管理系统,能支持复杂的任务。似乎强大和复杂是一对孪生兄弟,Git的操作也不那么简单,让人有种手握重权却不知道怎么玩的尴尬,以及对自己智商的严重怀疑。下面是最基本的Git工作步骤,让我们找回一点点自信吧。

配置Git

在本地尚未配置好Git的,请先查看如何配置Git

远程到本地

全新克隆

如果本地目录是从未使用的空目录(没有远程代码库的本地版本)

Hexo简单笔记

Hexo配置

_config.yml 配置文件,respsitory配置为自己的仓库地址,注意type为git

deploy:
  type: git
  repository: https://github.com/funxiong/fun90.github.io.git
  branch: master 

修改文章访问地址:

permalink: :year/:month/:day/:id/

source 博客数据源文件,其中的_post目录即是文章源文件(.md文件)

themes 主题存放目录,推荐主题:Jacman(如何使用 Jacman 主题)

Github搭建独立博客

春眠不觉晓,处处问题不少。才疏学浅,资质愚钝,还不刻苦努力,荒废了人生,虚度了年华,从IT男变成了IT单身狗。在开发过程中遇到的问题,翻着墙用着Goolge搜索,忽然之间很多以github.io的博客如风雨过后菊花开般崛起。冒着好奇害死猫的风险开始探个究竟,果然入坑了。

准备

  1. Git 下载

  2. Node.js 下载 版本:Windows Installer (.msi)

忘了告诉你,这里是在Windows环境下的搭建,我的Mac一直在店里没去拿。

那些年,踩过的JavaScript之坑

你编,或者不编程,项目就在那里,还未完成。你调,或者不调试,BUG就在那里,早晚得改。你踩,或者不踩,坑都在那里,等下一个受害者。

变量作用域

未使用var关键字定义的变量都是全局变量

在JavaScript中定义变量时漏掉var并不会报错。

1
2
3
4
5
function foo() {
value = 100; // value前没有var关键字,则声明了全局变量value并赋了值
}
foo();
console.log(value); // 输出 100