1.Hibernate工作原理及为什么要用?
原理:
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
2.Hibernate是如何延迟加载?
1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)
2. Hibernate3 提供了属性的延迟加载功能
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)
类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、
4.说下Hibernate的缓存机制
1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存
2. 二级缓存:
a) 应用及缓存
b) 分布式缓存
条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非 关键数据
c) 第三方缓存的实现
5.Hibernate的查询方式
Sql、Criteria,object comptosition
Hql:
1、 属性查询
2、 参数查询、命名参数查询
3、 关联查询
4、 分页查询
5、 统计函数
6.如何优化Hibernate?
1.使用双向一对多关联,不使用单向一对多
2.灵活使用单向一对多关联
3.不用一对一,用多对一取代
4.配置对象缓存,不使用集合缓存
5.一对多集合使用Bag,多对多集合使用Set
6. 继承类使用显式多态
7. 表字段要少,表关联不要怕多,有二级缓存撑腰
7.Struts工作机制?为什么要使用Struts?
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。
基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件
8.Struts的validate框架是如何验证的?
在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。
9.说下Struts的设计模式
MVC
模式:
web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数
据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的
Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet会先创建这个对象,然后调用
Action的execute()方法。Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对
象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动
态的网页,返回给客户。
10.spring工作机制及为什么要用?
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
为什么用:
{AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比 如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。
IOC
允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反 过来的
JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight
construction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。
Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。}
==========================华丽的分割线,可以飘过哦====================
1. HttpSession session = request.getSession()
与HttpSession session = request.getSession(true)的区别?
参考答案:
getSession(true)的函数原型为::HttpSession session = request.getSession (Boolean create)
如果有与当前的request先关联的HttpSession,那么返回request相关联的HttpSession,如果还没有,那么:
java 代码
与当前
如果create==true, 那么返回一个新建的HttpSession,
如果create==false, 那么返回null.
2. getParameter与 getAttribute的区别?
参考答案:
Attribute是指属性。
Parameter是指参数,由URL传入或由FORM提交的内容
3.以下哪一个不是赋值符号?
A. += B. <<= C. <<<= D. >>>=
参考答案:
A.很明显是赋值符号
B.<<=左移赋值
C.不是
D.>>>= 右移赋值,左边空出的位以0填充
4.以下哪个不是Collection的子接口?
A. List B. Set C. SortedSet D. Map
参考答案:D
5.BufferedReader的父类是以下哪个?
A. FilterReader B. InputStreamReader C. PipedReader D. Reader
参考答案:D
6.子类A继承父类B
A a = new A();
则 父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?
参考答案:父类B静态代码块->子类A静态代码块->父类B构造函数->父类B非静态代码块->子类A构造函数->子类A非静态代码块
分享到:
相关推荐
Java Web教程和资料电子书是一份宝贵的资源,它旨在引导初学者和有一定基础的开发者深入理解和掌握Java Web开发技术。这份教程涵盖了Java面向对象编程在Web环境中的应用,是提升编程技能的重要参考资料。 首先,...
本示例"java web接口开发demo"可能是提供了一个简单的Java Web接口的实现,帮助开发者理解如何构建和使用这样的接口。 首先,让我们了解一下Servlet,它是Java Web应用的核心组件之一,用于接收HTTP请求并返回响应...
3. **JDBC(Java Database Connectivity)**:Java Web应用通常需要与数据库进行交互,JDBC是Java中连接数据库的标准API。通过JDBC,你可以执行SQL语句,处理结果集,并管理数据库连接。 4. **MVC(Model-View-...
Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)...学习和理解这些例子有助于开发者深入理解Java Web开发,并能够构建自己的Web应用程序。
3. **JDBC与数据库连接**:Java Web应用通常需要与数据库交互,JDBC(Java Database Connectivity)是Java访问数据库的标准API。学习如何创建数据库连接、执行SQL语句、处理结果集,以及事务管理和连接池管理。 4. ...
在处理此类文档时,需要具备一定的理解能力去筛选有用信息,排除干扰因素,这在信息处理和知识提取中是一个常见问题。 根据上述内容,我们可以理解,构建和运行Java Web服务涉及到的技术包括但不限于:Web服务的...
通过分析这个项目的源代码,我们可以深入理解Java Web开发的基本流程和关键组件。 1. **Servlet和JSP**:在Java Web应用中,Servlet用于处理HTTP请求,而JSP则用于生成动态网页内容。在这个项目中,Servlet可能被...
通过学习这些内容,读者不仅可以掌握Java Web开发的基本技能,还能深入理解Web应用的底层运作,从而成为一名更出色的Java Web开发者。《深入分析Java Web技术内幕 修订版.pdf》这本书无疑是一份宝贵的参考资料,值得...
【Java Web课程设计详解】 Java Web是Web应用程序开发的一个重要领域...通过分析和调试这些代码,你可以深化对Java Web开发的理解,并提升自己的技能。在使用时,记得根据实际情况调整和修复,使其适应你的开发环境。
通过阅读和理解这份文档,你应该能成功地在Java应用程序或Web应用中调用Matlab,实现跨技术栈的协同工作。 总的来说,Java调用Matlab是一个强大且实用的技术结合,它允许开发者充分利用Matlab的计算能力,同时借助...
在Java Web开发领域,你需要理解以下几个核心知识点: 1. **Java基础**:首先,你需要掌握Java编程的基础,包括语法、类与对象、继承、接口、异常处理以及集合框架等。这是所有Java开发的基石。 2. **Servlet与JSP...
在这个“java web信息管理系统”项目中,我们可以深入理解Java Web的基础知识及其在实际开发中的应用。 首先,Java Web项目的核心是Servlet和JSP(JavaServer Pages)。Servlet是Java编写的服务器端程序,负责处理...
JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解...对于那些需要深度理解应用程序运行状况的团队,JavaMelody无疑是一个不可或缺的工具。
1. **Java基础**:学习Java Web前,首先需要对Java编程语言有深入理解,包括语法、面向对象编程、异常处理、集合框架等。 2. **Servlet和JSP**:Servlet是Java Web开发的基础,用于接收和响应HTTP请求。JSP(Java...
Java Web API是Java平台用于构建Web应用程序的一组接口和类,涵盖了从服务器端处理到客户端交互的各种技术。在这个描述中,我们关注的关键技术包括Hibernate、Java EE、JDK、jQuery、Spring以及W3C School的API。让...
这本书的光盘源代码提供了丰富的示例和项目,旨在帮助读者深入理解Java Web开发的核心概念,并通过实际操作来提升技能。 在Java Web编程中,我们首先要了解的是基础环境的搭建,这包括JDK(Java Development Kit)...
本实例集合提供了丰富的课件和源代码,旨在帮助初学者逐步掌握Java Web开发的核心技能,从简单到复杂的案例,让你在实践中学习和提升。 一、基础概念 1. Java Servlet:Servlet是Java编写的服务器端程序,主要用于...
这是一份丰富的学习资源,适用于初学者和有一定经验的开发者,旨在通过实例代码来深化理解Java Web开发的核心概念和技术。 1. **Servlet与JSP** 第10章可能涵盖了Servlet和JSP(JavaServer Pages)的基本概念。...
这个实例将带你深入理解如何在Java Web环境中处理用户身份验证。 首先,我们需要了解Java Web的基础架构。Java Web开发主要依赖于Servlet和JSP(JavaServer Pages)技术。Servlet是Java编写的服务器端程序,用于...
Spring MVC是Java Web中最流行的MVC实现框架,学习者可能需要掌握如何配置和使用。 3. **JDBC与数据库操作**:Java Database Connectivity (JDBC)是Java连接数据库的标准API,学习者会学习如何编写SQL语句,创建...