全文检索工具-Lucene(solr)入门

2014年11月2日 没有评论

最近闲着没事在写微信公众号,其中一个是聊天机器人,和网上的众多机器人原理一样,但是功能没那么强大(主要是只是库不够强大),但是怎么解决“如何根据用户的问题从回答库中找出最匹配的答案呢?”,大家最先想到的也许是数据库的 LIKE 就好了嘛,但是 LIKE 存在如下问题:
1. 在问答库非常庞大的时候,LIKE 的效率会非常非常的慢;
2. LIKE只适用于关键字匹配,并不适合自然语言匹配。举个例子:用户的问题“河南的省会是哪个城市?”,而数据库的的记录是“河南的省会是哪”,虽然无论是从字面上还是意义上都一样,都 LIKE 却无能为力;
3. LIKE 无法计算相似度。也就是说 LIKE 返回多条[……]

Read more

分类: Java 标签:

Spring mvc中的forward和redirect以及参数传递

2014年10月24日 没有评论

1. forward和redirect
大家都知道servlet在处理完业务逻辑返回时有两种方法forward和redirect,他们的差异相信不用我再多做解释(如果不知道的请自行谷歌,哪怕是百度也可以),而Spring mvc是对servlet的一种封装,那spring mvc默认采用的是哪一种呢?我们是否可以自己选择采用哪一种方式返回呢?还有我之前在用spring mvc 都是返回到某一个view,它是否可以访问另一个controller呢?针对第一个问题,我们可以看一下spring mvc 的配置文件便知分晓:

	<property name="viewResolver[......]

Read more

分类: Java 标签:

Java中的split() replace() replaceFirst() replaceAll()四个函数分析

2014年10月20日 没有评论

前几天在公司分割一个很简单字符串,结果却怎么测都不对,最后查了一下资料,终于发现了端倪:
split(regex);

replace(target, replacement);
replace(oldChar, newChar);

replaceFirst(regex, replacement);

replaceAll(regex, replacement)

仔细看一下,你会发现split()、replaceFirst()、replaceAll()的参数都是Regular Expression,也就是正则表达式,只有replace()的参数是字符或者字符串,由于这些参数类型的差异,[……]

Read more

分类: Java 标签:

怎么在maven项目中引用本地Java类库

2014年10月14日 没有评论

去年实习的时候听说过maven,听说功能特别强大,后来就抽时间自学了一下,尤其感叹于其自动引入jar包的功能,真是太棒了,终于某种程度上把程序猿从classnotfoundexception中解脱出来了,也一定程度上解决了jar包冲突以及版本的问题,但在这几天玩微信开发的时候遇到了一个问题:
我的微信后台是托管到SAE上的,但SAE官方处于安全考虑,把XStream中sun.misc.Unsafe类禁用掉了,这就导致了一个问题XStream不能用了,CSDN知名博主刘峰老师发现了这个问题,于是柳峰老师修改了一下这个类库,其实很简单也即在XStream官方网站http://xstream.cod[……]

Read more

分类: Maven 标签:

长链接(URL)转短链接(URL)

2014年10月9日 没有评论

现在微博越来越流行,大家有事没事都喜欢在微博上说两句,但由于140字的限制,给我们在分析一些长链接的时候,带来了诸多不便,好在微博有自动缩短URL的功能,那我们是否可以自己缩短一个URL呢?答案是肯定的,下面就给出利用百度的API缩短URL的简单例子


package cn.bridgeli.longurl2short;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.n[......]

Read more

分类: Java 标签:

Jsoup在简单防御XSS攻击和网络爬虫的简单应用

2014年9月30日 没有评论

跨站攻击一直是web安全的一大问题,稍有不慎就会中招,各种防不胜防,今天在网上闲逛,发现一个第三方JAR不仅可以简单防御还可以爬取网页,所以写一篇小文以记之,也供有需要的人参考。
预防跨站攻击代码如下:


    @Test
    public void testJsoup() {
        String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link,<alert>0</alert></a></p>&q[......]

Read more

分类: Java 标签:

如何用https协议发起一个post请求

2014年9月29日 没有评论

这两天研究了微信公众号的开发,发现微信做的太好了,前景太可怕了,如果按照这个趋势,那么将来手机上也许只装一个微信客户端也许就可以做任何事了,其中微信公众号开发自定义菜单时,微信要求用https协议post到微信服务器一个JSON字符串,这里面有两个难点:1. https协议,2. 如何post数据到微信服务器。刚好csdn博主柳峰,有一篇文章是讲解这个的,所以就拿来参考一下,具体代码如下:


import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import j[......]

Read more

分类: Java 标签:

如何配置一个一键启动的绿色Java web项目

2014年9月20日 没有评论

我们知道部署J2EE项目,要首先安装JDK,配环境变量,在安装tomcat,然后MySQL数据库(当然也可以是其他任何你喜欢的数据库),把项目打一个war包放到tomcat的webapps包下面,启动tomcat就可以了,但在某些情况下,例如测试美工等,尤其是美工他们的电脑很多时候没必要安装这些乱七八糟的东西,那么我们是否可以不安装这些东西,而让让美工们的电脑跑项目呢?答案是可以的,我们只需要拷贝一个JDK、MySQL、tomcat到美工的电脑,再把项目拷到tomcat的webapps下,写一个bat的文件,让bat文件设置JDK目录、安装MySQL的服务,调用tomcat启动的命令就可以了,[……]

Read more

分类: Java 标签:

反射的简单应用:解决微信开发中if-else过多的问题

2014年9月15日 没有评论

前一段时间,闲着无聊玩微信开发,遇到一个问题:当关注者向公众号发送消息,请求一些服务时,由于是文本消息,所以当公众号拿到消息内容时,必须判断消息以什么打头,即:


String content = requestMap.get("Content").trim();

if ("?".equals(content) || "?".equals(content)) {

    respContent = "您好,我是生活小助手,请根据提示,回复内容选择服务:nn1 回复“天气”获取天气帮助n2 回复“歌曲”获取歌曲帮助n3[......]

Read more

分类: 微信 标签:

使用JDK自带的工具解析XML文档

2014年9月14日 没有评论

XML和JSON字符串的解析,是Java程序猿的必备技能,关于XML和JSON如何解析,网上的例子可以说是一拉一大把,解析JSON的有什么GSON、json-lib等一大批做得非常好的第三方工具,解析XML的也有什么DOM4J、JDOM、SAX、DOM等等,今天大桥就给大家展示一下如何有JDK自己解析XML,废话不多说,代码如下:


package cn.bridgeli.parsexmldemo.parsexml;

import java.io.FileNotFoundException;
import java.io.IOException;

import javax.xml.pa[......]

Read more

分类: Java 标签: