自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 JavaScript中的数组操作

在之前的一篇博客中提到了一些 JavaScript Array 对象的方法,比如 slice()、splice()、pop()、push() 等,博客链接:http://xitongjiagoushi.blog.51cto.com/9975742/1653063JavaScript Array还有一些常用的操作或者说技巧,比如清空数组,克隆数组等,下面来看一下。1. 指定位置插入元素:使用 Arr

2015-07-21 20:49:27 376

原创 工作积累(十)——maven排除相关jar包依赖

在 maven 工程中引用到了一个 jar 包 commons-io-2.4.jar,由于被引用的 jar 包依赖 hibernate-jpa-2.0-api ,而 hibernate-jpa-2.0-api 存在 bug ,会报出Error: java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax/p

2015-07-21 20:49:25 3098

原创 JavaScript中的闭包(Closure)

在上一篇介绍JavaScript this 关键字的文章中我们提到了闭包这个概念。闭包是指有权访问另一个函数作用域中的变量的函数。从函数对象中能够对外部变量进行访问(引用、更新),是构成闭包的条件之一。创建闭包的常见方式,就是在一个函数内部创建另一个函数。为了理解闭包,先来看一下什么是变量的生命周期。变量的声明周期,就是变量的寿命,相对于表示程序中变量可见范围的作用域来说,生命周期这个概念指的是一

2015-07-21 20:49:23 449

原创 JavaScript中的this关键字

