javascript判断变量是否定义(undefined)转换函数

星期四, 2012-04-12 | Author: Lee | ajax, html5 | 没有评论 5,975 views

在处理html5的页面取值的时候,发现当取不到的时候报错,js程序不再执行,直接写个修正函数处理
如下:

//修正未定义的变量
function checkUnfined(value){
	if(typeof(value)=='undefined'){
	return "";	
	}
	return value;	
}

话说判断是否未定义也是很常用的东东

Tags: , , ,

jquery mobile动态添加元素之后不能正确渲染解决方法(listview和div html 元素)

星期日, 2012-04-08 | Author: Lee | html5, pagemaker | 没有评论 12,301 views

问题就不描述了,ajax处理玩数据对于按钮等操作都没有被渲染,需要调用jqm的css去渲染,方法如下:
一:对于listview: $(‘ul’).listview(‘refresh’);
二:对于div或其他: $(‘allAddContent’).trigger( “create” );

1.
var list = $("<li><a href='//www.pomelolee.com'>Pomelo Lee-"+i+"</a></li>");
  $("#listShow").append(list).find("li:last").hide();
  $('ul').listview('refresh');
html 如下:
<div data-role="content">
        <ul data-role="listview" id="listShow" data-inset="true">
          <li><a href="#">html5</a> </li>
          <li><a href="#">css</a></li>
        </ul>
      </div>
2.
var allAddCon="<a href=\"javascript:goto('i5a6?id="+data.rows[i-1].id+"')\"; data-role='button' data-theme='b'>Pomelo Lee网络</a>";
$("#allAddContent").html(allAddCon).trigger( "create" );;

Tags: , , ,

Eclipse之java was started but returned exit code 1报错并退出的解决方法

星期三, 2012-04-04 | Author: Lee | JAVA-and-J2EE | 3 Comments 43,204 views

今天正在用eclipse处理程序的时候突然报了个java was started but returned exit code 1,提示后就退出了,上网查询修改eclipse.ini即可.
本人环境为win7的64位系统,jdk为1.6.0_20:
解决之法:(安装目录eclipse.ini文件)
1.修改最大内存数-Xmx384m 为 -Xmx1024m (本人情况为因为最大内存过小)

2.按照1如果还不行,再配置
-vm
C:\Java\JDK\1.6\bin\javaw.exe
-vmargs
注意点:-vm 都分别各占一行,且此配置要在-vmargs上面

