------------------------------------------------------------------------------------------------------------------------------------------------2013.6.4
一、必定要用本身的工具,这样确保工具可用性,避免浪费时间。
二、不要视图破解某些软件,直接寻找免激活版。
三、设备遇到问题,及时打客服电话,寻求专业人士的帮助。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.5
一、开发机由于盗版因此须要重装系统,但光盘下周才能到,能够临时搭建些简单东西先用着,好比jdk、tomcat,等光盘来了再花一天时间装系统,而不是等一周以后才能用。 【该条删掉,请看2013.6.20第一项】
二、数据物价,买刻录光盘必定要买正版的,去年买的盗版10张只有4张刻录成功,今天正版的索尼DVD,刻录速度快,噪音小,一次成功。
三、The processing instruction target matching "[xX][mM][lL]" is not allowed. web.xml的xml编码、版本标签未在首行首列。
四、由于静态页是非实时数据,能够在某种状况下顶替实时数据的错误。——王硕,于2013年6月5日下班路上。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.6
一、员工内部交流工具若是是飞信或微信,这种手机终端,能够在员工外出时收到最新信息。但要确保下班时间不打扰员工。
二、饭要一口一口吃,保证目前系统不受影响的状况下,快速实现产品,合理规划将来。快速实现产品不是盲目实现产品,也要有充分思考时间,只是不陷入将来的细节。
三、非业务的隔离出来,业务代理能够由页面人员来作,这样业务和页面不分家,方便快速开发,往后再隔离。必要状况下,前端业务,也要有本身的数据库和底层,但仅仅是为了支撑本身独立的业务。——王硕,于2013年6月6日中午。
四、squid,可作反向代理,相似于CDN缓存静态页面,但不能像CDN那样分担带宽。
五、“集群”和“群集”的区别,集群是多态物理机一个逻辑系统 透明性,群集是多物理多逻辑 独立性。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.7
一、对于未知的尝试,先尝试不破坏数据的方法(即使破坏数据的方法成功可能性很高),这样总体效率可能会更高,试验采样也会更多。
二、坚持天天备份。重要文件多方备份,有条理,不要形成版本不一致。
三、天天只工做6小时,余下的时间专门查资料或休息。
四、用笔记本记录重要的东西,一来加深印象,二来解决存放在电脑中忘记哪一个目录的问题。固然计算机中也要记录。
五、pageEncoding 与 charset,第一阶段jsp编译成.java,根据pageEncoding读取jsp,第二阶段javac的java源码至字节码.class用utf-8,第三阶段载入第二阶段的执行结果采用charset编码并返回给客户端。
六、chmod u+x filename.sh,将文本改成可执行文件,无需sh直接执行。u文件全部者,+x添加可执行权限。
七、>标准输出重定向,>>标准输出重定向追加,2>标准错误输出重定向。>&标准输出与标准错误的重定向简写。
八、find /目录 -name filename 按文件名查找
find 目录 -name filename 2>/dev/null 按文件名查找 屏蔽错误信息(将错误信息转移到/dev/null这个特殊地方)
find 目录 -size 1500c,c表示单位bytes。大于 +1500c,小于 -1500c
find 目录 -amin -10 # 查找在系统中最后10分钟访问的文件
find 目录 -atime -2 # 查找在系统中最后48小时访问的文件
find 目录 -empty # 查找在系统中为空的文件或者文件夹
find 目录 -group cat # 查找在系统中属于 groupcat的文件
find 目录 -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find 目录 -mtime -1 #查找在系统中最后24小时里修改过的文件
find 目录 -nouser #查找在系统中属于做废用户的文件
find 目录 -user fred #查找在系统中属于FRED这个用户的文件
九、mysql不支持非localhost的地址链接,修改mysql数据库user表中的host选项为%
十、底层ip常常变,用反向连接域名的方式固定逻辑地址。这有点像分层开发中的代理层,隔离业务与技术的变化。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.8
一、关注官网发行的软件,一旦有新产品上线,要把它全部系统的全部版本都尽量下载下来存档,由于开源领域的官网并不靠谱,说不定两周以后就不提供了。
二、官网下载以后,用rar压缩并设置密码,以避免病毒感染。
三、若是版本比较老,官网已经没有了,能够去镜像站点试试。——李苏,于2013年6月8日下午。
四、BASH脚本的赋值=等号两边不能有空格(网上不少代码有空格的,直接复制不能运行)。
五、ubuntu里面sh脚本常常执行出错,今天终于找到缘由了,ubuntu默认是dash 不是bash,因此执行时要显式引用 bash 取代 sh。
六、对于ubuntu默认使用dash问题,能够修改系统自带的软链接解决:sudo ln -sf /bin/bash /bin/sh
参数 s 是软链接,f是强制创建目录和文件,不管是否已经存在。
七、硬链接:物理文件,至关于热备系统,一改全改,但删除操做互不影响。
八、物化视图:用于预先计算并保存表链接或汇集等耗时较多的操做结果,和索引很类似,须要占用存储空间。——王硕,于2013年6月8日下午。
九、评判一个企业是否已经具有了完善的制度,关键要看这个企业的领导者是否已经制定出合理的薪酬待遇。
十、团队的凝聚力,源于每一个人的归属感,外在的一切都不重要。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.9
一、Windows 2008 Server 配置IE安全选项:管理首页,安全信息,右边“配置 IE ESC”,禁用。
二、nexus安装好后,远程索引默认是关闭的。须要把Configuration的Download Remote Indexes开启,并右击Repair Index。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.13
一、能够用live CD体验一下要安装该系统的服务器是否能找到兼容驱动。
二、ntpdate us.pool.ntp.org,更新系统时间。 crontab -e */5 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP 注意时间格式,若是格式错误,没法保存并提示没有安装crontab
若是没有ntpdate,yum install ntp
三、重启网卡:/etc/init.d/network restart
四、pwd察看当前所在目录。
五、root在/root下,其他用户若是有本身的目录就在/home/name下。一个软件多个实例的安装,实例要安装在本身name目录下。还有一些只用来登陆的用户没有本身的目录。
六、建立用户时,只给登陆权限,而后根据具体业务另外赋予目录权限。——王硕,于2013年6月13日下午。
七、安装完操做系统,先看看防火墙是否开启并容许远程登陆,ssh是否开启并可使用。——王硕,于2013年6月13日下午。
八、iptables启动 service iptables status service iptables restart service iptables stop
iptables开机自启动 chkconfig iptables off chkconfig iptables on chkconfig iptables --list,3是命令行模式,7是有界面的。
/etc/sysconfig/iptables iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
容许源地址为x.x.x.x/x的主机经过22(ssh)端口. iptables -A INPUT -p tcp -s x.x.x.x/x --dport 22 -j ACCEPT 容许80(http)端口的数据包进入 iptables -A INPUT -p tcp --dport 80 -j ACCEPT 禁止与211.101.46.253的全部链接 iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP 禁用FTP(21)端口 iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP 只禁用211.101.46.253地址的FTP链接 iptables -t nat -A PREROUTING -p tcp --dport 21 -d 211.101.46.253 -j DROP
九、察看进程:ps -ef | grep name
十、运行级别
0 - 停机(千万不要把initdefault设置为0) 1 - 单用户模式(像Windows9x下的安全模式) 2 - 多用户模式,但没有NFS支持 3 - 彻底多用户模式,标准运行级 4 - 没有用到 5 - X11,即X Window 6 - 重启(千万不要把initdefault设置为6),运行init 6机器会重启。 修改级别:/etc/inittab
十、Bash Shell中,function functionName { #注意括号前面必定要有空格。
十一、期待一元表达式,多是比较运算符两边的变量没有赋值。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.14
一、未来作自动化部署用expect,抽空调研一下。——王硕,于2013年6月14日早上。
二、while : 至关于其余语言中的while(true),注意while后面有空格,不然会对指令识别错误。
三、: ${HOSTNAME?} {USER?} {MAIL?},取环境变量的值。
四、bash -x bashScript 察看每行执行状态。
五、方法返回值 functionName para0 para1 result=$?
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.17
一、rest方法重载能够为null值的不一样类型参数,可能会冲突,好比getObj(Integer)与getObj(String)。——忆王硕曾经说。
二、rest发布json,会遇到整形、长整型根据数据实际长度自动识别问题,致使数据类型出错。因此咱们尽可能用xml方式传输。——忆凤凰手机端接口出现过的问题。 xml是w3c标准,而json只是某老外我的小发明,日访问量过亿的大型互联网产品都在用xml,也没见人家xml会由于传输数据量大而影响网站响应速度,真正影响响应速度是创建和断开链接。
三、
大麦CSON压缩算法,只适合在线选座这一类业务。
四、cxf 2.5.0发布rest,若是list中包含一个对象,它会自动把list改成单个对象,形成客户端接收数据没法解析。——忆凤凰手机端接口出现过的问题。
五、只有负载均衡才能将压力负载,热备只能增长压力和维护成本,为啥
大麦网用热备方式负载数据库?热备只用来处理不可抗拒的物理损伤,与负载无关。
六、曾经遇到页面访问慢的问题,查了半天是数据库返回慢,开发人员链接远程数据库调试,速度很快,最终查到缘由是另外一个放热备的机架挂了,但前端接口调用的有时是S有时是M。——王硕,于2013年6月16日下午。
七、分布式与集群区别:分布式是将业务切割成多个处理节点,一个集群只处理一个业务。
八、集群主要分三大类:高可用集群、负载均衡集群、科学计算集群。
九、分布式的公共资源用单台是最容易挂的,还不如直接用单台可靠性高,故障恢复快。因此要引出分布式集群的概念。
十、前端能够按频道业务区分,故障影响面小,负载更灵活,不过市面上所谓的中大型公司都用不上。——忆王硕曾经说。
十二、spawn是进入expect环境后才能够执行的expect内部命令,用来启动和命令的会话。
1三、expect "password:" 这里的expect也是expect的内部命令判断上次输出结果是否包含了"password:"字符串。有则当即返回,不然等待超时后返回。
1四、send "ispass/r"执行交互动做,与手动输入密码等效。末尾加上/r表示回车。
1五、interact,执行完保持交互状态,把控制权交给控制台,这时就能够手工操做了。若是没有这一句,登陆完成后会自动退出。
1六、若是分公司与分公司之间调配办公设备,必定要把型号、配置、性能,统一盘点清楚,而后再根据须要调配。
1七、公司开业第一天,应该把工具都备齐,好比备用网线、螺丝刀、备用电话、三通、胶带、剪刀、软件安装盘等各类工具,不必定值钱,但很重要。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.18
一、服务器更换硬件,可能须要钥匙才能开启,因此从外地调服务器过来,必定也要把说明书、电源线、钥匙(若是有)、保修单、驱动光盘等等,都一块儿发过来。
二、选择时区:tzselect
有时时间虽然同步了,时区也对,可是显示不正确,可使用硬件、系统时间同步来调整。 /sbin/hwclock --systohc #设置硬件时间和系统时间一致。 /sbin/hwclock --hctosys #设置系统时间和硬件时间一致。
hwclock -w #将当前时间写入CMOS。
三、关闭不经常使用服务。 cd ~ chkconfig --list > chkconfig.txt for oldboy in `chkconfig --list | grep 3:on | awk '{print $1}'`;do chkconfig --level 3 $oldboy off; done for oldboy in ntpd crond network syslog sshd;do chkconfig --level 3 $oldboy on; done chkconfig --list | grep 3:on
四、开启8080到80映射。 iptables-save > iptables.save.bak iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables-save /etc/rc.d/init.d/iptables restart
iptables-restore iptables.save.bak # 恢复
五、实际部署中,全部操做系统的防火墙应该是关闭的,使用硬件防火墙转发全部机器,统一一个节点配置。——王硕,2013年6月18日下午。
线上部署安全性问题的防火墙策略中,有内墙、外墙之分。绝大多数系统入侵来源于局域网内部,因此每台服务器都配置本身的防火墙策略。 可是这样引起一个问题,若是服务器数量很大,维护将很是麻烦,并且容易出错。再引起一个问题,若是防火墙策略须要大批更换,挨个每台进行替换将很是麻烦。
王硕就此观点提出全部服务器都接硬件防火墙,由硬件防火墙按逻辑业务划分子网,而后每一个子网之间的通讯再设定规则。 也就是全部服务器之间的通讯也都通过硬防,修改和替换时,只需改一个硬防节点,配置好的规则备份也方便,若是遇到入侵,能够快速关掉存在漏洞的通讯阀门。
六、全部服务器都通过Nginx,Nginx在线上配置时若是出错,是否会将咱们的SSH也断开了,只能跑到机房本地操做。——王硕,2013年6月18日下午 Nginx只是携带端口转发功能的Web容器,也是最近才支持TCP管理的,SSH是直接链接服务器的,不会走Nginx服务,因此不会影响。
我后来的理解(王硕并不一样意这种表达方式,你们不要轻易效仿): 传输介质由Internet接入防火墙,再接入Nginx,再接入具体服务器,这是一个树形拓扑结构,但这是逻辑拓扑结构。(逻辑拓扑结构是软件上的,也是咱们作架构分析时直接面对的) 而真正的拓扑结构是什么样子的呢?是星型或总线型结构,即全部服务器都【直接】接防火墙/路由器,真正控制走哪一个逻辑链路的是防火墙/路由器。 也就在Nginx上层存在一个逻辑十字路口,到底走Nginx代理仍是直接进入服务器,是靠IP地址决定的。若是web服务走Nginx就将域名绑定NginxIp,若是SSH进入服务器,那确定是链接服务器具体IP,因此互不影响。
由此发生争论,大约持续20分钟后,王硕完全无语了,问:“若是在本身单台PC上安装Nginx、tomcat、SSH,没有防火墙/路由器,谁来控制走哪条链路?因此这个问题不是防火墙策略问题,而是Nginx与SSH针对不一样应用本质的问题。” 我沉思一会回答:“计算机的网卡是数据链路层中的媒体介质访问层,不存在路由,可是,咱们的操做系统是支持TCP/IP协议的,也就说软件上至少在网络层以上,应该是应用层,操做系统本身就是网关,因此具备防火墙/路由器功能。” 而后王硕很累。。很无奈。。。。。。
渐渐地转过头问我:“咱们最初讨论的问题是啥?懂了吗?你最初的问题是为啥服务器经过Nginx代理后SSH链接不受Nginx配置的影响” 我说:“你别操心,别难过,其实我真的懂了,这个问题的核心是Nginx和具体服务器的IP地址不一样” 王硕:“嗯” 我:“因此这是防火墙/路由器 的链路选择问题。” 王硕奔泪中。。。 T_T~~~ 回过头来:“你不要扯到网络硬件设备上去,你这么表达是有问题的,怪不得岳学理面试你的时候你俩扯不到一块儿去” 而后又争论了好久。。。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.19
一、互联网开发,外键这个东西,是逻辑外键,上层不一样的业务,外键所对应的实体类型不同,其余字段的意思也不同。——王硕,与2013年6月19日中午。 好比通用组件计数器,计数字段在土豆网“点击数”和“赞”,应该设计成一个存储单元。 hibernate只用于核心项目的开发,不要用作有变化业务的项目开发。由于核心项目的表结构都有明确的目的,不存在这种通用性字段设计,外键也就明确了。 若是hibernate开发有变化的业务,查询时不该该使用hibernate级联查询方式,而是手写sql语句,此时也就失去了他自身优点。
二、groupadd wuyue # 添加组帐户 cat /etc/group # 组帐户列表
三、useradd -g wuyue co_memcached # 添加用户帐户 passwd -f co_memcached # 设置密码 cat /etc/passwd # 用户帐户列表 cat /etc/passwd | grep -v /sbin/nologin | cut -d: -f 1 # 察看能够登陆的系统用户
四、/opt/目录安装的软件附属生成文件只能在/opt/中,因此专门提供测试安装软件。——王硕,2013年6月19日 正常安装软件要装在/usr/local/中,而后将实例生成文件再分别放到其余用户目录。至关于Windows里面的Program Files安装office后,还要在用户目录中建立用户数据文件同样。 若是遇到系统迁移,目标服务器安装好这些软件后,直接迁移实例就能够。
五、centos上安装memcached yum install gcc -y yum install libevent libevent-devel -y # libevent是跨平台的事件触发网络库
cd ~/download/ wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz tar -xzvf ./memcached-1.4.7.tar.gz # 解压 rm -rf ./memcached-1.4.7.tar.gz # 删除安装包,以避免未来有人重复安装。
mv ./memcached-1.4.7 /tmp/ cd /tmp/ chown co_memcached:wuyue /tmp/memcached-1.4.7 -f -R # 赋予所属用户
mkdir /usr/local/memcached chown co_memcached:wuyue /usr/local/memcached -f -R # 赋予所属用户 ll /usr/local/memcached/
su - co_memcached cd /tmp/memcached-1.4.7/ ./configure --prefix=/usr/local/memcached # 指定安装目录 make # 编译 make install # 编译安装 rm -rf ./memcached-1.4.7/ # 删除安装包,以避免未来有人重复安装。
vi /etc/profile # 配置环境变量 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ #添加/usr/local/lib/到LD_LIBRARY_PATH。
su - co_memcached /usr/local/memcached/bin/memcached -d -u co_memcached -m 2048 -p 11211 ps -ef | grep memcached # 确认启动成功
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.20
一、不要交付半成品。 理论上,能够迭代交付,实际不少状况下,形成紧急迭代交付的缘由是资源匮乏。 若是资源匮乏,咱们先部署第一步让人家使用,在部署第二步的时候由于资源匮乏须要拆除第一步,此时此刻又没有充足的资源接管第一步的工做,反而影响已经使用第一步的人。 因此,即使是迭代交付,也必定要交付彻底独立可用的东西,避免后期资源须要借用前期资源形成的拆除。 在没有部署第一步的时候,使用老的方式解决问题,避免折腾,反而更好。
二、who 察看当前登陆用户 lsof(list open files),列出当前系统打开文件的工具,能够看到哪一个用户在访问哪一个文件。
三、公司的路由器必定要用企业级,其实企业级的价格只至关于两台家用路由器的价格,可是支持多WAN,算下来价格相同支持的节点数也相同,但便于管理和组建复杂环境。 今天我遇到一个比较复杂的网络问题,两个家用无线路由器,分别接入单独的ADSL,可是要让两台路由下的计算机处在同一个局域网中,若是企业路由多WAN口,就不存在这个问题。
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.21
一、linux文件目录权限 2.3.4,属于user 5.6.7,属于group 8.9.10,属于others r读 4 w写 2 x执行 1
二、jdk 安装 java -version # 察看已经安装的版本号,或者是否已安装须要卸载。yum remove softwareName chmod 555 /tmp/jdk-6u45-linux-x64.bin cd /tmp/ /tmp/jdk-6u45-linux-x64.bin rm -rf /tmp/jdk-6u45-linux-x64.bin mv /tmp/jdk1.6.0_45 /usr/local/jdk1.6.0_45
vi /etc/profile #set java JAVA_HOME=/usr/local/jdk1.6.0_45 PATH=$PATH:/$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib JRE_HOME=$JAVA_HOME/jre export JAVA_HOME PATH CLASSPATH JRE_HOME
cd /usr/bin
ln -s -f /usr/local/jdk1.6.0_45/bin/java ln -s -f /usr/local/jdk1.6.0_45/bin/javac ln -s -f /usr/local/jdk1.6.0_45/bin/jar ln -s -f /usr/local/jdk1.6.0_45/bin/javadoc ln -s -f /usr/local/jdk1.6.0_45/bin/jcontrol
java -version # 检查是否安装正确
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.24
一、Tomcat 安装
cp -rf ~/install/apache-tomcat-7.0.32.tar.gz /tmp/ chmod 555 /tmp/apache-tomcat-7.0.32.tar.gz cd /tmp/ tar -xzvf /tmp/apache-tomcat-7.0.32.tar.gz rm -rf /tmp/apache-tomcat-7.0.32.tar.gz mv /tmp/apache-tomcat-7.0.32/ /usr/local/ chmod 775 /usr/local/apache-tomcat-7.0.32/ -f -R
mkdir /data/java/tomcat/webTomcat # 注意linux须要逐层建立文件夹,建立以前先检查上级目录是否须要建立。 cp -rfv /usr/local/apache-tomcat-7.0.32/* /data/java/tomcat/webTomcat/ useradd -g wuyue co_webtomcat passwd -f co_webtomcat ll /home/ # 察看是否建立成功 chown co_webtomcat:wuyue /data/java/tomcat/webTomcat/ -f -R rm -rf /data/java/tomcat/webTomcat/bin/
vi /home/co_webtomcat/.bash_profile # tomcat CATALINA_HOME=/usr/local/apache-tomcat-7.0.32 CATALINA_BASE=/data/java/tomcat/webTomcat CATALINA_OPTS='-server -Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Dfile.encoding=UTF8 -Djava.awt.headless=true' export CATALINA_HOME CATALINA_BASE CATALINA_OPTS
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.25
一、ActiveMQ 安装
cp -rf ~/install/apache-activemq-5.6.0-bin.tar.gz /tmp/ chmod 555 /tmp/apache-activemq-5.6.0-bin.tar.gz tar -xzvf /tmp/apache-activemq-5.6.0-bin.tar.gz rm -rf /tmp/apache-activemq-5.6.0-bin.tar.gz
vi /tmp/apache-activemq-5.6.0/conf/activemq.xml <transportConnectors> <transportConnector name="openwire" uri="tcp://localhost:61616"/> </transportConnectors>
mv /tmp/apache-activemq-5.6.0/ /data/java/
mkdir /data/java/apache-activemq-5.6.0/logs vi /data/java/apache-activemq-5.6.0/bin/start-activemq.sh $ACTIVEMQ_BASE/bin/linux-x86-64/activemq > $ACTIVEMQ_BASE/logs/console.log 2>&1 & chmod 775 /data/java/apache-activemq-5.6.0/bin/start-activemq.sh
useradd -g wuyue co_activemq passwd co_activemq chown co_activemq:wuyue /data/java/apache-activemq-5.6.0/ -f -R
vi /home/co_activemq/.bash_profile # activemq ACTIVEMQ_BASE=/data/java/apache-activemq-5.6.0 SUNJMX="-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/conf/jmx.password -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access" ACTIVEMQ_OPTS="-server -Xms1024m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=128m -Dorg.apache.activemq.UseDedicatedTaskRunner=true" export ACTIVEMQ_BASE SUNJMX ACTIVEMQ_OPTS
二、检查rpm包是否支持安装目录重定位(relocatable)
rpm -qpi ./MySQL-server-5.5.32-1.linux2.6.x86_64.rpm | head -1
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.26
一、安装MySql
rpm -q mysql # 检查是否已经安装过
cp -rf /root/install/MySQL-server-5.5.32-1.linux2.6.x86_64.rpm /tmp/ chmod 555 /tmp/MySQL-server-5.5.32-1.linux2.6.x86_64.rpm rpm -ivh /tmp/MySQL-server-5.5.32-1.linux2.6.x86_64.rpm # --install --verbose 详细信息 --hash 安装进度
service mysql start netstat -an # 3306
cp -rf /root/install/MySQL-client-5.5.32-1.linux2.6.x86_64.rpm /tmp/ chmod 555 /tmp/MySQL-client-5.5.32-1.linux2.6.x86_64.rpm rpm -ivh /tmp/MySQL-client-5.5.32-1.linux2.6.x86_64.rpm
/usr/bin/mysql_secure_installation Enter current password for root (enter for none): 回车 Set root password? [Y/n] y 回车 Remove anonymous users? [Y/n] y 回车 Disallow root login remotely? [Y/n] n 回车,注意这里是n,不然不容许远程访问 Remove test database and access to it? [Y/n] y 回车 Reload privilege tables now? [Y/n] y 回车
mysql -u root -p mysql> show databases; mysql> use mysql mysql> show tables; mysql> select * from user; mysql> update user set Host='%' where ( Host = '::1' );
service mysql restart
rm -rf /tmp/MySQL-* # 安装、拷贝、设置权限,也均可以用这个通配符方式,当心操做即可。
二、安装amoeba
mkdir /tmp/amoeba-mysql-binary-2.2.0 cp -rfv /root/install/amoeba-mysql-binary-2.2.0.tar.gz /tmp/amoeba-mysql-binary-2.2.0/ chmod 555 /tmp/amoeba-mysql-binary-2.2.0/amoeba-mysql-binary-2.2.0.tar.gz tar -xzvf /tmp/amoeba-mysql-binary-2.2.0/amoeba-mysql-binary-2.2.0.tar.gz rm -rf /tmp/amoeba-mysql-binary-2.2.0/amoeba-mysql-binary-2.2.0.tar.gz mv /tmp/amoeba-mysql-binary-2.2.0/ /usr/local/
------------------------------------------------------------------------------------------------------------------------------------------------2013.6.27
一、nginx安装
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel useradd -g wuyue -M -s /sbin/nologin co_nginx
cp -rfv /root/install/nginx-1.4.1.tar.gz /tmp/ chmod 555 /tmp/nginx-1.4.1.tar.gz tar -xzvf /tmp/nginx-1.4.1.tar.gz rm -rf /tmp/nginx-1.4.1.tar.gz
cd /tmp/nginx-1.4.1/ ./configure --user=co_nginx --group=wuyue --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --prefix=/usr/local/nginx
可能有错误: ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option. 下载相应的src,而后指定--with-pcre=/data/develop/core/pcre-8.12 --with-openssl=/data/develop/core/openssl-1.0.0d --with-zlib=/data/develop/core/zlib-1.2.5
./configure --user=co_nginx --group=wuyue --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --prefix=/usr/local/nginx --with-openssl=~/install/src/openssl-1.0.1d make && make install rm -rf /tmp/nginx-1.4.1/
vi /usr/local/nginx/conf/nginx.conf #user co_nginx;
/usr/local/nginx/sbin/nginx -t # 测试启动 /usr/local/nginx/sbin/nginx ps -ef | grep nginx
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.1【总结王硕最近说】
一、配置管理
svn目录要简单,这样权限分配也简单,方便你们共享资源。svn即使出现误删除等操做,也能够经过日志回滚。
配置管理作版本控制,应该作成熟模块的版本控制,而不是开发过程当中的版本控制。一个模块调用另外一个模块时,应该调用成熟版,而不是快照版,这样经过nexus能够避免svn拉分支的现象。
配置管理员也应该是白盒,作版本控制、打包、部署等操做。
二、SQA
因地制宜,在细心观察的基础上帮别人简化流程,而不是用本身制定的流程规范别人。
因此SQA须要一个总监以上级的人,要有充足的开发、管理经验,找到问题关键点,只作必要性的修正,避免任何形式主义。
三、配置文件与标注区别(举例)
配置文件能够本身注入想要实例化的类,标注没法作到。spring本质原理的发挥。
配置文件作变量初始化。
四、测试环境和线上环境应该保持软件上的一致,但线下测试环境没有必要使用线上服务器相同的硬件配置,使用淘汰下来的服务器或客户机就能够。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.2
一、测试人员都应该是白盒,黑盒测试的目的是验证需求,由产品部门指派。
二、非关系型数据库关注业务自己,字段设计与查询方式必须简单、直接。
三、若是安装ADSL时,有多条线路,应该找个电话接上试试号码,以避免填错。
四、log4j
log4j中有三个主要的组件,它们分别是 Logger、Appender 和 Layout,log4j容许开发人员定义多个Logger,每一个Logger拥有本身的名字,Logger之间经过名字来代表隶属关系。
有一个Logger称为Root,它永远存在,且不能经过名字检索或引用,能够经过Logger.getRootLogger()方法得到,其余Logger经过Logger.getLogger(String name)方法。
Appender则是用来指明将全部的log信息存放到什么地方,log4j支持多种Appender,如 console、files、GUI components、NT Event Logger等,一个Logger能够拥有多个Appender,也就是你能够将Log信息输出到屏幕的同时存储到一个文件中。
Layout的做用是控制Log信息的输出方式,也就是格式化输出的信息。
log4j中,将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR、FATAL,当输出时,只有级别高过配置中规定的级别信息才能真正输出。
log4j支持两种配置文件:XML、java的property。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.4
一、若是前端页面没有展现错误的必要,咱们的异常都不抛出,直接记录日志就能够了。这样先后台开发,才能真正的并行展开。——王硕,2013年7月4日上午。
好比discuz、phpWind等论坛模板,底层数据库链接出异常了,报给页面展现conn.php错误,或者干脆把数据库路径报出来,对用户来讲没任何用途,反而下降系统安全性。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.8
一、认真地写测试用例的过程当中,每每就能发现隐含业务bug。因此开发人员要本身写测试用例,极可能会测试到测试人员不容易发现的bug。
二、注释除了 初始化、赋值 以外 都应该单独一行,对 方法、文件、类 的长度限制要算注释行数的,由于必要的注释多了就证实复杂度比较高。
三、不少成功的产品,都是在未开发时就打广告的,在客户的期盼中上市。不少失败的产品,都是打算在开发完成后再推广的,结果永远都没开发完。2013年7月8日晚,与王硕在地铁上讨论。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.9
一、若是DHCP获取IP地址有问题,以管理员身份运行cmd,执行 netsh winsock reset,而后重启计算机。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.11
一、局域网传输文件 tar -czvf sessionTomcat.gz /data/java/tomcat/sessionTomcat/ scp ./sessionTomcat.gz root@192.168.0.253:/tmp/
二、Tomcat Connector配置
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 能够更改成: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxHttpHeaderSize="8192" maxThreads="250" enableLookups="false" acceptCount="100" compression="true" URIEncoding="UTF-8"/>
maxHttpHeaderSize="8192":最大HttpHeader,缺省为4096。 maxThreads="250":最大线程数,能够设置250-300,缺省为40。 enableLookups="false":当执行request.getRemoteHost()时候,是否执行DNS搜索获得实际客户端主机名,缺省是true。 acceptCount="100":当全部的请求处理线程都在使用的时候,请求等待队列的大小,缺省是10。 compression="true":使用压缩,能够节省带宽 URIEncoding="UTF-8":URI的编码,使用UTF-8能够确保URL按照UTF8编码后的参数能够正确获得。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.12
一、UML这种东西就像瑞士军刀,看起来工具不少颇有用,其实啥用都没有。
二、树立品牌,要有个性,靠出个洋相炒做一下,活不长久。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.17
王硕codeReview
一、相同的做用的常量、方法,都放在同一个位置。
二、能配置的常量参数,都走配置文件。
三、配置文件单位与实际使用单位不一样,能够非final,不必定要用final约束程序员修改常量。
四、底层不抛状态码的,返回null须要在接口注释中说明。
五、xx-业务名-service.xml
六、参数判断都在最外层,由于最外层有业务。结合上文减小没必要要的参数判断。
七、有的缓存客户端是不抛异常的,不用catch。
八、两字符串比较时,不要用 contains 代替 equals。
九、若是底层程序因为没有必要操做而直接跳过操做,要返回正常,让上层透明,由于没有错误出现。这样上层能够觉得彻底执行ok,而且用这个成功状态执行其余操做。
十、全部无业务的底层操做,都应该拆分红private,而后有业务的(那怕就是判断参数是否合法)定义成public再调用这个private。
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.23
一、mybatis 尽可能用#{}不用${},在sqlserver中的top须要${}不然性能很慢。——忆王硕曾经说 使用${}须要注意字符串过滤,不然有注入漏洞。
二、PowerDesigner导出sql语句。 Database → Datebase Generation...
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.27
一、mongodb 安装 cp -rf ~/install/mongodb-linux-x86_64-2.4.6.tgz /tmp/ chmod 555 /tmp/mongodb-linux-x86_64-2.4.6.tgz cd /tmp/ tar -xzvf /tmp/mongodb-linux-x86_64-2.4.6.tgz rm -rf /tmp/mongodb-linux-x86_64-2.4.6.tgz mv /tmp/mongodb-linux-x86_64-2.4.6/ /usr/local/mongodb-2.4.6/
mkdir /data/java/mongodb-2.4.6/ mkdir /data/java/mongodb-2.4.6/log mkdir /data/java/mongodb-2.4.6/data mkdir /data/java/mongodb-2.4.6/data/db
useradd -g wuyue co_mongodb passwd co_mongodb
chown co_mongodb:wuyue /usr/local/mongodb-2.4.6/ -f -R chown co_mongodb:wuyue /data/java/mongodb-2.4.6/ -f -R
su - co_mongodb
/usr/local/mongodb-2.4.6/bin/mongod --logpath=/data/java/mongodb-2.4.6/log/mongodb.log --logappend --dbpath=/data/java/mongodb-2.4.6/data/db --nojournal --port=20000 --maxConns 500 --fork
ps -ef | grep mongod /usr/local/mongodb-2.4.6/bin/mongo localhost:20000 > show dbs
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.28
一、Replica Sets
mkdir -p /data/java/mongodb-2.0.9/data/r0 mkdir -p /data/java/mongodb-2.0.9/data/r1 mkdir -p /data/java/mongodb-2.0.9/data/r2
mkdir -p /data/java/mongodb-2.0.9/data/key echo "this is rs1 super secret key">/data/java/mongodb-2.0.9/data/key/r0 echo "this is rs1 super secret key">/data/java/mongodb-2.0.9/data/key/r1 echo "this is rs1 super secret key">/data/java/mongodb-2.0.9/data/key/r2 chmod 600 /data/java/mongodb-2.0.9/key/r*
/usr/local/mongodb-2.0.9/bin/mongod --replSet rs1 --fork --port=10000 --dbpath=/data/java/mongodb-2.0.9/data/r0 --logpath=/data/java/mongodb-2.0.9/log/r0.log --logappend --nojournal --maxConns 100 --oplogSize 10 /usr/local/mongodb-2.0.9/bin/mongod --replSet rs1 --fork --port=10001 --dbpath=/data/java/mongodb-2.0.9/data/r1 --logpath=/data/java/mongodb-2.0.9/log/r1.log --logappend --nojournal --maxConns 100 --oplogSize 10 /usr/local/mongodb-2.0.9/bin/mongod --replSet rs1 --fork --port=10002 --dbpath=/data/java/mongodb-2.0.9/data/r2 --logpath=/data/java/mongodb-2.0.9/log/r2.log --logappend --nojournal --maxConns 100 --oplogSize 10
/usr/local/mongodb-2.0.9/bin/mongo -port 10000
> config_rs1={_id:'rs1',members:[{_id:0,host:'localhost:10000'},{_id:1,host:'localhost:10001'},{_id:2,host:'localhost:10002'}]} { "_id" : "rs1", "members" : [ { "_id" : 0, "host" : "localhost:10000", "priority" : 1 }, { "_id" : 1, "host" : "localhost:10001" }, { "_id" : 2, "host" : "localhost:10002" } ] }
> rs.initiate(config_rs1); { "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 }
> rs.status()
------------------------------------------------------------------------------------------------------------------------------------------------2013.7.29
一、CentOS 释放内存
echo 1 > /proc/sys/vm/drop_caches
free -m
total 内存总数 used 已经使用的内存数 free 空闲的内存数 shared 多个进程共享的内存总额 buffers buffer Cache和cached Page Cache 磁盘缓存的大小 -buffers/cache (已用)的内存数:used - buffers - cached +buffers/cache(可用)的内存数:free + buffers + cached 可用的memory=free memory+buffers+cached
二、察看主板上的内存条
dmidecode |grep -A16 "Memory Device$"
三、公司内部的接口,底层和代理的interface能够放在统一的jar包中,只要在javadoc中说明就能够了。——王硕,2013.7.29晨。
四、尽可能不要IService,这个代码量虽然少,但开发具体业务会有难度,好比PO与DTO的转化、具体业务的参数判断等。——王硕,2013.7.29晨。
------------------------------------------------------------------------------------------------------------------------------------------------2013.8.1
下班路上与王硕讨论
一、wap只是现有产品的衍生物,不是营销手段。若是说作了wap就能带来多大流量,那基本上是不可能的。
二、作wap产品要有特点,由于手机屏幕小,流量少,网速慢,因此内容不能和pc同样,要解决在没有电脑条件下的紧急事务。
------------------------------------------------------------------------------------------------------------------------------------------------2013.8.17
一、使用mongodb时,不要用count方法,查询idList的时间也比count的时间短。——忆王硕曾经说 因此咱们在mongodb中用count翻页时,须要查询idList而后求size()。每次多查询一个id,判断当前页是否是最后一页。
二、使用mongodb时,getByIdList查询出来的数据可能和idList顺序不一致,须要从新根据idList排序。——忆王硕曾经说
三、关联表dto每每要携带主业务表的字段,由于不少时候单纯查询关联表没有意义。——王硕,2013.8.13 CodeReview 此时咱们须要提供两个查询,一是返回主业务的idList,二是关联表dto含主表字段的数据,在基层代理里面作。
------------------------------------------------------------------------------------------------------------------------------------------------2013.8.19
yum install sysstat
[root@COS ~]# iostat Linux 2.6.18-308.el5 (COS.D.IBM.251) 2013年08月19日
avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.00 0.09 0.00 99.90
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.33 0.60 6.03 1610042 16218670 sda1 0.00 0.16 0.00 419476 30 sda2 0.33 0.44 6.03 1190180 16218640 dm-0 0.76 0.19 6.03 504474 16218640 dm-1 0.00 0.00 0.00 912 0
%idle值高,表示CPU较空闲,若是%idle值高但系统响应慢时,有多是CPU等待分配内存,此时应加大内存容量。%idle值若是持续低于10,那么系统的CPU处理能力相对较低,代表系统中最须要解决的资源是CPU。
------------------------------------------------------------------------------------------------------------------------------------------------2013.8.28
一、eclipse和jdk的字长必须一致,不然eclipse启动报错。
二、系统字段,好比删除标志,dao的update不该该更新。建立时间等字段,底层能够放开,但对前面的代理层不该该提供,与此同时底层必须写上注释:啥时候可能会用,上层禁止放开等警告。
------------------------------------------------------------------------------------------------------------------------------------------------2013.8.30
一、Eclipse 没法建立 Tomcat Server Cannot create a server using the selected type D:\workspace_3.7_2013\.metadata\.plugins\org.eclipse.core.runtime\.settings 把org.eclipse.wst.server.core.prefs和org.eclipse.jst.server.tomcat.core.prefs 这两个文件删掉,重启Eclipse
------------------------------------------------------------------------------------------------------------------------------------------------2013.9.6
一、MySql热备,热备服务器配置与在线服务器配置同样,资源浪费。 让统计类的业务访问热备服务器,这样统计计算时不占用在线服务器资源。——王硕,2013.9.4 晚上 将Mongodb安装在热备服务器上,避免热备服务器资源浪费。——王硕,2013.9.5 上午 热备服务器的资源过剩主要体如今CPU与内存,若是为了不热备服务器资源浪费而安装其余服务,应该将其余服务单独用一块硬盘,以解决热备的IO瓶颈,甚至支持服务、数据、日志 的热插拔。——柳晛,2013.9.5 上午
二、为何要用基础Service封装Dao? 其实基础Service就是封装了一下Dao和参数转换,目的是为了分布式部署,由于Dao没法发布服务而基础Service能够。 若是不用分布式,咱们彻底能够用Dao当基础Service,用Service当代理Service,把全部业务写在基础Service中。
三、图片使用 独立二级域名,方便未来作统一路径管理。——王硕,2013.9.5 晚上
四、wap使用独立的nginx。——王硕,2013.9.5 晚上
------------------------------------------------------------------------------------------------------------------------------------------------2013.9.16
一、察看那些进程占用了 80端口
netstat -lnp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2953/nginx: worker
二、察看linux内核版本 uname -a Linux cn.27rc.hasee 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
三、察看linux版本 lsb_release -a
四、察看cpu信息 cat /proc/cpuinfo
五、察看内存信息 cat /proc/meminfo
六、top察看各核心占用状况 按键盘数字键:1
------------------------------------------------------------------------------------------------------------------------------------------------2013.9.22
一、安装Nexus
cd ~/download/ wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz
mv ~/download/nexus-2.6.3-01-bundle.tar.gz ~/install cp -rfv ~/install/nexus-2.6.3-01-bundle.tar.gz /tmp/ cd /tmp/
tar -xzvf ./nexus-2.6.3-01-bundle.tar.gz rm -rf ./nexus-2.6.3-01-bundle.tar.gz
useradd -g wuyue co_nexus passwd co_nexus
mv /tmp/nexus-2.6.3-01/ /data/java/ chown co_nexus:wuyue /data/java/nexus-2.6.3-01/ -f -R
/data/java/nexus-2.6.3-01/bin/jsw/linux-x86-64/nexus start ps -ef | grep nexus
二、安装svn,subversion
yum install subversion -y
mkdir /data/svn mkdir /data/svn/repos svnadmin create /data/svn/repos # 建立svn库
------------------------------------------------------------------------------------------------------------------------------------------------2013.10.07
一、Nginx日志格式改成: log_format main '$remote_addr - [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ';
二、目录配置,若是在Window下,应该注意\写成\\,不然就将后面的字符转义了。
三、tomcat日志格式改成: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="access_log." suffix=".log" pattern="%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %c %D" resolveHosts="false" />
------------------------------------------------------------------------------------------------------------------------------------------------2013.11.15
一、若是分布式开发任务量较重,能够先用private方法代替分布式,以拆分规范控制代码质量。
二、mysql建立测试数据库 SET character_set_database='utf8'; SET character_set_server='utf8'; create database grant all on test.* to 'test' Identified by "test";
三、底层通用系统,可能别人只须要一部分,因此开发时要注意每一个细小模块均可以单独使用,而且提供给别人调用时,必定要千方百计减小调用者工做量。
四、对于通用性方法,在上层提供代理时,可适当封装固定参数,以减小参数数量,提升易用性。
五、Window Nginx 启动 关闭 重启 start nginx.exe 启动 nginx -s stop 强制关闭 nginx -s quit 安全关闭 nginx -s reload 改变配置文件的时候,重启nginx工做进程,来时配置文件生效 nginx -s reopen 打开日志文件
六、外地开发。 Session、权限系统、用户中心,这些能够单独部署的系统能够在外网服务器上部署,并暂时对外开放。 JMS、Memcached、Mongodb,等底层数据库或中间件,由开发机本身安装,不要对外开放。 ——王硕
七、XSS攻击能够用修改DOM的方式修改from标签,从而使数据提交到其余系统中。——王硕 2013.11.14 晚上
------------------------------------------------------------------------------------------------------------------------------------------------2013.11.27
一、url重写不方便调试 在分布式环境中,咱们可能须要前端负载均衡服务器作代理,对url进行重写,可是这种状况阻碍了开发环境的调试,须要在开发环境也部署负载均衡或者重写拦截器。
二、伪静态的做用 在网上大多都说伪静态可以提升安全性,其实我以为这个理论就比如POST比GET更安全同样,其实除了能安慰本身以外还真起不到安全效果。 我认为伪静态的做用,仅仅是为之后真正的静态页面提早搭建目录,使得未来不用修改整个站点的url路径。 后来据王硕所说,即使未来用静态化,为保证目录兼容性,也没必要如今用伪静态的方式提早搭好,由于运维人员能够经过反向代理将错误的路径指正确。
三、struts2漏洞由前端代理能够过滤 今年暴出struts2的重大漏洞,实际这种漏洞在负载均衡环境中,反向代理能够将敏感字符过滤。 固然,咱们的安全机制不能只局限于网络,还要在程序中分层把控。
------------------------------------------------------------------------------------------------------------------------------------------------2013.12.17
一、我最近总结出一点来、、当咱们看到咱们身上有一点比别人强的时候、应该为本身高兴、可是不要看轻别人。——鄢华健 于 2013.12.9下午在
大麦辞职群中所说。
二、jQuery 使用 CSS 选择器来选取 HTML 元素。 $("p") 选取 <p> 元素。 $("p.intro") 选取全部 class="intro" 的 <p> 元素。 $("p#demo") 选取全部 id="demo" 的 <p> 元素。
三、jQuery 属性选择器 $("[href]") 选取全部带有 href 属性的元素。 $("[href='#']") 选取全部带有 href 值等于 "#" 的元素。 $("[href!='#']") 选取全部带有 href 值不等于 "#" 的元素。 $("[href$='.jpg']") 选取全部 href 值以 ".jpg" 结尾的元素。
四、把全部 p 元素的背景颜色更改成红色: $("p").css("background-color","red");
五、更多的选择器实例: $(this) 当前 HTML 元素 $("p") 全部 <p> 元素 $("p.intro") 全部 class="intro" 的 <p> 元素 $(".intro") 全部 class="intro" 的元素 $("#intro") id="intro" 的元素 $("ul li:first") 每一个 <ul> 的第一个 <li> 元素 $("[href$='.jpg']") 全部带有以 ".jpg" 结尾的属性值的 href 属性 $("div#intro .head") id="intro" 的 <div> 元素中的全部 class="head" 的元素
六、获取是否包含某个样式:var f = $("#check_status").attr('class').indexOf('checked');
七、js正则判断输入格式 if (!(/(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)|(1[358]{1}[0-9]{9})/.test(account)) || password.length < 6) { showError("帐号或密码输入的格式不正确"); return; }
八、Ajax jQuery.ajax({ type : "POST", timeout : 20000, url : "${tp}/act/member/login_submit.jsp", data :"f="+ encodeURIComponent(f) + "&account=" + encodeURIComponent(account) + "&password=" + encodeURIComponent(password) + "&random=" + Math.random(), dataType : "text", success : function(data) { if(data=="true"){ location.href="${tp}"; }else{ location.href="${backUrl}"; } return; }, error : function() { showError("网络请求出错,请稍后重试"); return; } });
九、文档加载完毕后,给符合条件的一个元素增长样式: $(document).ready(function() { var hotelId = $.cookie('hotelId'); $('#s_' + hotelId).addClass("icon"); });
十、js跳转到其余页面:location.href = "url";
------------------------------------------------------------------------------------------------------------------------------------------------2013.12.26
一、本地缓存的做用,和静态页的区别 本地缓存能够理解为静态页,可是与静态页有所区别。 静态页是纯静态,没有动态效果,而使用本地缓存的动态页面则能够在局部动态,其余地方都从本地缓存取。——2013.12.18 王硕,办暂住证路上。
二、url重写的做用 网上说了url重写有N多好处,但没一个靠谱。 好比SEO优化,其实在SEO这个名词诞生以前早就有URL重写技术。 好比安全性,其实这和有人说POST比GET安全同样,没什么意义,真正安全仍是用数字签名更好一些,和安全是两码事。 真正的用途,是将对外url统一管理,内部地址改变,或者作成了分布式,外部url不变,也就不用修改大量的url,至关于地址层的代理。——上午与王硕讨论
------------------------------------------------------------------------------------------------------------------------------------------------2014.02.25
一、汽车行驶越快,方向盘浮动越小,果断并线,错过路口不可倒车。. 此次换工做,技术提高是没戏了,只能摸索管理经验了。