- 博客(19)
- 收藏
- 关注
原创 Tomcat服务器启动时报错javax.servlet.jsp.JspException: Cannot find FacesContext
譬如我访问某个项目的页面,在页面中用到了facesContext对象,也就是用了f标签,这时他会到指定的目录中去找这个类http://127.0.0.1:8080/project/我第一时间想到的是web.xml文件出错了,结果一查: <servlet-mapping> <servlet-name>Faces Servlet</servlet-...
2011-04-09 18:07:57
196
原创 forward/redirect重定向
想要从一个Servlet转向另外一个Servlet,可以使用两种方法进行重定向:forward(或称dispatch) - 服务器端重定向redirect – 客户端重定向forward服务器端从一个Servlet转向另外一个Servlet,在一个Servlet中可以通过setAttribute往request中传递一些值在另外一个Servlet中,可以通过...
2010-12-30 11:43:34
161
原创 关于Get和Post以及请求的进一步理解
GET与POST,是HTTP协议中的内容,表示客户端向服务器递交请求的方法,GET/POST…等方法在协议中的大概用意是GET – 获取资源信息POST – 提交信息DELETE – 删除资源HEAD – 响应中不要包含消息体PUT –创建或修改资源等等99.99%的情况下,我们只跟GET/POST方法打交道,其它方法,可忽略,不用管它们...
2010-12-29 22:01:09
148
原创 Servlet生命周期
Servlet是单例的,一般Tomcat服务器负责加载我们的Servlet,它会把这个类加载到方法区,同时创建他的对象放到堆里面,但是他只会创建一遍,因此无论你在浏览器中刷新多少次,内容一般都不会变化。 下面的切记:JavaEE应用程序运行在一个多线程的环境中!对于每个从客户端过来的HTTP请求,应用服务器都会有一个对应的线程去处理!如果有多个请求到达服务器,服务器会同时启动多...
2010-12-29 21:19:36
125
原创 Hibernate查询缓存中的1+N
查询缓存查找实体对象:session.beginTransaction(); /** * 如果查询的是实体对象,在查询缓存中缓存的是实体对象的ID列表,而实体对象本身被放到了二级缓存中,所以查询缓存需要配合二级缓存一起使用。 * 假如二级缓存没有启用,将导致即使是list操作也会发出n条查询语句去查询实体对象! */ String hql = "sel...
2010-12-20 11:16:45
106
原创 Hibernate缓存策略之查询缓存
查询缓存:首先明确查询缓存缓存的是什么?缓存的key是HQL语句与参数,缓存的value则是:1、 如果查询的是普通结果集,则缓存这些结果集2、 如果查询的是实体对象,则缓存的是实体对象的ID列表3、 查询缓存它也是SessionFactory级别的缓存,由sessionFa...
2010-12-20 11:12:51
112
原创 Hibernate悲观锁与乐观锁
假如有两个客户端或者说是两个事务同时去修改同一条数据,就会产生并发的现象,这时候有数据的更新丢失。现在就来模拟下这个并发现象的例子:客户端1或者说是事务1:session.beginTransaction();Person p = (Person)session.load(Person.class, 1);//Person p = (Person)...
2010-12-19 13:47:17
92
原创 初识EJB
EntityManagerFactory相当于Hibernate中的SessionFactory对象,它里面有一个PersistenUnit就代表着一个EntityManagerFactory以及所包含的映射元数据,代表着一个数据库,如果有两个数据库,就可以在persistence.xml的配置文件中配置两个persistence-unit。EntityManager由EntityManagerF...
2010-12-16 22:58:32
112
原创 Hibernate缓存策略之二级缓存
一级缓存,即session级缓存,是最最重要的,因为它不能够被取消,现在看看二级缓存. Hibernate二级缓存不是由本身维护的,它是由第三发缓存框架来提供的。看一下如何使用二级缓存:1、首先要打开二级缓存<!-- 配置打开二级缓存 --><property name="hibernate.cache.use_second_level_cache">...
2010-11-21 23:49:09
114
原创 Hibernate缓存策略之1+N(一)
一级缓存中的1+N问题所谓1+N指的就是:一条查询实体对象的ID列表的查询语句和迭代查询具体的多个实体对象的查询语句session的load/get或iterate操作会利用缓存,如果缓存中已有实体对象,将不再发出查询语句查询实体对象session的list操作将不会利用缓存,每次查询,都会发出查询语句如果查询实体对象,则list操作直接发查询语句把实体对象加载到...
2010-11-21 22:31:12
181
原创 Hibernate缓存策略之一级缓存
缓存相当于Map结构,讲的是命中率,就像Entryset中的key和Value。 Hibernate中的缓存:一级缓存,也叫session级别的缓存,缓存的是实体二级缓存,是SessionFactory级别的缓存,缓存的也是实体查询缓存,也是SessionFactory级别的缓存,它缓存的是普通结果集,但如果缓存的是实体则缓存实体的Id列表session级别的缓存...
2010-11-21 21:43:14
139
原创 线程安全的StringBuffer和线程不安全的StringBuilder
有一个线程:public class MyThread extends Thread { private StringBuffer sb; public MyThread(String name,StringBuffer sb) { super(name); this.sb = sb; } @Override public void run() { for...
2010-11-19 00:42:40
266
原创 线程:共享资源(二)
[size=medium]synchronized关键字被添加到实例方法的前面时,[color=blue]只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法[/color][/size]([size=medium][b]对象级的锁[/b][/size]) SomeClass中的同步方法: public synchro...
2010-11-19 00:33:29
105
原创 线程:共享资源(一)
共享资源(或称临界资源)问题:多个线程同时修改同一个数据(资源),导致最终结果不正确,这是典型的由于并发访问所产生的问题。线程的内存结构:[b][size=large]当我们每启动一个线程,每个线程都会有一个它自己的栈,所以对于局部变量,不存在并发访问问题,但“堆”和“方法区”是所有线程共享的,所以,如果我们在多个线程中访问在“堆”中的同一个对象的数据时,或者访问静态变量时,就会产生并发访...
2010-11-19 00:23:30
125
原创 线程初步
线程初步:1、创建线程的两种方式: 通过Thread t = new Thread()创建,需要继承java.lang包中Thread类重写run()方法,然后让t.start()启动线程; 通过实现Runnable接口也重写了run()方法,接着把Runnable创建出来的对象当参数把它传进去 Runnable r = new XxxThread(); new Threa...
2010-11-14 17:26:49
115
原创 Java线程
首先要搞清楚的是线程的共享资源,共享资源是多线程中每个线程都要访问的类变量或实例变量,共享资源可以是单个类变量或实例变量,也可以是一组类变量或实例变量。多线程程序可以有多个共享资源。下面描述他们之间的一对多关系(*表示多): 多线程程序(1)----共享资源(*)----类变量或实例变量(1…*) 只有...
2010-11-13 11:13:11
113
原创 Hibernate多对多关联映射通常别拆分成两个多对一关联映射
Hibernate多对多关联映射通常别拆分成两个多对一关联映射1、 下面的Person、Role、PersonRole,PersonRole是两个表之间的关联表,分别跟Person和Role都是多对一的关联关系,可以发现中间表始终是多的一端。 2、因此配置文件中是这样的,在中间表PersonRole中 分别设置中间表的两个关联字段;在另外本身是多对多关联的两个表中...
2010-11-12 22:20:58
215
原创 一对多双向关联及inverse和cascade属性
单向多对一关联映射:many-to-one:1、 所谓的关联就是对象和对象之间在某段时间范围内(是可以持续一段时间的),存在有联系,即关联可以在一开始不存在,后来才建立起来,然后还可以取消和改变如:通过对象A.setB(对象B)建立或更新关联--通过A.setB(null)取消关联2、 判断关联的多重性:首先站在任何一端的某一个对象的角度判断跟对方那端的多少个对象有联系,...
2010-11-12 00:07:37
258
原创 初学Hibernate(一)
Hibernate简单开发步骤:1、准备工作:引入Hibernate包及其依赖包和jdbc驱动包,并在Hibernate文件中的project/etc下,拷贝log4j.properties放到项目类路径中2、创建实体类:实体类一般指的是只有attrbute和property的java类,并且...
2010-11-11 20:59:13
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