延伸阅读:eclipse.ini文件的说明(http://wiki.eclipse.org/Eclipse.ini)
异常图片截图记录:
› 继续阅读

Tags: , ,

php判断常用上传文件类型,自动获取文件扩展名

星期四, 2012-03-29 | Author: Lee | php | 没有评论 6,459 views

在用php进行文件上传的时候总要判断文件的扩展名名等进行是否允许操作,经测试记录比较常用的文件类型,
记录如下,如有不全,希望能补正修改,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
switch    ($_FILES['userupfile']['type'])   
   {     
   case    "image/jpeg":     
   $fileextname    =    "jpg";     
   break;  
    case    "image/pjpeg":     
   $fileextname    =    "jpg";     
   break;    
   case    "image/gif":     
   $fileextname    =    "gif";     
   break;     
   case    "image/png":     
   $fileextname    =    "png";     
   break; 
   case    "image/x-png":     
   $fileextname    =    "png";     
   break; 
    case    "image/bmp":     
   $fileextname    =    "bmp";     
   break;    
   case    "application/x-shockwave-flash":     
   $fileextname    =    "swf";     
   break;     
   case    "text/plain":     
   $fileextname    =    "txt";     
   break;     
   case    "application/msword":     
   $fileextname    =    "doc";     
   break;     
   case    "application/x-zip-compressed":     
   $fileextname    =    "zip";     
   break; 
   case    "application/vnd.ms-excel":     
   $fileextname    =    "xls";     
   break; 
   case    "application/vnd.openxmlformats-officedocument.wordprocessingml.document":     
   $fileextname    =    "docx";     
   break; 
   case    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":     
   $fileextname    =    "xlsx";     
   break; 
   case    "application/pdf":     
   $fileextname    =    "pdf";     
   break;   
 
   }

Tags: , , ,

apache,nginx反向代理出现内网ip解决方法

星期四, 2012-02-23 | Author: Lee | JAVA-and-J2EE, linux | 没有评论 12,248 views

apache中设置如下反向代理后端的tomcat出现
request.getServerName();获取到的主机名称就会是localhost,解决这个

<VirtualHost *:80>
    ServerAdmin service@i5a6.com
    DocumentRoot /usr/local/apache/htdocs
    ServerName i5a6.com
    ServerAlias *.i5a6.com
     DirectoryIndex  index.html  index.html.var  index.jsp
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/
     ErrorLog "logs/hscode-error.log"
     CustomLog "logs/hscode-access.log" common
</VirtualHost>

在httpd.conf 文件中增加:
ProxyPreserveHost On 即可

对应的nginx 也有此问题解决之法:
proxy_set_header Host $host;

upstream mytomcat{
 #server 127.0.0.1:8000 weight=3;
 #server 127.0.0.1:8001;
 #server 127.0.0.1:8002;
 server 127.0.0.1:8080;
 }
 
server
{
listen 80;
server_name i5a6.com *.i5a6.com;
index index.html index.htm ;
root /usr/local/data/htdocs/www;
 
location / {
# proxy_set_header Host %host;
# proxy_set_header X-Forwarded-For $remote_addr;
 proxy_pass http://mytomcat;
proxy_set_header Host $host;
 }

Tags: , , , ,

apache反向代理集群,实现负载均衡,编译mod_proxy模块

星期三, 2012-02-22 | Author: Lee | JAVA-and-J2EE, linux | 一条评论 6,166 views

利用apache和tomcat做集群,有好几种方式,另一种见apache tomcat 负载均衡集群和session复制 基于jk
本文是使用代理的模式;
一:查看是否有mod_proxy模块功能
[i5a6]# /usr/local/apache/bin/httpd -l
可以看到是否有mod_proxy的模块,直接去 /usr/local/apache/modules/ 去查看是否有对应的mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的模块包
二:本人的是vps已经安装好的apache不过没有编译此模块要自己动手编译
[i5a6]# find / -name mod_proxy.c
注释:我是不知道它的安装目录,直接根目录下检索吧,主要是找对应的模块文件夹;
执行结果:/home/cpeasyapache/src/httpd-2.2.17/modules/proxy/mod_proxy.c

[i5a6]# cd /home/cpeasyapache/src/httpd-2.2.17/modules/proxy/
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c

[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_balancer.c

[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_http.c

# 安装proxy_ajp模块
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_ajp.c ajp_header.c ajp_utils.c ajp_msg.c ajp_link.c

可以去 /usr/local/apache/modules/ 看下生成了对应mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的包,

三:配置httpd.conf,设置权重和session严格复制等
› 继续阅读

Tags: , , , ,

itext的转换pdf的尝试

星期日, 2012-02-12 | Author: Lee | JAVA-and-J2EE | 没有评论 4,442 views

今天写了个转换成pdf的文档,做个生成个表格的东东.没有做中文支持的问题,支持中文可以下载扩展包处理.
下载itext的jar包:可以去:http://sourceforge.net/projects/itext/files/ 下载更多版本,目前最新为itext-5.1.3.zip
对应的api文档可以翻阅:itext–api

生成个类似下列表格的图片:

代码如下:
› 继续阅读

Tags: , , ,

java中需要转义的正则表达式符号

星期日, 2012-02-12 | Author: Lee | JAVA-and-J2EE | 没有评论 10,301 views

special sign 注释 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,那么 $ 还匹配 \n
或 \r 前面的位置。若要匹配 $ 字符本身,请使用 \$。

( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。

零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。

+ 一次或多次匹配前面的字符或子表达式。若要匹配 + 字符,请使用 \+。

. 匹配除换行符 \n 之外的任何单个字符。若要匹配 .,请使用 \。 [ ] 标记中括号表达式的开始。若要匹配这些字符,请使用 \[ 和 \]。

? 零次或一次匹配前面的字符或子表达式,或指示“非贪心”限定符。若要匹配 ? 字符,请使用 \?。

\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符 n。\n 匹配换行符。序列 \\ 匹配 \,序列 \( 匹配
(。

/ 表示文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。

^ 匹配输入字符串开始处的位置,但在中括号表达式中使用的情况除外,在那种情况下它对字符集求反。若要匹配 ^ 字符本身,请使用 \^。

{ } 标记限定符表达式的开始。若要匹配这些字符,请使用 \{ 和 \}。

| 指出在两个项之间进行选择。若要匹配 | ,请使用 \|

Tags: , ,

apache tomcat 负载均衡集群和session复制 基于jk

星期三, 2012-02-08 | Author: Lee | JAVA-and-J2EE | 一条评论 8,347 views

apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。
本文主要介绍最为常见的JK。
基于centos5.5 linux下配置:
1.安装tomcat7、apache2.2.22服务器及版本对应的JK
这里需要注意的是JK版本必须与apache服务器版本号对应。apache下载
对应的linux的编译的jk版本可以去 mod_jk.so去下载
注意点:如果你安装的apache是2.0.63版本或者说是2.0.X版本做好选用 mod_jk-1.2.26-httpd-2.0.61.so
如果是最新版2.2.22,可以选用最用mod_jk-1.2.31-httpd-2.2.x.so
,总之不成功的时候自己去试试so,我就实验好多,一开始机器装的是2.0.63的apache让人崩溃的老版本.
下载对应的so文件到apache下的modules目录中.
apache_home表示apache服务器安装目录.
2.配置apache服务器
2.1 httpd.conf文件
apache_home目录下的conf/httpd.conf文件中添加 复杂配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so 
JkWorkersFile conf/workers.properties  
JkMountFile conf/uriworkermap.properties  #加载workers的请求处理分配文件 可以不需要
JkLogFile logs/mod_jk.log #指定jk的日志输出文件 可以不需要
JkLogLevel warn #指定日志级别可以不需要
JkMount /* lbcontroller   #根据需要可以配置多个 设置apache分发器,/*表示apache将所有文件都由分发器lbcontroller 进行分发,你可以自行设置*.jsp,*.do等 
 
 uriworkermap.properties文件,内容如下
/*=lbcontroller                     #所有请求都由controller这个server处理
/jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理
!/*.gif=lbcontroller                   #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
!/*.jpg=lbcontroller
!/*.png=lbcontroller
!/*.css=lbcontroller
!/*.js=lbcontroller
!/*.htm=lbcontroller
!/*.html=lbcontroller

简单配置:apache文件加 Include “/usr/local/apache/conf/mod.conf”
在”/usr/local/apache/conf/目录下创建mod.conf内容:

1
2
3
4
5
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so 
JkWorkersFile conf/workers.properties  
#JkMount /*.jsp lbcontroller
#JkMount /*.do lbcontroller  
JkMount /* lbcontroller   #根据需要可以配置多个 设置apache分发器,/*表示apache将所有文件都由分发器lbcontroller 进行分发,你可以自行设置*.jsp,*.do等

2.2 workers.properties文件
在apache_home下conf目录中新建workers.properties文件,输入以下内容
Xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
worker.list=lbcontroller  
 
#Tomcat1实例配置  
worker.tomcat1.host=localhost #此处可以是你的ip地址  
worker.tomcat1.port=8009  
worker.tomcat1.type=ajp13  
#分发权重 值越大负载越大  
worker.tomcat1.lbfactor = 1  
 
#Tomcat2实例配置  
worker.tomcat2.host=localhost #此处可以是你的ip地址   
worker.tomcat2.port=9009  
worker.tomcat2.type=ajp13  
#分发权重 值越大负载越大  
worker.tomcat2.lbfactor = 1  
 
#负载均衡分发控制器  
worker.lbcontroller.type=lb  
worker.lbcontroller.balance_workers=tomcat1,tomcat2  
worker.lbcontroller.sticky_session=True

在这里

1
2
3
4
5
6
7
8
worker.list=lbcontroller  
 内容即为httpd.conf文件中的分发器名称。需要注意的内容是,tomcat实例名称
Xml代码  
worker.tomcat1.host=....  
...  
worker.tomcat2.host=....  
...  
 在这里就是tomcat1和tomcat2必须与之后tomcat中的server.xml中jvmRoute值一致。
更多的work.properties可以参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
worker.list=loadbalancer                        #定义负载均衡的名称  
worker.loadbalancer.type=lb                     #定义负载均衡的类型,为lb  
worker.loadbalancer.error_escalation_time=0     #切换错误状态时间  
worker.loadbalancer.max_reply_timeouts=10  
worker.loadbalancer.sticky_session=1            #1代表为true0代表为false。  
#worker.loadbalancer.sticky_session_force=true  
 
worker.loadbalancer.balance_workers=lb1,lb2 #负载均衡的工作者名称  
 
worker.lb1.reference=worker.template    #lb1参考worker.template工作模板  
worker.lb1.host=localhost           #lb1的ip地址  
worker.lb1.port=8009                #lb1端口,这里是ajp端口,不是网站端口  
worker.lb1.activation=A                 #A:active模式 D:sticky模式 S:不使用  
 
worker.lb2.reference=worker.template  
worker.lb2.host=localhost  
worker.lb2.port=9009  
worker.lb2.activation=A  
 
worker.template.type=ajp13                  #上面lb1,lb2参考下面的值worker.template,协议ajp13  
worker.template.socket_connect_timeout=5000 #套接字连接超时为5000毫秒,默认为0  
worker.template.socket_keepalive=true           #开启保持为真,默认为false  
worker.template.ping_mode=A                 #使用cping/cpong模式,有C,P,I,A四个模式。A全选  
worker.template.ping_timeout=10000          #探测cping/cpong超时间默认10000毫秒  
worker.template.connection_pool_minsize=0       #连接池关闭最小时间  
worker.template.connection_pool_timeout=600 #连接池600秒  
worker.template.reply_timeout=300000            #答复超时300000毫秒  
worker.template.recovery_options=3          #重试次数

3.tomcat集群配置
› 继续阅读

Tags: , , , ,

解决MYSQL超时连接问题(com.mysql.jdbc.MysqlIO.readFully)

星期一, 2012-02-06 | Author: Lee | Database | 2 Comments 10,846 views

程序后台报这个错误 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2332) ,
** END NESTED EXCEPTION **

Last packet sent to the server was 34 ms ago.
这个问题主要原因是应用服务器很长时间没有连接mysql,超过了mysql设置的最大超时时间,再连接mysql就会出现这个问题。
mysql默认设置是8小时,一般网站白天都有人访问,从夜里到早上一般都会超过8小时,所以再来访问就会这个问题。

简单的解决办法就是修改最大超时时间,比如改为12小时或10小时,这样恰好避免了无人访问的时段,这里修改为10小时,方法如下:
看来下 wait_timeout 才15真不是一般的短,系统默认安装的就是麻烦.
设置下即可

mysql> show variables like ‘%timeout’;
+—————————-+——-+
| Variable_name | Value |
+—————————-+——-+
| connect_timeout | 15 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 15 |
+—————————-+——-+
10 rows in set (0.00 sec)

mysql> set wait_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> set interactive_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%timeout’;
› 继续阅读

Tags: ,

Search

文章分类

Links

Meta