this 关键字在 JavaScript 中既常用,功能又强大,但很多时候容易混淆其指向的对象。下面通过两个例子来理解一下 this 。看第一个例子:var style = {  color: "Window Color"};var object = {  style: {    color: "Object Color"  }};function sayColor(){  co

2015-07-21 20:49:20 339

原创 工作积累(九)——前后台传递类Map型参数

最近在工作中整合友盟消息推送服务时,遇到了用 Ajax 向 Java 后台传递自定义参数的需求,当时想要采取 java.util.Map ,但发现 Ajax 无法传递 java.util.Map 类型的参数,后来无奈采取的方式的是采用了这样的 Vo 对象:public ExtraVo {  private List keys;  private List values;  //省略 get 

2015-07-21 20:49:17 2304

原创 工作积累(八)——AngularJS与单选框及多选框的双向动态绑定

AngularJS 在 中实现双向动态绑定十分简单,如下所示:只需要用ng-model 与 $scope 中的属性对应,即实现了type=”text” 的双向动态绑定。当 及 时情况略有不同:1. :回家回学校通过 value 属性指定选中状态下对应的值,并通过 ng-model 将单选框与 $scope 中的属性对应,便实现了 type=”radio” 时的双向动态绑定。 2. :铃

2015-07-21 20:49:15 413

原创 工作积累(八)——AngularJS与单选框及多选框的双向动态绑定

AngularJS 在 中实现双向动态绑定十分简单,如下所示:只需要用ng-model 与 $scope 中的属性对应,即实现了type=”text” 的双向动态绑定。当 及 时情况略有不同:1. :回家回学校通过 value 属性指定选中状态下对应的值,并通过 ng-model 将单选框与 $scope 中的属性对应,便实现了 type=”radio” 时的双向动态绑定。 2. :铃

2015-07-21 20:49:15 415

原创 工作积累(七)——Tomcat URIEncoding引起的中文乱码问题

在 J2EE 中用到了中文搜索,在后台接到的前台数据中出现了乱码,采用如下方式进行转码:try {  keyword = new String(cond.getKeyword().getBytes("iso-8859-1"),"utf-8");} catch(UnsupportedEncodingException ex) {  ex.printStackTrace();}这样在本地部署测

2015-07-21 20:49:12 790

原创 工作积累(七)——Tomcat URIEncoding引起的中文乱码问题

在 J2EE 中用到了中文搜索,在后台接到的前台数据中出现了乱码,采用如下方式进行转码:try {  keyword = new String(cond.getKeyword().getBytes("iso-8859-1"),"utf-8");} catch(UnsupportedEncodingException ex) {  ex.printStackTrace();}这样在本地部署测

2015-07-21 20:49:12 438

原创 工作积累(六)——jQuery实现DOM元素事件动态绑定

用 jQuery 为DOM元素绑定事件时,如果用下面这种方式:按钮一$(function() {  $('.dynamic-bind').on('click', function(e) {    alert(e.type); //’click’});});那么如果在绑定事件之后通过 jQuery 添加与该选择器相同的新的DOM元素:$('.dynamic-bind:last').afte

2015-07-21 20:49:10 375

原创 AngularJS(二)——使用AngularJS自定义service

与 Java 相似, AngularJS 中的 controller 应该尽可能保持短小精悍,不提倡在 controller 中进行 DOM 操作和数据操作。先来看一个臃肿、难以维护的 controller :var app = angular.module('APPModule', []);app.controller('MainController', function($scope) {

2015-07-21 20:49:07 7597

原创 AngularJS(一)——从零开始AngularJS

虽然已经使用了不短的时间 ,但对于 AngularJS 的了解还很浅,也没有系统的学习过,下面慢慢来,系统的梳理一遍 AngularJS ,顺带学习点之前几乎没有自己写过的 filterdirective service 等等。废话少说,第一篇就来看看如何开始使用AngularJS 。    简单来说,只需两步,就能用上高端大气上档次的基于 MVC 的 AngularJS : 1.index.ht

2015-07-21 20:49:05 574

原创 工作积累(五)——使用spring@Value注解实现常量功能

之前的博客中提到过如何通过 java.util.ResourceBundle 和 java.util.Properties 类通过读取 key-value 文件的形式实现常量功能。其实 spring 已经通过 @Value 注解实现,下面看看如何使用。 1.创建.properties文件:在如下目录创建 keyvalue.properties 文件 src/main/resources/META-

2015-07-21 20:49:03 1653

原创 工作积累(四)——JavaScript深度克隆的实现

JavaScript 中的数据有两种大类,即基本类型和引用类型。因为引用类型使用指针,所以在简单赋值时不能实现克隆,下面介绍两种方法来实现 JavaScript 深度克隆。 1. 原生JavaScript:function clone(former) {if(!(former instanceof Object)     || former === null    || (former in

2015-07-21 20:49:00 403

原创 初窥Python(一)——使用pymongo连接MongoDB

Python 可以使用 pymongo 库方便的操作 MongoDB 。插播一句,MongoDB 不同于关系型结构的三层结构——database--> table --> record,它的层级为 database -->collection --> document 。这里不重点介绍 MongoDB  用法,主要来看一下如何用 Python 使用 MongoDB。 1.安装MongoDB和pym

2015-07-21 20:48:58 3242

原创 工作积累(三)——使用jQuery实现回车触发事件

输入用户名密码后敲击回车即可登录是一个普通到我们经常会忽略的功能,然而之前并不知道如何实现。jQuery 可以帮我们迅速实现这一功能,方式如下。 1.jQuery代码:$(function() {    $("#login-input").keyup(function(e){        if(e.which === 13) {            $("#submit-button")

2015-07-21 20:48:55 453

原创 多学一点(十四)——服务器间通过rsync和inotify-tools动态同步数据

Linux 下的 rsync 命令非常强大,多用来同步不同服务器上的数据同步。以前我们通常使用 crond 来实现,但 crond 很难做到实时同步。下面介绍一种方法,通过在脚本中结合使用 inotify 及 rsync实现数据实时同步。 1.安装 rsync:[root@localhost ~]# yum install -y openssh-clients rsync这里要注意两点,一是进行同

2015-07-21 20:48:52 400

原创 工作积累(二)——使用java.util.ResourceBundle和java.util.Properties实现常量功能

在 Java 中我们往往通过定义常量来使用一些值,方便我们进行修改配置,如:public classConstant {  public static final String IMG_ORI_PATH = “ori/”;  public static final String IMG_THUMB_PATH = “thumb/”;  ……}这样我们在其他类中可以直接使用 Constant.

2015-07-21 20:48:50 313

原创 JavaScript中的slice()和splice()

slice() 和 splice() 是 JavaScript 中 Array 对象原型的两个方法,由于方法名很相像,经常会记混两者的作用,下面来做一个明确的区分。 1.slice(start[, end]):从数组中取元素,返回取出的子数组,对原数组无影响。其中,start 参数必填,表示取元素的起始位置;end 参数可选,表示取元素的终止位置,但不包含 array[end] 元素(可以理解为最

2015-07-21 20:48:47 416 1

原创 多学一点(十三)——解决Linux kdump服务启动失败

kdump 是 Linux Kernel 崩溃时的转储机制,简单理解就是在系统启动过程中如果 Kernel 因为某些原因崩溃了,kdump 就会负责记录日志以便排查原因。在 CentOS 6 等 Linux 发行版中,即便采用最小化安装, kdump 也会作为服务安装到系统中,此时可能因为我们对 Linux分配的内存的限制导致 kdump 服务开机启动失败,如图 1 所示:650) this.wi

2015-07-21 20:48:45 2894

原创 多学一点(十二)——使用extundelete恢复Linux下误删除文件

通常来说,对于重要文件我们都应该定期备份(如 /etc 下的配置文件),以免在喝醉了手残了等异常状态下将重要文件误删除。然而,如果意外真的发生,而我们又没有做好备份,那赶紧试试手动恢复吧,这里使用的文件恢复软件为 extundelete 。1.重新挂载分区为只读状态:这是恢复文件的第一步,也是最关键的步骤之一。假如我们误删除的文件为 /data/catalina.out , /data 目录为 /

2015-07-21 20:48:43 668

原创 多学一点(十一)——配置使用Tomcat Manager进行可视化部署

Tomcat Manager 是 Tomcat 自带的、用于对 Tomcat 自身以及部署在 Tomcat 上的应用进行管理的 web 应用,可以让我们很方便的在浏览器中对项目进行可视化地部署/取消部署/启动/停止。默认情况下,Tomcat Manager 是处于禁用状态的,如果想要启用,需要修改tomcat/conf/ 目录下的 tomcat-users.xml 文件来进行配置。1. 介绍一下

2015-07-21 20:48:39 908

原创 多学一点(十)——配置一个Tomcat使其可以多端口访问

在之前的博客中我们提到过如何在一台服务器上安装配置多个 Tomcat (传送门: http://xitongjiagoushi.blog.51cto.com/9975742/1626435 ),使用不同端口,以起到测试环境和生产环境分离的效果。假如现在只允许安装一个 Tomcat ,也要求达到相同的效果,可以使用下面这种方法。修改 server.xml配置文件:[root@localhost to

2015-07-21 20:48:37 336

原创 走近Redis(一)——Redis安装及基本key操作

Redis 是一款开源的NoSQL key-value 存储系统。Redis 常常和MemCache 一起提到,但与 MemCache 相比,Redis 是一种数据库,可以对数据持久化,同时, Redis 数据结构比较丰富——string、 hash、 list、 set、 sorted set。1.安装与启动 Redis:[root@localhost ~]# cd /usr/local/src

2015-07-21 20:48:34 1491

原创 JavaScript中的函数声明和函数表达式

JavaScript 中定义函数的方式有两种,一种是函数声明,另一种是函数表达式。这两种定义方式之间有一些细微的差别。1.函数声明:    function 关键字 + 函数名字 + 函数体构成了函数声明,具体形式如下:function functionName(arg0, arg1, arg2) {  // function body}Firefox、 Safari、 Chrome 和 Op

2015-07-21 20:48:31 342

原创 工作积累(一)——使用canvas实现前台图片base64转码

利用 HTML5 的 标签和 canvasapi ,我们可以得到图片的 base64 码,可以在前台完成图片向 base64 的转码而不用借助后台,下面看一下实现方法。1.HTML 代码片段:HTML 代码非常简单,只需要用到 HTML5 的 标签即可,指定其 id 方便我们找到该元素:但是需要注意的一点是,需要转换为 base64 码的图片都需要事先包含在 标签中,同时这么做可以为我们提供图

2015-07-21 20:48:29 4585

原创 JavaScript中的面向对象(一)——创建自定义对象

面向对象的语言有一个标志,那就是它们都有“类”的概念,通过类可以创建任意多个具有相同属性和方法的对象。JavaScript 中没有类的概念,因此它的面向对象与基于类的语言中的对象有所不同。JavaScript 对对象的定义是:无序属性的集合,其属性可以包含基本值、对象或者函数。可以把 JavaScript 对象理解成散列表,即一组名值对,其中的值可以是数据或函数。那么想要创建自定义对象,有以下几种

2015-07-21 20:48:26 436

原创 探秘Node.js(一)——Node.js简介及安装配置

1.Node.js 简介及特点:Node.js 是一个可以让 JavaScript 运行在服务器端的平台,它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python、 Perl、 PHP、 Ruby 程序一样。我们可以用 Node.js 轻松地进行服务器端应用开发,Python、 Perl、 PHP、 Ruby 能做的事 Node.js 几乎都能做,而且可以做得

2015-07-21 20:48:23 257

原创 多学一点(九)——使用touch命令创建指定时间的文件

之前在讲 find 命令时提到过其-newer , -anewer 和 -cnewer 参数,可以用这些参数查找某个时间段内的文件。但往往我们没有两个想要使用的准确的时间节点文件,这就需要用到接下来要介绍的用 touch 命令创建指定 atime 、 mtime 的文件。   (1)-t 参数:指定文件atime 和 mtime,可以使用 1970年1月1日到指定日期的毫秒数,也可以直接使用日期,

2015-07-21 20:48:21 1583

原创 学习笔记(十一)——Linux Shell 基础知识

1. shell 特性:使用 history 命令查看命令历史:[root@localhost ~]# history用户的 history 记录位于用户家目录下 .bash_history 文件中:[root@localhost ~]# vim ~/.bash_history有关 history 的相关快捷操作:[root@localhost ~]# !!    //上一条命令[root@loc

2015-07-21 20:48:19 239

原创 学习笔记(十)——软件包管理:rpm + yum

1.rpm :rpm(RedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用。下面列举了一些rpm 的常用参数:[root@localhost ~]# rpm -ivh packagename.rpm         //安装包[root@localhost ~]# rpm

2015-07-21 20:48:15 249

原创 学习笔记(十)——软件包管理:rpm + yum

1.rpm :rpm(RedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用。下面列举了一些rpm 的常用参数:[root@localhost ~]# rpm -ivh packagename.rpm         //安装包[root@localhost ~]# rpm

2015-07-21 20:48:13 362

原创 多学一点(八)——LNMP环境搭建

在之前的博客中虽然已经总结过了 MySQL 和 Apache 的安装、配置,但分开总结总是不太系统,这篇博客将会对LNMP(Linux + Nginx + MySQL +PHP)做一个比较系统的总结。需要提醒的一点是,这里我们并没有将 NMP 都安装在 /usr/local/ 目录下,而是统一安装在了 /opt/ 目录下,在博客末尾给出的参考资料中提供了/usr/local/ 目录下的安装方法,如

2015-07-21 20:48:12 356

原创 多学一点(八)——LNMP环境搭建

在之前的博客中虽然已经总结过了 MySQL 和 Apache 的安装、配置,但分开总结总是不太系统,这篇博客将会对LNMP(Linux + Nginx + MySQL +PHP)做一个比较系统的总结。需要提醒的一点是,这里我们并没有将 NMP 都安装在 /usr/local/ 目录下,而是统一安装在了 /opt/ 目录下,在博客末尾给出的参考资料中提供了/usr/local/ 目录下的安装方法,如

2015-07-21 20:48:11 249

原创 学学MySQL(一)——用户管理和权限管理

在实际应用中,我们经常会有这样一种需求——某一个项目的开发团队只能对其正在进行项目的数据库及数据表进行增删改查操作,而无权对其他项目的数据库进行上述操作,这就不能单单使用一个 root 用户来搞定,需要我们为 MySQL 添加普通用户并赋予相应权限。 1.创建/ 移除一个MySQL 普通用户:mysql> create user 'newuser'@'%' identified by 'thepa

2015-07-21 20:48:08 364

原创 多学一点(七)——不重启Linux添加磁盘,使用软链接为挂载点扩容

在使用 Linux 时,有时候会因为初始时磁盘空间分配估计不足,使用中需要将挂载点扩容的情况,这就需要我们挂载新的磁盘。但是如果我们在 Linux 运行过程中挂载磁盘, Linux 又不能在不重启的情况下自动识别,这时就需要我们使用下面的操作使 Linux 在不重启的情况下识别新挂载的磁盘。首先,查看主机总线号,磁盘肯定是有总线连接着的:[root@localhost ~]# ls /sys/cl

2015-07-21 20:48:06 1462 1

原创 多学一点(六)——在Linux下安装配置MySQL

1.下载、安装 MySQL :[root@localhost ~]# cd /usr/local/src[root@localhost src]# wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz[root@localhost src]# tar -zxvf mys

2015-07-21 20:48:03 238

原创 多学一点(五)——在Linux下安装配置Apache

1.下载、安装apache :在 apache 官网下载apache 的源码包:[root@localhost src]#wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.27.tar.bz2编译安装源码包:[root@localhost src]#tar -jxvf httpd-2.2.27.tar.bz2[root@localhostsrc

2015-07-21 20:48:01 346

原创 学习笔记(九)——压缩和打包

1.压缩与解压缩:压缩与解压缩常用的方式有gz, bz2, xz, zip,下面分别介绍一下这几种方式:(1)gzip:该命令可以将文件压缩为 gz 格式:[root@localhost~]# gzip file.log压缩后,当前目录下的 file.log文件会消失,压缩后的文件名为file.log.gz 。压缩时可以手动指定压缩级别,压缩级别从 1 到 9,数字越大压缩比例越高,默认的压缩级别

2015-07-21 20:47:58 339

原创 习题总结(二)——禁ctrl+alt+delete,禁普通用户登录,禁ping

习题出处:http://www.aminglinux.com/bbs/thread-7679-1-1.html 错误或感觉模糊的题目总结:3.怎样防止他人在服务器前通过按下 ctrl+alt+del 强行重启系统?修改如下文件:[root@localhost~]# vim /etc/init/control-alt-delete.conf将其中最后一行注释掉即可。 5.当在对服务器进行大负荷操作的

2015-07-21 20:47:55 407

空空如也

空空如也

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

TA关注的人

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