备注学院

LuLu

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  5 随笔 :: 50 文章 :: 16 评论 :: 0 Trackbacks

2011年8月2日 #

网址:http://s.open-lib.com/

前言:

今年年头天气比较多变,气温变化较大,因此每天早上看天气预报,然后告知女朋友,体形她注意,每天机械式的重复,有时候忘记可能会被P,虽然没发生过忘记。。

能不能采取自动化任务代替这样的重复劳动呢?

幸亏我们是强大的码农,只怕没IDEA,不怕做不到。。。。。

原理:

其实原理很简单,就是定时抓取指定城市的天气信息,然后组装成要的内容,发送邮件。

不是说短信吗?怎么变了邮件了?

大家别急,这里是利用几大运营商的免费的邮件到达提醒实现的,也就发送邮件,当对方接收到邮件,自动发短信到手机,并且显示邮件部分内容。

 

说说:

1、免费、不限制订阅数量、支持一个任务发送多人(大家轻着点,别把服务器弄挂了);不支持时分秒定时任务

2、支持订阅类型:今明两天的天气预报,股票信息,基金信息,RSS。

 

示例:

基金:嘉实多元债券A[2011-08-01]最新净值:1.071,昨日净值:1.071,升幅:0.00%。


股票:[中牧股份]:今日开盘价:22.60,当前价格:22.20,今日最高价:22.60,今日最低价:22.19。 

 

明天天气预报:东莞明天温度:东莞,34℃~26℃,多云,微风(小于3级)。

 

 天气预警:新疆维吾尔自治区吐鲁番地区气象台发布高温橙色预警。  (需重新调整,太抽象了;未开放)

 

展望未来:

1、现在在弄个天气预警,也就是一旦天文台发布台风XX警报之类,会很快的发到用户的手机,实现及时提醒,不过这部分还在测试当中,还没开放。

2、支持短信上行、邮件回复、GTALK远程命令(列表,停止,启动之类),暂时也没对外开放,要试用的,可以联系我。。

 

支援:http://www.open-lib.com/Forum/Forum_13_1.action

posted @ 2011-08-02 20:44 smildlzj 阅读(2113) | 评论 (1)编辑 收藏

2010年10月18日 #

[版权声明]:版权归作者所有,转载时请以超链接形式标明文章原始出处和作者信息及本声明:
http://www.open-lib.com/Forum/Read_69_1.action

前言:

当jquery ajax在utf-8编码下(页面utf-8,接收utf-8),无任何问题。可以正常post、get,处理页面直接获取正确的内容。

但在以下情况下:

GBK -> AJAX POST ->GBK

UTF-8 -> AJAX POST ->GBK

后台代码无法获取正确的内容,通常表现为获取到奇怪字符、问号。

经典解决方法:

1:发送页面、接收页面均采用UTF-8编码。

2:发送页面在调用ajax post方法之前,将含有中文内容的input用encodeURIComponent编码一次,而接收页面则调用解码方法( 如:java.net.urldecoder.decode("接收到内容","utf-8")  )。


其中,第一种方法无疑是最简单、最直接,但往往不符合实际,因为很多项目并不是使用utf-8编码,例如国内大部分使用gbk编码,也不可能为了解决这样一个问题,而将整个项目转换为utf-8编码,成本太大,风险太高。

第二方法,是现在最多人使用的方法,俗称二次编码,为什么叫二次编码,等下会解释。客户端编码两次,服务端解码两次。但这种方法不好的地方,就是前台手动编码一次,后台再手动解码一次,稍不留神就会忘记,而且代码掺和前台逻辑。

交互过程:

当我们使用表单按照传统方式post提交时候(非AJAX提交),浏览器会根据当前页面编码,encode一次,然后发送到服务端,服务端接收到表单,会自动dencode一次,通常这个过程是对程序是透明的,因此加上手动编码、解码,就变成上面所说的二次编码。

但当我们使用AJAX方式提交时候,浏览器并不会自动替我们encode,因此在jquery中有这样的一段代码:

ajax: function( s ) {
    
// Extend the settings, but re-extend 's' so that it can be
    // checked again later (in the test suite, specifically)
    s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));

    
var jsonp, jsre = /=?(&|$)/g, status, data,
        type 
= s.type.toUpperCase();

    
// convert data if not already a string
    if ( s.data && s.processData && typeof s.data !== "string" )
        s.data 
= jQuery.param(s.data);
..    
}

 

以上是jquery的ajax方法的代码片段,下面是正常调用jquery ajax post的代码:

$.ajax({
 url: ajaxurl,
 type: 'POST',
 dataType: 'html',
 timeout: 
20000,//超时时间设定
 data:para,//参数设置
 success: function(html){

 }
});

