`
文章列表
一个简单的接近实时搜索的例子源自(Lucene in  aiction) package com.yale.lucene; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWrit ...
package com.yale.lucene; import java.io.File; import org.apache.lucene.index.Term; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Dire ...
本代码涉及到的关键类有: IndexWriter  Directory Analyzer Document Field IndexSearcher Term Query TermQuery TopDocs 代码示例: package com.yale.lucene; import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...
1.文件上传的页面upload.jsp。 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+&qu ...
1.首先请看服务端代码: package org.apache.mina.example.reverser; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.filter.logging.Loggi ...

NIO 001

填充和释放缓冲区 package com.yale.life.nio; import java.nio.CharBuffer; /** * 填充和释放缓冲区 * @author Ron Hitchens * */ public class BufferFillDrain { public static void main(String[] args) { CharBuffer buffer = CharBuffer.allocate(100); while(fillBuffer(buffer)){ buffer.flip(); ...

IOHelper类

activeMQ-fileserver中操作File类的工具类。 源代码: /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You un ...
1.newFixedThreadPool()-创建一个定长的线程池,每当提交一个任务就创建一个线程,直到达到池的最大长度,这时线程池就会保持长度不在变化(如果一个线程由于非预期的Exception而结束,线程池会补充一个新的线程)。 2.newCachedThreadPool()-创建一个可缓冲的线程池,如果当前线程池的长度超过了处理的需要时,它可以灵活的回收空闲的线程,当需求增加时,它可以灵活的添加新的线程,而且不会对池的长度作任何限制。 3.newSingleThreadExecutor()-创建一个单线程化的executor,它只创建唯一的工作者线程来执行任务,如果这个线程 异常结束,会有 ...
1.通过使用Executor将处理请求任务的提交与它的执行体进行解耦。 eg: import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Executor; import java.util.concurrent.Executors; /** * 用Executor创建数量为100的线程池来构建简易的WebServer * @author yale * */ public class TaskExecutionWebServer { private sta ...
1.可变状态。所有并发问题都归结为如何协调并发访问状态。可变状态越少,保证线程安全就越容易。 2.尽量将域声明为final类型。除非他们的需要是可变的。 3.不可变对象天生是线程安全的。不可变对象极大的减轻了并发编程的压力。他们简单而安全,可以在没有锁或者防御性复制的情况下自由的共享。 4.封装-使管理复杂度变得更可行。你固然可以用存储于全局变量的数据来写一个线程安全类,但是你为什么要这样做?在对象中封装数据,让他们能够更加容易的保持不变,在对象中封装同步,使他能够更容易的遵守同步策略。 5。用锁来保护每一个可变的变量。 6.对同一不变约束中的所有变量都使用相同的锁。 7.在运行复合操作期间持有 ...
对浏览器类型进行判断。 // 判断浏览器 HttpServletRequest request = ServletActionContext.getRequest(); String Agent = request.getHeader("User-Agent"); if (null != Agent) { Agent = Agent.toLowerCase(); if (Agent.indexOf("firefox") != -1) { filename = new String(doc.get ...
今天在改一个用BufferedReader读取UTF-8的html文件,读取出来后,文件头有个问号,解决方案很简单,将文件用UtrlEdit打开,然后另存为--格式选择UTF-8 no bom,在读取就没有问题了,和大家分享一下,如果你也遇到同样的问题。 ----------- ...
配置memcached所需jar(这里采用hibernate-memcached.*.jar): 1.hibernate-memcached-1.2.2.jar 2.memcached-2.3.1.jar 在使用sping的情况下的配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframew ...

freemarker之模板

 
实际上你用程序语言编写的程序就是模板,模板也被称为FTL(代表FreeMarker 模板语 言)。这是为编写模板设计的非常简单的编程语言。 模板(FTL 编程)是由如下部分混合而成的: Text 文本:文本会照着原样来输出。 Interpolation 插值:这部分的输出会被计算的值来替换。插值由${和}所分隔(或者 #{和},这种风格已经不建议再使用了)。 FTL tags 标签:FTL 标签和HTML 标签很相似,但是它们却是给FreeMarker 的指示,而 且不会打印在输出内容中。 Comments 注释:FTL 的注释和HTML 的注释也很相似,但它们是由<#--和-->来 ...
1.算数运算  加法:+  减法:-  乘法:*  除法:/  求模(求余):% eg: ${100 – 20} ${5/2} ${12%10} 注意:要保证两个操作数都是结果为数字的表达式。下面的这个例子在运行时,FreeMarker 就会发生错误 ${10 * "5"} <#--  这是错误的! --> 2.比较运算 测试两个值相等使用=(或者采用Java 和C 语言中的==,二者是完全等同的。) 测试两个值不等使用!= eg: <#if user = "yale"> love the way you lie ...
Global site tag (gtag.js) - Google Analytics