- 浏览: 40299 次
- 性别:
- 来自: 扬州
最新评论
-
q474818917:
hnzz001 写道1.public String inter ...
Struts 拦截器 -
hnzz001:
1.public String intercept(Actio ...
Struts 拦截器
文章列表
这篇文章是转的,写的相当不错
Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。该结构及相应的生成算法如下: 0)设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too. 文章2的内容为:He once lived in Shanghai. 1)由于lucene是基于关键词索引和查询的,首先我们要取得这两篇文章的关键词,通常我们需要如下处理措施 a.我们现在有的是文章内容,即一个字符串,我们先要找出字符串中的所有单词,即分词。英文单词由于用空格分隔,比较好处理 ...
Berkeley DB 开源的文件数据库
- 博客分类:
- BI商业智能
开源的文件数据库,介于关系数据库和内存数据库之间,按键值对方式存储
下面是一个实例,是网上抄的,然后自己本机运行的
package org;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.concurrent.TimeUnit;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry; ...
开源OLAP引擎Mondrian
- 博客分类:
- BI商业智能
关于OLAP开源引擎Mondrian讲解不错:
http://www.blogjava.net/pdw2009/archive/2008/04/17/193728.html
Mondrian提供了MDX查询的API,类似于Java中的JDBC
Mondrian:MDX多维分析语言
JDBC:传统的SQL
关于Mondrian的使用,还是看
http://www.blogjava.net/pdw2009/archive/2008/04/17/193728.html
讲解
Session跨域失效的解决方案
- 博客分类:
- 设计方案
首先指出这种想法并非我自己个人想出来的,而是看了一个博客后的见解,感觉这种方案还是不错的
跨域的意思就是从一个域名,链接到另一个域名,而这两个或者两个以上的域名都指向同一个Server。
大众普遍的解决方案是单点登录
我这里提出的是另一种简化的方案:就是采用缓存机制+拦截器
案例:Spring AOP + Ehcache
用户登录:将用户信息或者其他有用信息放到cache中
拦截器拦截:判断cache中是否有用户信息,这样用户信息在跨域访问时就不会失效。
用户退出:自然就是删除缓存中的用户信息
代码偷懒就不写了,最近事挺多
个人觉得相当不错,把java中类的初始化及子类、父类之间的初始化顺序,静态变量、静态方法的初始化都涵盖了,很不错的一道面试题
面试题目如下:请写出程序执行完成之后的结果。
package extend;
public class X {
Y y=new Y();
static{
System.out.println("tttt");
}
X(){
System.out.println("X");
}
public static void main(String[] args) {
new Z( ...
以下是我从其它博客里面摘录过来的,希望填充一下大家的概念:
下面章节将慢慢的讲解HttpClient,以实例说明:
Http的请求报文和响应报文可以携带内容实体,也就是http的真正的内容部分。那些头信息都是给程序看或者说给程序员看的,内容实体才是真正给用户看的,或者说是我们真正需要的数据内容。
实体是可选的,可以有也可以没有。
HttpClient这个开源项目把实体分成三种类型,分类是根据实体的来源分的。
1.流式实体:从相应的中获得的流式的内容,流式实体不可以重复取出。
2.自我包含式实体:从内存中或者其他链接获得,一般是包含在请求中。可以重复生成。(这个我不明白 ...
使用Spring都需要通过applicationContext.xml来生成一个Spring上下文
这里讲述的是Hibernate的查询效率,而对Spring生成的上下文能大大的提高查询效率
使用Hibernate,一般都是通过Spring上下文获取SessionFactory,然后通过SessionFactory产生session对数据库的增、删、改、查等操作。
但是由于每次的操作,都需要产生一个Spring上下文,这就对效率产生影响
采用的做法是:单例模式
public AbstractApplicationContext getInstance(){
if(a ...
教你如何使用分布式管理控制工具
- 博客分类:
- Java基础
或许你用过集中式管理控制:SVN
下面介绍一下分布式管理控制的工作:Git
1.SVN优缺点优点: 1、 管理方便,逻辑明确,符合一般人思维习惯。 2、 易于管理,集中式服务器更能保证安全性。 3、 代码一致性非常高。 4、 适合开发人数不多的项目开发。 缺点: 1、 服务器压力太大,数据库容量暴增。 2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。 3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层 ...
Java中的接口与抽象类
- 博客分类:
- Java基础
接口:
抽象类:
抽象类实现接口的最主要的作用是过滤到不需要实现的方法
一般类实现某个接口,会重写接口中的所有方法的实现。但是如果你只想实现接口中的某些方法(不是全部),则定义一个抽象类实现这个接口(方法体内部为空),然后再写个类继承这个抽象类,这就可以满足你的需求,同事这个也就是适配器模式的思想。
ThreadLocal个人理解 非官方言论
- 博客分类:
- Java基础
ThreadLocal 是一种解决多线程安全的一种解决方案
传统的多线程访问,对于一个对象是非线程安全的,在多线程的环境中,一般都是采用synchronized进行线程同步的,从而达到线程安全的。
但是传统方式的采用同步方式,无非会造成降低系统的并发性,从而降低系统性能缺点。
ThreadLocal采用的方式是为每一个线程创建一个变量的副本,从而各个线程间拥有自己的变量副本,进而对自己的变量副本操作不会影响到其他的线程。
一般使用ThreadLocal都会做如下处理:
1、创建一个ThreadLocal的对象,1.5以后支持泛型操作
private static Thread ...
JDK动态代理和Cglib动态代理
- 博客分类:
- Java基础
Spring AOP使用了两种代理机制:一种是基于JDK的动态代理;另一种是基于CGLib的动态代理
JDK动态代理只能提供对接口的代理,不能实现对类的代理
所以Spring AOP也采用了Cglib动态代理技术
下面采用实例分别叙述JDK动态代理和CGLib的区别
JDK动态代理:
1、
业务接口和实现类:
public interface BusinessService {
void ink_print();
}
public class BusinessServiceImpl implements BusinessService {
@Override
...
Struts2 类型转换之个人见解
- 博客分类:
- Web开发 独解
看了网上大部分有关类型转换的例子,无非不过是关于point这个javaBean展开的。
页面输入部分:
<s:form action="pointconverter">
<s:textfield name="point1" label="point1"></s:textfield>
<s:textfield name="point2" label="point2"></s:textfield>
& ...
JEECMS 系统权限设计
- 博客分类:
- Web开发 独解
1、用户校验.
登录校验主要围绕着用户后台登陆的url拦截
a.围绕着用户登录过程中设计到两张用户表
jc_user:存储着用户的基本信息
jo_user:存储着用户登录、注册、更新时间及用户密码信息
b.后台用户登录负责处理的servlet是CmsLoginAct类,该类包含两个方法:
input:根据浏览器的请求指向用户登录页面。
s
public String intercept(ActionInvocation invocation) {
//do some job before invocation
//...
String result = invocation.invoke();
//do some job after invocation
//...
return result;
}
使用自定义的Interceptor时,一定要定义一个Interceptor栈,定义你自己的拦截器和系统默 ...
当一个网页完全下载到客户端浏览器之后,才会触发window.onload()事件,页面完全下载后,页面中所有的DOM元素都是可以访问的.这种方式有一个很大的优点:不用考虑DOM元素加载的顺序.
而$(document).ready()事件,则是在DOM完全就绪时触发,并不要求页面所有DOM元素加载到浏览器.当HTML解析为DOM元素之
后,事件就可以运行了.这种方式优于onload()事件在于:$(document).ready()可以在页面没有完全下载时,操作页面的DOM元
素.