通过上面代码可以知道,当设置了data时候,jquery内部会调用jQuery.param方法对参数encode(执行本应浏览器处理的encode)。

jQuery.param=function( a ) {
    
var s = [ ];
    
function add( key, value ){
        s[ s.length ] 
= encodeURIComponent(key) + '=+ encodeURIComponent(value);
    };
    
// If an array was passed in, assume that it is an array
    // of form elements
    if ( jQuery.isArray(a) || a.jquery )
        
// Serialize the form elements
        jQuery.each( a, function(){
            add( 
this.name, this.value );
        });

    
// Otherwise, assume that it's an object of key/value pairs
    else
        
// Serialize the key/values
        for ( var j in a )
            
// If the value is an array then the key names need to be repeated
            if ( jQuery.isArray(a[j]) )
                jQuery.each( a[j], 
function(){
                    add( j, 
this );
                });
            
else
                add( j, jQuery.isFunction(a[j]) 
? a[j]() : a[j] );

    
// Return the resulting serialization
    return s.join("&").replace(/%20/g, "+");
}
//jquery.param end

上面是jQuery.param的代码,细心点可以留意到encodeURIComponent这方法,这是javascript内置的方法,对目标字符串执行utf-8 encode,因此,当页面使用gbk编码时候,服务端会使用gbk进行解码,但实际提交的数据是以utf-8编码的,所以造成接收到内容为乱码或者为问号。

解决方法:

encodeURIComponent会以utf-8编码,在gbk编码下,可不可以以gbk进行编码呢?

如果还在打encodeURIComponent主意的话,那不好意思,encodeURIComponent只会utf-8编码,并没有其他api进行其他编码;不过,别担心,看看下面:

encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码。

escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

哈哈,看到希望吧?没错,就是用escape代替encodeURIComponent方法,不过必须注意:

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

使用了escape之后必须对加号进行编码,否则,当内容含有加号时候会被服务端翻译为空格。

终于知道解决办法了,重写jquery代码:

jQuery.param=function( a ) {
    
var s = [ ];
    
var encode=function(str){
        str
=escape(str);
        str
=str.replace(/+/g,"%u002B");
        
return str;
    };
    
function add( key, value ){
        s[ s.length ] 
= encode(key) + '=+ encode(value);
    };
    
// If an array was passed in, assume that it is an array
    // of form elements
    if ( jQuery.isArray(a) || a.jquery )
        
// Serialize the form elements
        jQuery.each( a, function(){
            add( 
this.name, this.value );
        });

    
// Otherwise, assume that it's an object of key/value pairs
    else
        
// Serialize the key/values
        for ( var j in a )
            
// If the value is an array then the key names need to be repeated
            if ( jQuery.isArray(a[j]) )
                jQuery.each( a[j], 
function(){
                    add( j, 
this );
                });
            
else
                add( j, jQuery.isFunction(a[j]) 
? a[j]() : a[j] );

    
// Return the resulting serialization
    return s.join("&").replace(/%20/g, "+");
}

上面那段代码并不需要在jquery的源文件重写,可以在你项目的javascript贴上,覆盖它原有的方法,不过必须在jquery加载之后。

经初步验证,上面那段代码在utf-8编码也可以工作正常,大概是编码成unicode的缘故吧。

这样,就不是需要使用什么二次编码,即影响前台,又影响后台。gbk编码下ajax post不再是问题了,此乃是终极解决方法。哈哈。

有兴趣的可以到http://www.open-lib.com/Forum/Read_69_1.action与作者交流。

posted @ 2010-10-18 20:08 smildlzj 阅读(1819) | 评论 (3)编辑 收藏

2009年8月13日 #

现我手头上有一个OA项目.

有模块人事档案、管理员模块等。

因为是工厂内部使用,所以人事档案大概是两种一群。厂工、办公室人员

现上级要求为所有办公室人员增加“工作计划”的模块,我想做成这样日程表的效果

看了一下。
dhtmlxScheduler貌似这个效果比较好看。。

dhtmlxScheduler是一个JavaScript日程安排控件,类似于Google日历。日历事件通过Ajax动态加载,支持通过拖放功能调整事件日期和时间。事件可以按天,周,月三个种视图显示。


现在说下我遇到的问题:

由于已经有管理员模块。
现在需要为所有办公室人员录入账号。

方案一:是在人事档案中增加账号的字段。
方案二:管理员表中增加关联人事档案的字段

人事档案-人事文员可以使用。但是账号现是基于管理员表的。基于角色授权。

如果按照方案一,那则需要允许人事人员有权管理账号、密码。
按照方案二,人事文员的确接触不到账号、密码;但是需要二次录入对应的账号,还需要超级管理员设置的。
似乎过于麻烦。

