`
农村哥们
  • 浏览: 287183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
查看复制到剪切板打印   package test.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * 用于把OutputStream 转化为 InputStream。 * 适合于数据量不大,且内存足够全部容纳这些数据的情况。 * @author 赵学庆 www.java2000.net * */ public class Test1 { /** * @p ...
查看复制到剪切板打印 package test;       import java.io.File;    import java.io.FileInputStream;    import java.io.FileOutputStream;    import java.util.jar.JarEntry;    import java.util.jar.JarOutputStream;       public class Test {      public static void jar(String inputFileN ...
什么叫控制反转呢? 套用好莱坞的一句名言就是:你呆着别动,到时我会找你。 什么意思呢?就好比一个皇帝和太监 有一天皇帝想幸某个美女,于是跟太监说,今夜我要宠幸美女 皇帝往往不会告诉太监,今晚几点会回宫,会回哪张龙床,他只会告诉太监他要哪位美女 其它一切都交由太监去安排,到了晚上皇帝回宫时,自然会有美女出现在皇帝的龙床上 这就是控制反转,而把美女送到皇帝的寝宫里面去就是注射 太监就是是框架里面的注射控制器类BeanFactory,负责找到美女并送到龙床上去 整个后宫可以看成是Spring框架,美女就是Spring控制下的JavaBean 而传统的模式就是一个饥渴男去找小姐出台 找领班,帮助给介绍一 ...
题目,得到某个数组,比如【1,2,3】 获得其全部的排列组合,包括1个数字的。2个数字的,和三个数字的等等。 查看复制到剪切板打印   import java.util.Stack; /** * JAVA获得一个数组的指定长度的排列组合。<br> * * @author JAVA世纪网(java2000.net, laozizhu.com) */ public class TestSequenceAll { public static void main(String[] args) { TestSequenceAll t = ...
/** * 写一个方法 String left(String str ,int n) <br> * str字符串中可能包含中文,中文是2bytes,实现的功能是<br> * 如:“中abc12” n=4 则该方法返回“中ab”<br> * “中abc国a” n=6 则返回“中abc”<br> * 中文是一半时不返回 * * @author Fee Share */ public class Test { public static void main(String[] args) ...
答:①导航对象图检索 ②OID检索 ③HQL检索 ④QBC检索 ⑤本地SQL检索
临时状态——刚用new语句创建,未被持久化,不处于session的缓存中。 持久化状态——已经被持久化,处于session的缓存中。 游离态——已经被持久化,但不处于session的缓存中
立即检索 优点:对应用程序完全透明, 缺点:select语句数目多。 适用:类级别。 延迟检索 优点: 由应用程序决定加载哪些对象,可以避免执行多余的select语句以及避免加载不需要访问的对象,节省内存空间,提高检索效率。 缺点: 应用程序如果要访问游离态的代理类实例,必须保证它在持久化时已经被初始化。 适用: 一对多或多对多关联。应用程序不需要立即访问或者根本不会访问的对象。 迫切左外连接检索: 优点:对应用程序完全透明,不管对象处于持久化状态还是游离状态,应用程序都可以方便的从一个对象导航到另一个与它相关联的对象。使用了外连接,select语句数目少。 缺点:可能会加载程序不许要访问的对象 ...
(1)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。 (2)Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。 (3)在Session 中,每个数据库操作都是在一个事务(transaction)中进行的,这样就可以隔离开不同的操作(甚至包括只读操作)。
(1)减少访问数据库的频率。应用程序从内存中读取持久化对象的速度显然比到数据库中查询数据的速度快多了,因此Session的缓存可以提高数据访问的性能。 (2)保证缓存中的对象与数据库中的相关记录保持同步。当缓存中持久化对象的状态发生了变换,Session并不会立即执行相关的SQL语句,这使得Session能够把几条相关的SQL语句合并为一条SQL语句,以便减少访问数据库的次数,从而提高应用程序的性能。
session清理缓存是指按照缓存中对象的状态的变化来同步更新数据库; 清空是session关闭
对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。 在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。 其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForwa ...
1. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。 2. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。 3. 根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。 4. 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。 5. ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给 ...
1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。 2、接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。 3、如果validate()方法返回的ActionErrors 对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。 4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过<html:erro ...
1、ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。 2、Struts框架利用ActionForm Bean来进行View组件和Controller组件之间表单数据的传递。 3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionForm Bean中,把它传递给Controller组件,Controller组件可以对ActionForm Bean中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置H ...
Global site tag (gtag.js) - Google Analytics