分类
IT运维

centos下memcached安装与配置

1、yum安装memcached

yum search memcached
yum -y install memcached.x86_64

2、验证是否安装

#执行以下命令会输出帮助信息
memcached -h

3、memcached启动

memcached -p 9011 -l 127.0.0.1 -d -u root
#验证是否启动
ps -ef | grep memcached
#或者
netstat -ano | grep 9011

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
IT运维

git服务端新建项目与分支

一、服务端新建项目

cd /home/git
mkdir test
cd test/
git init
echo ‘test’ > test.txt
git add .
git commit
#输入提交语
#新建分支
git branch android_dev_v1

二、客户端下载项目

git clone ssh://git@www.example.com:1022/~/test

输入密码
进入目录test
建立本地分支android_dev_v1追踪远端分支android_dev_v1

分类
WEB开发

CodeIgniter部署发生错误(A PHP Error was encountered)

错误信息Message: mysql_connect(): No such file or directory,解决过程如下:
1、phpinfo()函数查看php.ini路径,以及mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket值为no value
2、修改php.ini配置(注:/var/lib/mysql/mysql.sock为你本机的位置,这个是我服务器上的)
mysql.default_socket=/var/lib/mysql/mysql.sock
mysqli.default_socket=/var/lib/mysql/mysql.sock
pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
3、重启php
原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
WEB开发

tomcat启动时自动执行代码

1、实现监听启动的接口

package cn.geekapp.timer;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener{
	
	/**
	 * 定时器
	 */
	private static Timer mTimer = null;
	/**
	 * 定时器启动间隔
	 */
	private static final long mPeriod = 1 * 10 * 1000L;//10秒

	@Override
	public void contextDestroyed(ServletContextEvent event) {
		// TODO Auto-generated method stub
		System.out.println("contextDestroyed begin");
		if(mTimer != null){
			mTimer.cancel();
		}
		System.out.println("contextDestroyed end");
	}

	@Override
	public void contextInitialized(ServletContextEvent event) {
		// TODO Auto-generated method stub
		System.out.println("contextInitialized begin");
		mTimer = new Timer(true);
		mTimer.scheduleAtFixedRate(new MyTimerTask(), mPeriod, mPeriod);
		System.out.println("contextInitialized end");
	}

}

2、定义TimerTask

package cn.geekapp.timer;

import java.util.TimerTask;

public class MyTimerTask extends TimerTask{
	
	private static boolean isRun = false; 

	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			if(isRun){
				System.out.println("task is running,return!");
				return;
			}
			isRun = true;
			System.out.println("MyTimerTask run at time "+System.currentTimeMillis());
			//业务逻辑代码
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			isRun = false;
		}
	}

}

3、web.xml添加监听

  
	cn.geekapp.timer.MyListener
  

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
WEB开发

好用的js加载中效果

下面是3个js函数和图片资源,把js和图片放在自己项目中,需要显示、隐藏加载中效果时,调用相应的函数即可。

