kristain

博客园 首页 新随笔 联系 订阅 管理

文章分类 -  J2EE

摘要:整合Apache与TomcatApache(Web Server)负责处理HTML静态内容;Tomcat(App Server)负责处理动态内容;其实就是上述这样的一个架构,下面是原理1)Apache装有一个模块,这个模块叫mod_jk2)Apache通过80端口负责解析任何静态web内容3)任何不能解析的内容,用表达式告诉mod_jk,让mod_jk派发给相关的app server去解释。通过上述的文字描述我们可以得知:1)我们需要在Apache中先装一个mod_jk2)我们需要在httpd.conf中写点表达式下面来实现。1)把mod_jk-1.2.31-httpd-2.2.3.so手工c 阅读全文
posted @ 2014-02-23 20:12 kristain 阅读(1972) 评论(1) 推荐(0) 编辑

摘要:Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的。下面介绍下四种解析Json的方式:Part 1var list1 = [1,3,4];alert(list1[1]);var list2 = [{"name":"leamiko","xing":"lin"}];alert(list2[0]["xing"])alert(list2[0].xing)Part 2var value = { "china":{ "hangzhou 阅读全文
posted @ 2012-05-02 13:55 kristain 阅读(51022) 评论(4) 推荐(2) 编辑

摘要:<script type="text/javascript" src="json2.js"></script><script>//直接声明json数据结构var myJSONObject = {"bindings": [{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},{"ircEvent 阅读全文
posted @ 2012-05-02 13:22 kristain 阅读(372) 评论(0) 推荐(0) 编辑

摘要:JNDI 是什么 JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。 那么,JNDI到底起什么作用? 要了解JNDI的作用,我们可以从“如果不用JNDI我们怎样做?用了JNDI后我们又将怎样做?”这个问题来探讨。 没有JNDI的做法: 程序员开发时,知道要开发访问MySQL数据库的应用,于是将一个对 MySQL JDBC 驱动程序类的引用进行了编码,并通过使用适当的 JDBC URL 连接到数据库。 ... 阅读全文
posted @ 2012-03-20 23:42 kristain 阅读(494) 评论(0) 推荐(0) 编辑

摘要:非全局jndi配置步骤:此种配置方式不需要在server.xml中配置数据源,而只在tomcat/conf/Catalina/localhost下的启动配置中配置即可。注意红色字体名称必须和相同。0、需要在tomcat/common/lib下加入数据库连接的jar包1、web.xml配置<resource-ref> <description>my DB Connection</description> <res-ref-name>mydataSource </res-ref-name> <res-type>javax.sq 阅读全文
posted @ 2012-03-20 23:06 kristain 阅读(24434) 评论(2) 推荐(0) 编辑

摘要:转园子里的一则文章,以便学习:作者:EricHu(DB、C\S、B\S、WebService、WCF、PM等)出处:http://www.cnblogs.com/huyong/触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。8.1触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。ORACLE事件指的是对数 阅读全文
posted @ 2012-03-20 22:51 kristain 阅读(4226) 评论(0) 推荐(0) 编辑

摘要:1 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts 1的一个具体问题是使用抽象类编程而不是接口。Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法的POJO类都可以用作Struts 2的Action。 2 线程模式方面的对比:Struts 1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略... 阅读全文
posted @ 2012-03-20 22:50 kristain 阅读(317) 评论(1) 推荐(0) 编辑

摘要:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN" "http://ibatis.apache.org/dtd/abator-config_1_0.dtd" ><abatorConfiguration > <abatorCo 阅读全文
posted @ 2012-03-20 22:48 kristain 阅读(221) 评论(0) 推荐(0) 编辑

摘要:基本配置见上篇一.添加配置文件dao.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEdaoConfigPUBLIC"-//ibatis.apache.org//DTDDAOConfiguration2.0//EN""http://ibatis.apache.org/dtd/dao-2.dtd"><daoConfig><context><transactionManagertype="SQLMAP&quo 阅读全文
posted @ 2012-03-20 22:47 kristain 阅读(445) 评论(0) 推荐(1) 编辑

摘要:example Class 使用(可以使用逻辑运算的结合律简化where条件)代码: TestTableExample example = new TestTableExample(); example.createCriteria().andField1EqualTo(5);产生条件:where field1 = 5代码:TestTableExample example = new TestTableExample();example.createCriteria() .andField1EqualTo(5) .andField2IsNull();example.or(example.cre 阅读全文
posted @ 2012-01-20 08:30 kristain 阅读(2187) 评论(0) 推荐(0) 编辑

摘要:1、前奏:最近使用ibatis+mysql作为持久,操作function(目的获取下一id)如下配置:<select id="getNextCatagorySeq"resultClass="string" parameterClass="int">select GETCATAID(#pid#);</select>2、问题描述:在function操作一次之后(假设输入参数为1000000000),再次操作(输入2000000000)就发生异常。查看异常:无发现GETCATAID('1000000000&# 阅读全文
posted @ 2011-12-04 22:48 kristain 阅读(3569) 评论(2) 推荐(1) 编辑

摘要:TagSupport与BodyTagSupport的区别标签:TagSupport与BodyTagSupport的区别1、 TagSupport与BodyTagSupport的区别TagSupport与BodyTagSupport的区别主要是标签处理类是否需要与标签体交互,如果不需要交互的就用TagSupport,否则如果需要交互就用BodyTagSupport。 交互就是标签处理类是否要读取标签体的内容和改变标签体返回的内容。 用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport。2 、doStartTag( 阅读全文
posted @ 2011-09-15 16:32 kristain 阅读(14285) 评论(2) 推荐(1) 编辑

摘要:一、js与jsp:1、转码:js处理<script type="text/javascript">var ch = "中文";function test(ch){ var title = ch != '' ? encodeURI(encodeURI(ch)) : ''; var path = "test.jsp?title="+title;}</script>2、解码:jsp处理<% String title = request.getParameter("tit 阅读全文
posted @ 2011-08-15 09:37 kristain 阅读(5763) 评论(0) 推荐(0) 编辑

摘要:WEB-INF文件夹中含有classes,lib,以及web.xml配置文件。 这个目录是jsp和servlet的规范!jsp和servlet运行的时候用到的用户自己定义的类都会直接到/web-inf/classes里面找!即使你在环境变量里面设置了,但是servlet容器是识别不了的!但是java虚拟机是可以找到的!所以用javac可以编译通过!但是在容器运行的时候是找不到的!其路径位置一般下不能改,否则就加载不到所需类,自然报出classnotfoundexception。编译后的.class文件必须放的classes文件夹里,而classes文件必须放到web-inf文件夹里 阅读全文
posted @ 2011-07-19 09:34 kristain 阅读(6544) 评论(0) 推荐(0) 编辑

摘要:cglib 是一个强大的, 高效高质的代码生成库.简单的使用方法Enhancer中有几个常用的方法, setSuperClass和setCallback, 设置好了SuperClass后, 可以使用create制作代理对象了Enhancer enhancer = new Enhancer();enhancer.setSuperclass(EnhancerDemo.class); enhancer.setCallback(new MethodInterceptorImpl());EnhancerDemo demo = (EnhancerDemo) enhancer.create();实现Meth 阅读全文
posted @ 2011-06-28 17:02 kristain 阅读(10103) 评论(0) 推荐(0) 编辑

摘要:Session具有一个缓存,是一块内存空间,在这个内存空间存放了相互关联的java对象,这种位于Session缓存内的对象也被称为持久化对象,Session是负责根据持久化对象的状态变化来同步更新数据库的。 Session的缓存是内置的,不能被卸除的,也被称为Hibernate的第一级缓存。在正常情况下一级缓存是由Hibernate自动维护的,无需人工干预。(一)理解一级缓存当应用程序调用Session接口的save()、update()、saveOrUpdate时,如果Session缓存中还不存在相应的对象,Hibernate就会自动的把该对象加入到一级缓存中去。当调用Session接口的. 阅读全文
posted @ 2011-05-07 20:04 kristain 阅读(3032) 评论(0) 推荐(1) 编辑

摘要:一、什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换成另一种状态。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。原子性。即不可分割性,事务要么全部被执行,要么就全部不被执行。如果事务的所 阅读全文
posted @ 2011-05-07 00:26 kristain 阅读(85657) 评论(8) 推荐(22) 编辑

摘要:Hibernate缓存机制对Hibernate的性能发挥一直处于一个极其重要的作用,它是持久层性能提升的关键。 Hibernate缓存介于Hibernate应用和数据库之间,缓存中存放了数据库数据的拷贝。其作用是减少访问数据库的频率,从而提高应用的运行性能。Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称为“缓存命中”),则直接把命中的数据作为结果加以使用,避免了建立数据库查询的性能损耗。 Hibernate提供了两级缓存:一级缓存(Session级缓存) 二级缓存(SessionFactory级别的全局缓存) 缓存的范围决定了. 阅读全文
posted @ 2011-05-05 23:17 kristain 阅读(219) 评论(0) 推荐(0) 编辑