不知道大家有何解决办法?原谅我发到首页。。

posted @ 2009-08-13 11:21 smildlzj 阅读(1337) | 评论 (4)编辑 收藏

2008年9月19日 #

进入正题,看过了很多关于SSM的帖子,今天经过近20次的重启,终于总结出了一个完美的解决方案!
首先感谢Odin朋友的帖子
我的想法是用注册表的权限设置锁住那个控制时间的键值,不就可以完美破解了吗!经过我今天一下午的试验,终于得出完美解决方案。
一、首先是要找出那个控制时间的键值,方法是卸载原来的版本,重新安装SSM,那么安装日期就是今天的时期。打开Excel,将日期以yyyy-mm-dd的形式输入表格中,然后照图做:





二、打开注册表编辑器,搜索转换出来的那个数字,这里是39073。那样就可以找到那个键值了。
三、选中那个项,形如{……},点右键→权限→……看图:



posted @ 2008-09-19 12:55 smildlzj 阅读(486) | 评论 (0)编辑 收藏

2007年11月20日 #

  ERP(Enterprise Resource Planning)企业资源计划系统,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台.
一天中午,丈夫在外给家里打电话:"亲爱的老婆,晚上我想带几个同事回家吃饭可以吗 "(订货意向)
妻子:"当然可以,来几个人,几点来,想吃什么菜 "
丈夫:"6个人,我们7点左右回来,准备些酒,烤鸭,番茄炒蛋,凉菜,蛋花汤…….你看可以吗 "(商务沟通)
妻子:"没问题,我会准备好的."(订单确认)
妻子记录下需要做的菜单(MPS计划),具体要准备的东西:鸭,酒,番茄,鸡蛋,调料……(BOM物料清单),发现需要:1只鸭蛋,5瓶酒,4个鸡蛋……(BOM展开),炒蛋需要6个鸡蛋,蛋花汤需要4个鸡蛋(共用物料).
打开冰箱一看(库房),只剩下2个鸡蛋(缺料).
来到自由市场,妻子:"请问鸡蛋怎么卖 "(采购询价)
小贩:"1个1元,半打5元,1打9.5元."
妻子:"我只需要8个,但这次买1打."(经济批量采购)
妻子:"这有一个坏的,换一个."(验收,退料,换料)
回到家中,准备洗采,切菜,炒菜……(工艺线路),厨房中有燃气灶,微波炉,电饭煲……(工作中心).妻子发现拨鸭毛最费时间(瓶颈工序,关键工艺路线),用微波炉自己做烤鸭可能来不及(产能不足),于是阅览室在楼下的餐厅里买现成的(产品委外).
下午4点,电话铃又响:"妈妈,晚上几个同学想来家里吃饭,你帮忙准备一下."(紧急订单)
"好的,你们想吃什么,爸爸晚上也有客人,你愿意和他们一起吃吗 "
"菜你看着办吧,但一定要有番茄炒鸡蛋,我们不和大人一起吃,6:30左右回来."(不能并单处理)
"好的,肯定让你们满意."(订单确定)
鸡蛋又不购了,打电话叫小贬送来.(紧急采购)
6:30,一切准备就绪,可烤鸭还没送来,急忙打电话询问:"我是李太,怎么订的烤鸭还不送来 "(采购委外单跟催)
"不好意思,送货的人已经走了,可能是堵车吧,马上就会到的."
门铃响了."李太太,这是您要的烤鸭.请在单上签一个字."(验收,入库,转应付账款)
6:45,女儿的电话:"妈妈,我想现在带几个朋友回家吃饭可以吗 "(呵呵,又是紧急订购意向,要求现货)
"不行呀,女儿,今天妈已经需要准备两桌饭了,时间实在是来不及,真的非常抱歉,下次早点说,一定给你们准备好."(哈哈,这就是ERP的使用局限,要有稳定的外部环境,要有一个起码的提前期)
送走了所有客人,疲惫的妻子坐在沙发上对丈夫说:"亲爱的,现在咱们家请客的频率非常高,应该要买些厨房用品了(设备采购),最好能再雇个小保姆(连人力资源系统也有接口了).
丈夫:"家里你做主,需要什么你就去办吧."(通过审核)
妻子:"还有,最近家里花销太大,用你的私房钱来补贴一下,好吗 "(最后就是应收货款的催要)

现在还有人不理解ERP吗 记住,每一个合格的家庭都是生产厂长的有力竞争者。

摘自:http://blogger.org.cn/blog/more.asp?name=DMman&id=24666

posted @ 2007-11-20 21:44 smildlzj 阅读(272) | 评论 (0)编辑 收藏

仅列出标题