//显示加载中进度...
function showLoading(){
	if(!loadingIsShow()){
		//filter:alpha(opacity=60);--兼容ie6、7、8
		var loadingDiv = '
加载中。。。
'; $('body').append(loadingDiv); } } //隐藏加载中进度... function hideLoading(){ if(loadingIsShow()){ $('#loadingdiv').remove(); } } //加载中进度是否已显示 function loadingIsShow(){ var loadingElement = document.getElementById('loadingdiv'); if(loadingElement){ return true; } return false; }

图片资源:
加载中图片
原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
未分类

java以指定编码读写文件

java以指定编码格式读写文件工具类:

package cn.geekapp.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * 文件读写类
 */
public class FileUtil {
	/**
	 * 读取文件
	 * @param file
	 * @param charset
	 * @return
	 */
	public static String readFile(File file, String charset){
		if(file == null)
			return "";
		if(!file.exists())
			return "";
		StringBuffer buffer = new StringBuffer();
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));
			String line = "";
			while((line = reader.readLine()) != null){
				buffer.append(line);
			}
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("readFile exception:"+e);
		}finally{
			try {
				if(reader != null)
					reader.close();
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
		return buffer.toString();
	}
	
	/**
	 * 保存文件
	 * @param file
	 * @param content
	 * @param charset
	 * @return
	 */
	public static boolean saveFile(File file, String content, String charset){
		if(file == null)
			return false;
		BufferedWriter writer = null;
		boolean flag = false;
		try {
			if(!file.exists())
				file.createNewFile();
			writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset));
			writer.write(content);
			writer.flush();
			flag = true;
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("readFile exception:"+e);
		}finally{
			try {
				if(writer != null)
					writer.close();
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
		return flag;
	}
}

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
APP开发

java日期时间格式化

java日期时间格式化工具类:

package cn.geekapp.datetimepicker;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 时间日期格式化
 */
public class DateUtil {
	public static final String FORMAT_MM_DD = "MM-dd";
	
	public static final String FORMAT_YYYY_MM = "yyyy-MM";
	
	public static final String FORMAT_YYYY_MM_DD = "yyyy-MM-dd";
	
	public static final String FORMAT_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
	
	public static final String FORMAT_YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
	
	/**
	 * 获取日期字符串
	 * @param date
	 * @param format
	 * @return
	 */
	public static String getDateStrByFormat(Date date, String format){
		String result = "";
		try {
			SimpleDateFormat sdf = new SimpleDateFormat(format);
			result = sdf.format(date);
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("Exception:"+e);
		}
		return result;
	}
	
	/**
	 * 获取日期字符串
	 * @param milliseconds
	 * @param format
	 * @return
	 */
	public static String getDateStrByFormat(long milliseconds, String format){
		return getDateStrByFormat(new Date(milliseconds), format);
	}
	
	/**
	 * 字符串转日期
	 * @param datetimeStr
	 * @param format
	 * @return
	 */
	public static Date getDateByStr(String datetimeStr, String format){
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		Date date = null;
		try {
			date = sdf.parse(datetimeStr);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return date;
	}
}

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
WEB开发

jquery选中select项

jquery select 选中,网上搜索不能使用,以下测试可以,示例如下:
1、html代码


2、jquery代码

$("#role_select option").each(function(){
	if($(this).text() == '超级管理员'){
		$(this).attr('selected', true);
	}
});

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
IT运维

mac下brew方式安装mysql

brew又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装、更新、卸载软件。
1、获取Homebrew(官网:http://brew.sh/)

#打开终端窗口, 粘贴以下脚本。脚本会解释它的作用,然后在您的确认下执行安装。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、安装mysql

brew install mysql

3、启动mysql

#目录可能不同,以你安装目录为准
cd /usr/local/Cellar/mysql/5.6.24/bin
#启动mysql
mysql.server start
#停止mysql
mysql.server stop

4、brew其他命令,以wget为例

#搜索
brew search wget
#安装wget
brew install wget
#卸载wget
brew uninstall wget
#更新wget
brew upgrade wget
#列出brew方式安装的软件
brew list
#显示软件信息
brew info wget
#显示包依赖
brew deps wget

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。

分类
WEB开发

phpMyAdmin修改登录的用户名和密码

安装phpMyAdmin后,可以使用root账号登录,安全考虑,禁用root登录,修改如下:

cd libraries
vi config.default.php
#修改如下代码
$cfg['Servers'][$i]['AllowRoot'] = false;

注:pma和pmapass为mysql数据库中的用户名和密码,mysql添加用户参照文章:http://www.geekapp.cn/archives/29.html

XAMPP集成环境phpMyAdmin错误记录:

#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)
vi config.inc.php
$cfg['Servers'][$i]['host'] = 'localhost';
#修改为
$cfg['Servers'][$i]['host'] = '127.0.0.1';

原创内容转载请保留出处GEEK笔记(http://www.geekapp.cn/)。