• Intellij IDEA为Maven私有仓库与Resin搭建集成开发环境

    开头先用图示的方式介绍一下Maven中央仓库、私有服务器、与本地仓库的关系,如下图:

    上面非常直观的解释他们这三者之间的关系,本人就不再详细展开说明,不明白的请自行Google :)

    下面直接进入主题,因为项目需要使用Maven中央仓库与私有仓库的jar包并要运行Resin中,同时采用直接部署代码的方式而非用war包的方式部署项目。

    下面我详细是一下配置方法:
    按照惯例,先介绍一下开发环境版本:
    OS:windows 7
    IDE:Intellij IDEA 2016.3.4;
    Build Automation:Apache Maven 3.2.5;
    Server:Resin-3.1.14;
    我这里不介绍如何安装Intellij IDEA、Maven、Resin,不会的请自行Google;

    (1)配置Maven私有仓库,让Intellij IDEA(以下简称idea)根据Maven全局配置文件自动识别私有仓库地址,并自动下载项目中依赖的jar包;

      <profiles>
        <profile>
          <!-- profile的唯一标识 -->
          <id>Test</id>
          <!-- 远程仓库列表 -->
          <repositories>
            <!--包含需要连接到远程仓库的信息 -->
            <repository>
              !--远程仓库唯一标识 -->
              <id>Test</id>
              <!--远程仓库名称 -->
              <name>Test-Repository</name>
              <url>http://url...</url>
              <!--如何处理远程仓库里发布版本的下载 -->
              <releases>
                <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
                <enabled>true</enabled>
              </releases>
              <!--如何处理远程仓库里快照版本的下载。-->
              <snapshots
                <enabled>false</enabled>
              </snapshots>
            </repository>
          </repositories>
        </profile>
      </profiles>
      
      <!-- 手动激活profiles的列表 -->
      <activeProfiles>
        <activeProfile>Test</activeProfile>
      </activeProfiles>
    

    [Read More…]

  • 正则表达式-获取JavaScript中$表达式

    源文本

    a.click(jQuery('#slide06 > .btn.btn2')[0]);
    a = jQuery("li[style^='opacity: 1;']").find('.fl.pic1 > a > img, .fr.pic2 > a');
    console.log(2);
    a = jQuery('.fl.lt > a > img, .fl.rt > a > img');
    a = jQuery('.pics > li > a > img');
    console.log(5);
    a = jQuery('.pics > li > a > img')[0];
    console.log(8);
    a = $(".pics > li > a > img")[0];
    console.log('success');
    

    正则表达式

    (\()*(jQuery|\$)\(.*
    

    结果

    (jQuery('#slide06 > .btn.btn2')[0]);
    jQuery("li[style^='opacity: 1;']").find('.fl.pic1 > a > img, .fr.pic2 > a');
    jQuery('.fl.lt > a > img, .fl.rt > a > img');
    jQuery('.pics > li > a > img');
    jQuery('.pics > li > a > img')[0];
    $(".pics > li > a > img")[0];
    
  • Git 忽略特殊文件配置方法

    配置有两种方法,1是全局配置,2是根据项目自定义配置;

    第一种方法:全局配置

    (1)新建文件”.gitignore_global”去掉双引号
    (2)添加全局配置要忽略特殊文件的文件名,也可以使用通配符
    例如

    .idea
    *.iml
    classes
    work
    

    (3)找到git安装的配置文件”.gitconfig”去掉双引号
    这里windows为例,目录地址为:c:\Users\[用户名]\.gitconfig
    追加 “.gitconfig” 内容:

    [core]
        excludesfile = [此处写.gitignore_global绝对路径]
    

    (4)完成,这样所有用git管理的项目都会忽略4种类型文件/文件夹,省去了每个项目重复配置忽略特殊文件的工作。

    第二种方法:项目自定义配置

    (1)新建 .gitignore
    (2)添加内容:
    例如

    .idea
    helloworld.iml
    classes
    work
    

    (3)提交到git(新增->提交->推送)
    (4)完成;

    如果配置好上面两种方式中的任意一种,再次提交的时候(前提没有修改项目中任何代码,仅保留忽略文件或者文件夹),效果就如下图这样。
    [Read More…]

  • 检查iframe被嵌套的三种方式

    采用window对象方式

    if (window.top != window.self) {
    	alert("window对象-被嵌套一层或多层");	
    }
    if (window.top != window.parent) {
    	alert("window对象-被嵌套两层");
    }
    

    采用self对象方式

    if (self.top != self.self) {
    	alert("self对象-被嵌套一层或多层");
    }
    if (self.top != self.parent) {
    	alert("self对象-被嵌套两层");
    }
    

    采用逻辑表达式之短路计算方式

    (t = window.top) && t == window.self || alert("短路计算-被嵌套一层或多层");
    (t = window.top) && t == window.parent || alert("短路计算-被嵌套两层");
    

    逻辑表达式说明

  • 练习题:Java随机在某个区间中生成n个随机数并升序排列,并把其余位置补0

    数组版

    int min = 1, max = 10, count = 5,n;
    int[] array = new int[min+max];
    do {
        n = new Random().nextInt(max)%(max-min+1) + min;
        if (array[n] == 0) {
            array[n] = n;
            count--;
        }
    } while (count > 0);
    for (int i = min; i <= max; i++) {
        System.out.println(array[i]);
    }
    

    2015-11-26_111602

    List版
    [Read More…]

  • 用Java生成随机密码的方法

    最近各种数据库泄露问题,让我不得不考虑自身密码的强度,下面特意写两种生成密码的方法,已被日后之用;

    介绍两种生成随机密码的方式:(在密码字典里面,可以根据实际需要,手工注释不需要生成的字符段)

    方式一:

    /**
     * 生成随机密码生成方式一
     * 密码字典 -> 随机获取字符
     * @param len 生成密码长度
     * @return
     */
    public static String getPassWordOne(int len){
        int i;  //生成的随机数
        int count = 0; //生成的密码的长度
        // 密码字典
        char[] str = {
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                '~', '!', '@', '#', '$', '%', '^', '-', '+'
        };
        StringBuffer stringBuffer = new StringBuffer("");
        Random r = new Random();
        while(count < len){
            //生成 0 ~ 密码字典-1之间的随机数
            i = r.nextInt(str.length);
            stringBuffer.append(str[i]);
            count ++;
        }
        return stringBuffer.toString();
    }
    

    方式二:
    [Read More…]

  • 给div绑定点击事件三个方法

    基础代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
        <style>
            div {
                font-size: 2em;
                width: 250px;
                cursor: pointer /*变成手型*/
            }
    
            .clickme {
                background-color: #2aabd2;
            }
        </style>
        <script src="//libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
    </head>
    <body>
    <!--代码位置-->
    </body>
    </html>
    

    [Read More…]

  • Velocity(Java模板引擎)学习笔记

    最近想了解一下Java模板语言方面的知识,发现Velocity比较火,连OSC也在用它,就用两三天时间大概学习入门下;

    官网地址,官方有详细的说明,可以仔细看下。

    下载地址

    这里有一个新的概念,就是Velocity Template Language (VTL),官方有介绍,En不好的也可以Google一下搜索中文文档。
    [Read More…]

  • jsonp学习汇总

    为什么要使用jsonp?
    为了解决在不同域名下,即跨域(参考JavaScript同源策略)获取数据的问题。

    这是同域请求

    <script src='//libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
    <script type="text/javascript">
        $.ajax({
            url: 'http://127.0.0.1/a.json',
            dataType: "json",
            success: function (data) {
                console.log(data);
            }
        });
    </script>
    

    a.json

    {
        "name": "sun",
        "age": 10
    }
    

    2015-07-11_143704

    如果换成跨域?

    <script src='//libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
    <script type="text/javascript">
        $.ajax({
            url: 'http://www.sun.cn/a.json',
            dataType: "json",
            success: function (data) {
                console.log(data);
            }
        });
    </script>
    

    2015-07-11_144552
    提示跨域了,现在就需要jsonp出马。
    [Read More…]

  • Chrome.v42无法登录招行和中行网银解决方法

    2015-04-26_112233
    2015-04-26_112533
    最近自动更新Chrome到42.0.2311.90m后,发现无法登录招行大众版网银,去Google查了原因发现是从v42开始Chrome自动关闭了NPAPI,从维基百科了解到Google用意,此处只截取部分:

    正是由于其跨浏览器的特性,插件库的内容更新及管理一般不是由浏览器而是由各个插件提供商自行维护的。这个特点引发了一些安全性上的疑虑[2],Google Chrome提出了名为Pepper的解决方案[3],但没有得到其它厂商,特别是Mozilla基金会的普遍支持[4]。

    2014年11月 Google 宣布 Chrome 将于2015年1月默认屏蔽 NPAPI 插件,9月份会完全移除支持,以鼓励开发者和用户转用 HTML5、Chrome API 或 Google Native Client 等新技术取代 NPAPI。

    [Read More…]