日期:2014-05-20  浏览次数:20786 次

java面试学习笔记hibernate

ORM映射框架:

?对象到关系型数据库的映射

?

O/R Mapping

?

Hibernate的二级缓存

只缓存实体对象

二级缓存也称进程级缓存也称sessionFactory级的缓存,二级缓存可以被所有的session所共享(与一级缓存区别),二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存

?

巴巴运动网

Oscash支持页面局部缓存,页面缓存

Hibernate的二级缓存

?

?

得到缓存后还得执行return? mapping.findForward(“product”);? 执行这句话比较耗时

Oscache的缓存

?

?

?

?jsp中得到url

?

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

?

1、? Jsp的内置对象,以及各自的作用

1、? request表示HttpServletRequest对象。它包含了有关浏览器传送过来的请求的信息,并且提供了几个用于获取cookie, header,session数据的有用的方法。

2、? response表示HttpServletResponse对象,并提供了几个用于 设置送回 浏览器的响应的方法(如cookies,头信息等)

3、? out对象是javax.servlet.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

4、? pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

5、? session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

6、? applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

7、? config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数

8、? page表示这个Jsp本身,通过它可以对Jsp本身进行访问,只有在Jsp页面的范围之内才是合法的

9、? exception, 当某个Jsp页面产生了异常时,会转到某个error页面,这个exception就是上个页面中产生的异常。再,exception只可以用在isErrorPage=”true”的那个页面中,否则将不能编译这个Jsp文件

2、? 四种会话跟踪技术

1、? page代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java Servlet 类表示(可以带有任何的 include 指令,但是没有 include 动作)。这既包括 Servlet 又包括被编译成 Servlet JSP 页面

2、? request代表由Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由于 forward 指令和 include 动作的关系)

3、? session代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web会话可以也经常会跨越多个客户机请求request

application代表与整个web应用程序相关的对象和属性。这实质上是跨越整个web应用程序,包括多个页面、请求和会话的一个全局作用域

?

application:ServletContext
config:ServletConfig
out:JspWriter
page:object
pageContext:PageContext
request:HttpServletRequest
response:HttpServletResponse
session:HttpSession

?

1、? 四种会话跟踪技术

1、? page代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java Servlet 类表示(可以带有任何的 include 指令,但是没有 include 动作)。这既包括 Servlet 又包括被编译成 Servlet JSP 页面

2、? request代表由Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由于 forward 指令和 include 动作的关系)

3、? session代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web会话可以也经常会跨越多个客户机请求request

4、? application代表与整个web应用程序相关的对象和属性。这实质上是跨越整个web应用程序,包括多个页面、请求和会话的一个全局作用域

?

?

3jsp中的动作,作用?

1jsp:include,在页面被请求的时候,引入一个文件

2jsp:useBean,寻找或实例化一个JavaBean

3jsp:setProperty,设置JavaBean的属性

4jsp:getProperty,输出某个JavaBean的属性

5jsp:forward,把请求转到一个新的页面

6jsp:plugin,根据Brower类型,为Java插件生成OBJECTEMBED标记

?

4forward [U1]?redirect的区别

1forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。


?

Oscache缓存可以把内容通过一个map缓存到内存中,取的时候直接从内存读取数据,速度比从硬盘中读取静态页面还快。

专业的缓存工具Oscache站在整个应用的角度上考虑缓存问题,hibernate二级缓存只能缓存业务层中的实体对象,不能缓存其他内容,Oscache不仅可以缓存实体对象,还可以缓存页面其他内容

Velocity模板

Web应用中最影响性能的地方是数据库瓶颈,解决了数据库瓶颈,软件的性能就可以提升上百倍。解决问题的方法是要减少和数据库的交互,为了减少和数据库的交互,几乎各大门户网站都使用了页面静态化和缓存技术,对于一些不经常修改的页面应该实现静态化,如新闻页面/产品展示页面,对于一些经常修改,但在短时间内又不会发生变化的内容,我们应该采用页面静态化。

8、如何实现Servlet的单线程模式

isThreadSafe = “true | false”.如果值为“true”(缺省)表示:将进行普通的servlet处理,多个请求将被一个servlet实例并行处理,在这种情况下,编程人员同步访问多个实例变量。值为“false”时表示:servlet将实现单线程模式(SingleThreadModel,不管请求是顺序提交还是并发出现,都将提供不同的分离的servlet实例。

9、页面间传递对象的方法

requestsessionapplicationcookie

?

?

?

?