前台页面:
$.ajax({
            type: ‘GET’,
            url: url,
            async: false,
            jsonpCallback: ‘jsonCallback’,
            contentType: “application/json”,
            dataType:”jsonp”,
            success: function(json) {
                alert(json);
            },
            error: function(e) {
               console.log(e.message);
            }
        });

后台Servlet:
JSONObject jsonObject = new JSONObject();
jsonObject.put(“msg”, “hello”);
response.setContentType(“application/json”);
response.setCharacterEncoding(“UTF-8”);  
response.setHeader(“Cache-Control”, “no-cache”);  
response.getWriter().write(jsonObject.toString());
response.getWriter().flush();

但是前台接受值的时候,通过firebug调试发现抛出“SyntaxError: missing ; before statement“,在百度上搜了半天也没有找到一个靠谱的方法,有好多帖子说是URL问题,但是我肯定URL没有问题。后来转而用google,一下就找到问题根源了,嗨… … 差距啊,还是推荐使用google。
参考网址:
http://stackoverflow.com/questions/20658674/syntaxerror-missing-before-statement-jquery-jsonp

解决方法:
将 dataType:”jsonp” 这个属性去掉就可以啦,具体原因还没有查,下班了,明日继续刨根问底。
$.ajax({
        type: ‘GET’,
        url: url,
        contentType: “application/json”,
        success: function(json) {
            alert(json);
        },
        error: function(e) {
           console.log(e.message);
        }});

昨天在研究单点登录的时候,偶然发现一个不错的免费分享教学视频网站。这么好的东东当然不能独自分享了,下边是网址感兴趣的童鞋可以去看看,会有收获哦! ^ _ ^ 

http://www.boobooke.com/

接kettle学习知识总结(一)

【注意事项】

1、  如果kettle 转化过程中,要将一张表中数据转化到另一张不同的数据结构表中,最好在进行“表输入”或者“插入/更新”前加入字段选择插件,通过字段选择中的“列映射”,将A表中同类型字段映射到B表中。

2、如果要在SQL语句中引用系统变量使用${xxx}形式,此外还要将“替换SQL语句中里的变量”复选框勾选上,这样在执行的过程中才能正确替换系统变量。

3、  如果在js脚本中系统自带函数不会使用,可以通过鼠标右键点击“Sample”产看函数实例。

4、在kettle开发过程中,尽量使用相对路径,而不是用绝对路径,并将路径参数设置到系统的变量中,这样即便后期对目录结构造成较大的改动,只会对kettle代码产生较小的影响。

5、如果相对已经设置好的表输出——Database field进行设置,首先要将“Specify database fields”复选框进行选中。才能修改。

6、  表输出中“剪裁表”复选框,作用相对先将表中原有内容全部清除,然后重新添加数据。

7、  如果想将日志输出到kettle日志控制台中,要使用utility中的“write to log”工具。否者将不能打印各个步骤执行过程中的步骤。

8、  对于“插入/更新”插件

如果不填写查询关键字参数,既可以实现插入操作

如果填写查询关键字插件,实现的根据查询条件更新数据(注:必须将“update”属性设置为“Y”)

9、  对于kettle中定时插件,在执行时会一直占用某个shell,只有当执行完成之后kettle的定时器才会退出。所以我们在项目中使用linux 定时插件Crontab。

【Linux 定时插件Crontab】
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:f1 f2 f3 f4 f5 program
第一段   代表分钟 0—59
第二段   代表小时 0—23
第三段   代表日期 1—31
第四段   代表月份 1—12
第五段   代表星期几,0代表星期日 0—6

kettle循环控制方式设置:

Select_Count_IALClaim_TRG 转化内容如下图:将所有的表输入的查询结果复制到结果中。

循环控制器配置,如图:

Deal_IALClaim_fr_IALClaim_TRG 转化步骤,为要循环体中主要循环执行的内容

【基础知识】

Kettle 分为两部分Job(作业) 和Transaction(转换)

  • Job 的执行可以通过kitten 组件
  • Transaction的执行可以通过pan 组件

 

输入组件中是将所有查询后获取到的数据全部转给下一个节点使用,而不是一条数据执行到尾节点后,在从新执行下一条数据。

数据有两种发送形式:

分发:从数据源依次发送到下一个节点

复制:将数据源的所有结果全部发送到下一个节点

【注意事项】

1、  Kettle中时间查询使用的格式为yyyy/MM/dd HH:mm:ss。但是在db2中查询条件中使用的时间格式是yyyy-MM-dd HH:mm:ss,所以在SQL语句中的查询条件必须统一格式为“yyyy-MM-dd HH:mm:ss”。这样才能正确查询。

 

2、  在SQL语句中时间参数必须使用单引号或者双引号括起来,否则SQL语法正确。

 

3、  在生成错误文件时,如果不想每次执行都创建一个文件,需要把“Don not create file at start ”复选框勾上,这样就不会每次执行都生成文件了。

4、  对于在kettle中使用set variables设置的参数,使不能在javaScript中调用的。

 

5、  如果想要让执行改变为并行,使用“Launch next entires in parallel”后边的整个执行过程为并行方式。

改为并向后kettle图形界面显示如下