文档库 最新最全的文档下载
当前位置:文档库 › JavaEE教案 (16)

JavaEE教案 (16)

JavaEE教案 (16)
JavaEE教案 (16)

任务介绍(5分钟)

根据注册信息在数据库中创建数据库及用户信息表,使用hibernate框架实现注册信息入库。

任务解析(50-60分钟)

1.加入hibernate相关jar包(只需加一次)

2.【可选】创建注册用户表结构

3.创建实体类与表的映射文件

4.配置hibernate全局配置文件

5.dao层:增加注册入库数据处理类

6.service层:增加注册业务处理类

7.action层,修改注册业务控制类

8.调试运行

详细步骤

1.在使用struts2的web项目里引入所需hibernate相关的jar文件

hibernate相关jar文件只需要引入一次,具体要引入的jar文件详见本节任务解析的例子3.1-1的相关内容。

2.【可选】创建注册用户表结构

创建用户表user,表结构如表3.1-2所示。

表3.1-2 用户信息表user

注:若已经编写好user表对应的实体类和实体映射文件,以及在hibernate全局配

置文件的节点中增加了

name="hbm2ddl.auto">create,那么可以通过hibernate框架在运行程序

的时候自动在数据库中生成user表结构。特别提醒,若user表已经存在,则会删

除旧的user表,重新创建新的,会导致旧表中记录全部丢失,所以一般建议该配

置仅使用一次,在使用之后可以将

name="hbm2ddl.auto">create中的create替换成update就可以避免这个

问题。

3.创建实体类与映射文件

在工程src目录下的com.zdsoft.domain包中新增与user表对应的实体类User,参考如

下:

public class User {

int id;

String name;

String userName;

String password;

String sex;

String province;

int age;

Date birth;

String mobile;

String hobbies;

String email;

//以下省略每个成员变量的get/set方法

}

在com.zdsoft.domain包下新增User.hbm.xml映射文件,具体步骤如下:

首先在User.hbm.xml映射文件中加入文件头,代码如下(一般是固定的,无需改动):

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.wendangku.net/doc/7015327260.html,/hibernate-mapping-3.0.dtd">

其次在User.hbm.xml文件的文件头下面添加hibernate-mapping节点,关键代码如下:

package属性表示所描述的实体类的路径,本任务的实体类都在com.zdsoft.domain包下,所以做如此配置。

接着在hibernate-maaping节点下添加class节点,关键代码如下:

class节点的name属性表示映射类的类名称。

再次,在class节点下添加相关子节点,参考代码如下:

注:id节点表示所描述类的标识符,其中name属性表示标识符的名称,column属性

表示该标识符对应数据库表中的列名称,若映射类中的属性与表中的字段名完全

一样,则column属性可以省略。

4.配置hibernate全局配置文件

在hibernate.cfg.xml文件的节点中增加一行代码,参考如下:(其实就

是让hibernate框架知道并管理我们增加的一个新的实体-关系映射)

5.dao层:增加注册入库数据处理类

在com.zdsoft.dao包下新增RegisterDao,该类编写的详细步骤如下:

首先在RegisterDao类中定义hibernate框架所使用的成员变量,参考如下:Configuration cfg = null;

SessionFactory sessionFactory = null;

Session session = null;

Transaction tx = null;

其次定义RegisterDao类的构造方法,参考如下:

public RegisterDao(){

cfg = new Configuration();

cfg.configure();

sessionFactory = cfg.buildSessionFactory();

}

再定义保存User对象的save方法,并实现该方法:

public boolean save(User user) {

boolean ret = false;

try {

session = sessionFactory.openSession();

tx = session.beginTransaction();

session.save(user);

https://www.wendangku.net/doc/7015327260.html,mit();

ret = true;

} catch (HibernateException e) {

if (tx != null) {

tx.rollback();

}

e.printStackTrace();

ret = false;

}

if (session != null) {

session.close();

}

return ret;

}

6.service层:增加注册业务处理类

在com.zdsoft.service包下新增RegisterService 类,该类创建详细步骤如下:

首先在RegisterService类中定义成员变量RegisterDao:

private RegisterDao registerDao = new RegisterDao();

再在RegisterService类中定义register方法:

public boolean register(User user) {

return registerDao.save(user);

}

7.action层:修改注册业务控制类

修改com.zdsoft.action包中的RegisterAction类(RegisterAction的初始代码请参考前面

章节),调用相应的业务逻辑层方法,关键代码如下:

public String regist() {

//业务控制器

//调用业务处理类完成业务处理,并得到业务处理的结果,在调用的时候需要传数据

RegisterService registerService=new RegisterService();

//数据准备:数据复制给实体类的对象user

User user=new User();

user.setName(name);

user.setUserName(username);

user.setPassword(pass);

user.setSex(sex);

user.setProvince(province);

user.setAge(age);

user.setBirth(birth);

user.setMobile(mobile);

user.setEmail(email);

String tmp="";

if(love!=null){

for(String lo:love){

tmp+=lo+" ";

}

}

user.setHobbies(tmp);

//调用业务处理类相关方法执行后得到结果

boolean ret=registerService.register(user);

//根据结果返回

if(ret){

return"success";

}else{

return"error";

}

}

8.调试运行

将项目发布到web服务器中运行注册页面,输入注册信息如图3.1-3a所示,点击提交后跳转到成功页面如图3.1-3b所示,在控制台中我们看到输出的sql语句如图3.1-4所示,在数据库中我们看到插入的注册信息如图3.1-5所示(注册失败的情况可参考登录功能章节的处理,这里从略)。

图3.1-3a 注册用户输入页面

图3.1-3b注册成功结果页面

图3.1-4 hibernate后台HQL语句

图3.1-5数据库user表结果

根据任务提出问题(45-55分钟)

●Hibernate框架是什么?

●如何使用hibernate框架?

问题解析(45-55分钟)

1.Hibernate框架是什么

Hibernate是一个开放源代码的O/R Mapping (对象关系映射框架),它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

术语ORM——对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。

Hibernate框架的好处:操纵数据库的时候省略了连接、关闭数据库等例行的操作。程序使用面向对象的java代码及hsql取代了操纵数据库以前必须的sql语句,这样,不依赖sql语句的程序可以数据库无关;即:程序员不需要知道sql语句,当程序更换了不同厂家的类型的数据库时,使用hibernate框架可以不用修改代码依然可用。

Hibernate框架的用武之地——使用层次关系如图3.1-1所示。

图3.1-1 Hibernate框架的作用层次

2.hibernate框架的使用说明:以用户信息维护为例

【例子3.1-1】使用hibernate框架实现用户信息的增删查改,用户信息(userinfo)在数

据库中的表结构如表3.1-1所示。

表3.1-1 用户信息表userinfo

备注:请先将表userinfo在数据库中建好,数据库不限,建议使用mysql,本例使

用mysql数据库。

步骤1:加入hibernate的jar包到工程中(hibernate所需JAR 如下)。

hibernate核心安装包(hibernate-distribution-3.3.1.GA-dist.zip)下载路径

http:https://www.wendangku.net/doc/7015327260.html, ,点击Hibernate Core右边的Downloads,下载以下文件:hibernate3.jar

lib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar

lib\required\*.jar

hibernate注解安装包(hibernate-annotations-3.4.0.GA.zip) 下载路径

http:https://www.wendangku.net/doc/7015327260.html, ,点击HibernateAnnotations右边的downloads,下载以下文件:hibernate-annotations.jar

lib\ejb3-persistence.jar

hibernate-commons-annotations.jar

Hibernate针对JPA的实现包(hibernate-entitymanager-3.4.0.GA.zip) 下载路径

https://www.wendangku.net/doc/7015327260.html,,点击HibernateEntitymanager右边的Downloads,下载以下文件:hibernate-entitymanager.jar

lib\test\log4j.jar

slf4j-log4j12.jar

注:本书用的是hibernate框架3.2及以上的版本,读者下载的时候只要比上述版

本新都可以运行无碍。

步骤2:增加hibernate的全局配置文件。

配置文件名:hibernate.cfg.xml;文件作用:配置数据库连接信息;存放路径:在src目

录下;文档初始内容如下。

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"https://www.wendangku.net/doc/7015327260.html,/hibernate-configuration-3.0.dtd">

步骤3:增加与userinfo表相对应的java实体类Userinfo。

编写要点:userinfo表中的字段对应java实体类Userinfo中的成员变量;字段与成员变

量的数据类型必须一致;成员变量的个数必须≥字段个数;字段的名字和成员变量的名字可以相同,也可以不同(表名与对应类名也是如此),建议尽可能相同(不容易出错);与字段

对应的成员变量必须有get/set方法。类Userinfo的具体代码参考如下:

package hibernate; //本例Userinfo类放在hibernate包下

/**

*在hibernate中代表了Userinfo表的类。

*/

public class Userinfo{

/**每个属性和表的一个字段对应**/

private String id;

private String name;

/**属性的访问方法**/

public void setId(String id) {

this.id = id;

}

public String getId() {

return id;

}

public void setName(String name){

https://www.wendangku.net/doc/7015327260.html,=name;

}

public String getName(){

return https://www.wendangku.net/doc/7015327260.html,;

}

}

步骤4:编写表userinfo与类Userinfo的对应关系配置文件Userinfo.hbm.xml

编写要点:文件名前缀与对应类名一致;文件名后缀为.hbm.xml(固定);文件存放的位置与对应的类存放在一起(同个包中)。

该文件的常规配置规则说明(详细配置规则可参考hibernate3.jar包中

org/hibernate/hibernate-mapping-3.0.dtd文档)参考代码如下:

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.wendangku.net/doc/7015327260.html,/hibernate-mapping-3.0.dtd">

本例配置文件参考代码如下:

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.wendangku.net/doc/7015327260.html,/hibernate-mapping-3.0.dtd">

length="50" not-null="true" />

【拓展】术语ORM的深入理解——完成步骤3与步骤4的用意何在?步骤3、4的完

成就是ORM(对象关系映射)实现,如图3.1-2所示,实体类Userinfo的成员属性与用户信息表的字段进行对应,通过配置文件实现其对应关系。

图3.1-2 ORM(对象关系映射)实现示意图

步骤5:在hibernate的全局配置文件中配置。

该配置主要有两个内容。第一个是数据库连接信息的配置,第二个是实体类与表的映射

文件(*.hbm.xml)在全局配置文件中注册,基本配置格式如下:

org.hibernate.dialect.MySQLDialect

jdbc:mysql://localhost/testdb?characterEncoding=utf-8

root

数据库登录密码

com.mysql.jdbc.Driver

注:创建Session-factory的其他属性请参考hiberante官方文档(该文档在hibernate 发布包documentation\manual\zh-CN路径下有).。

本例配置的关键代码如下:

org.hibernate.dialect.MySQLDialect

jdbc:mysql://localhost/testdb?characterEncoding=utf-8

root

com.mysql.jdbc.Driver

步骤6:使用hibernate框架代码实现增删查改的功能。

其一般步骤如下:

第一,创建sessionFactory对象(载入全局配置文件):

SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();

第二,执行数据库数据操作的对象session(连接数据库):

Session session=sessionFactory.openSession();

第三,开始一个事务:

session.beginTransaction();

第四,进行增加、删除、修改、查询的操作:

增加操作的代码,使用session对象的save或persist方法完成:

session.persist(实体类对象);//或者session.save(实体类对象);

删除操作(根据主键id删除)的代码:

//使用session的load方法加载条件

实体类实体类对象 = (实体类) session.load(实体类.class,要删除的id值);

//使用session的delete方法执行删除

session.delete(实体类对象);

查询(查询所有)

创建执行hsql语句的对象query

Query query = session.createQuery(“from 实体类名”);

使用query对象的list方法查询,结果为java.util.List对象

List 查询结果对象 = query.list();

查询(根据id查询一条记录)

使用session的get加载查询条件并根据id查询出一个结果对象

实体类实体类对象=(实体类) session.get(实体类.class, 要删除的记录的id值)

修改

使用session的merge或update方法完成

session.merge(实体类对象); //或者session.update(实体类对象);

第五,提交一个事务(查询操作不需要):

session.getTransaction().commit();

第六,关闭数据库:

session.close();

本例使用hibernate框架代码实现增删查改的代码参考如下:

package hibernate;

import java.util.*;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

/**

* 和userinfo相关的业务逻辑

*/

public class UserinfoTest {

// 使用hibernate框架创建sessionFactory对象

SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();

public static void main(String[] args) {

UserinfoTest userinfoTest = new UserinfoTest();

Userinfo userinfo = new Userinfo();

userinfo.setId("3");

userinfo.setName("张三");

//注:需要运行该方法的时候去掉注释增加

// userinfoTest.addUserinfo(userinfo);

// //注:需要运行该方法的时候去掉注释根据用户名查询指定的记录

// userinfoTest.findUserinfoById(userinfo.getId());

// //注:需要运行该方法的时候去掉注释修改

// userinfoTest.update(userinfo);

// //注:需要运行该方法的时候去掉注释查询所有

// userinfoTest.list();

// //注:需要运行该方法的时候去掉注释根据id删除一条记录

userinfoTest.deleteUserinfoById(userinfo.getId());

}

/**

* 增加一个Userinfo

*/

public void addUserinfo(Userinfo userinfo) throws HibernateException { //得到执行数据库数据操作的对象session

Session session=sessionFactory.openSession();

//开始一个事务

session.beginTransaction();

//核心的一句,使用session的persist方法保存

session.persist(userinfo);

session.getTransaction().commit();

session.close();

}

/**

* 根据用户id查询指定的记录

*

* @param username

* @return

*/

public void findUserinfoById(String userid) {

Session session=sessionFactory.openSession();

//使用session的get加载查询条件并根据id查询出一个结果对象

Userinfo tmp=(Userinfo) session.get(Userinfo.class, userid);

if(tmp!=null){

System.out.println("id=" + tmp.getId() + " username=" + tmp.getName());

}

}

/**

* 查询系统中所有的Userinfo,返回的是包含有Userinfo持久对象的Iterator。

*/

public void list() throws HibernateException {

// 编写hibernate sql语句:from userinfo

String queryString = "from Userinfo";

// 创建执行hsql语句的对象query

Session session=sessionFactory.openSession();

Query query = session.createQuery(queryString);

// 使用query对象的list方法执行查询,查询结果为java.util.List对象

List users = query.list();

// 后台输出所有查询结果

// 注释的这段代码与下面for循环的处理逻辑等价,它需要在JRE5.0以上版本才能支持

// for(Userinfo user: users){

// System.out.println("id="+user.getId()+"

username="+user.getName());

// }

for (int i = 0; i < users.size(); i++) {

Userinfo user = (Userinfo) users.get(i);

System.out.println("id=" + user.getId() + " username="

+ user.getName());

}

}

/**

* 修改

*

* @param userinfo

*/

public void update(Userinfo userinfo) {

Session session=sessionFactory.openSession();

session.beginTransaction();

//更新的核心代码:使用session的merge方法完成

session.merge(userinfo);

session.getTransaction().commit();

session.close();

}

/**

* 删除给定ID的userinfo

*/

public void deleteUserinfoById(String id) throws HibernateException { Session session=sessionFactory.openSession();

session.beginTransaction();

// 加载删除条件

//使用session的load方法加载条件

Userinfo userinfo = (Userinfo) session.load(Userinfo.class, id);

// 使用session的delete方法执行删除

session.delete(userinfo);

session.getTransaction().commit();

session.close();

}

}

任务实施(95-110分钟)

任务小结(5分钟)

作业

完成课堂任务

完成实验报告

基于JAVAEE的在线考试系统毕业设计论文

基于JAVAEE的在线考试系统 【内容提要】在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统—JAVA 在线考试管理子系统,它包括试题管理、考生管理、试卷管理、试卷自动审批等功能。本论文主要介绍了对JAVAEE在线考试系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线系统的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发 框架与数据库的连接及数据的备份与还原。 【关键词】:JSP, Servlet, Struts, JAVA,MySQL数据库,B/S模式 On-line examination system base on JAVA

Student : CHAO SUN supervisor: WEI MING XIAO 【ABSTRACT】On-line examination system the aim is carry out examination of have no the paper turn a management, can carry on through Internet net or bureau area net to some examinations of categories, convenient school square test the management of duty, also convenient the examinee is particularly suitable for examinee to distribute widely and not easily concentrated of long range education.I mainly develop the system-JAVAEE of the backstage management's on-line examination management sub- system of system and it includes to try the management, on-line creation of a management, examinee to try book, control the constitution that the student examine and try an examination and approval etc. function.This thesis mainly introduced to manage the analysis, design of the sub- system and all processes of the development to JAVAEE's on-line examination.Make use of ER diagram, procedure flow chart etc. to on-line manage the design process of sub- system to carry on expatiation.The full text is totally divided into the design, key technique of the analysis, system of the development project, need to solve, conclusion five part.Develop the main introduction in the project develops on-line examination system purpose, development project of choice and development frame of the assurance of technique;The need analysis introduced the total need of the on-line examination system and the function request of each mold of system piece;The system design introduced the design, system mold of the instruction thought, database of system design the design of the piece;The key technique introduced at concrete carry out need some techniques for solve, such as development frame of integration technique, development frame with The database link and the backup and revivification of data. Keyword: Servlet ,JSP, JAVA,MySql, Model of B/ S

javaee期末复习要点

第1章概述 中间件(middleware):中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 Java EE平台角色:Java EE产品提供者、应用组件提供者、应用组装者、部署者、系统管理员、工具提供者、系统组件提供者。 EJB:(Enterprise JavaBeans,企业化JavaBeans)是一个Java服务器端组件开发的规范,软件厂商根据它来实现EJB服务器。 EJB容器:是EJB的运行环境。它提供规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。EJB分为会话EJB和实体EJB两种。 CORBA:(Common Object Request Broker Architecture,通用对象请求代理架构)是一个分布式对象体系结构,它独立于平台,也独立于语言。在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。 RMI:(Remote Method Invoke,远程方法调用)是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。 JSP:(Java Server Page,Java服务器页面)是服务器端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。 Servlet:Servlet是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。 JDBC:(Java Database Connectivity,Java数据库连接)是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。 XML:(Extensible Markup Language,扩展标记语言)是一种可以用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据。 JMS:(Java Message Service,Java消息服务)是一种基于Java的技术,因此是平台无关的。它为消息服务定义了通用Java 语言接口,支持最常见的消息传递模型(发布/订阅和点到点)。通过对JMS(Java消息服务)API的访问可实现面向消息的通信。JMS通常用来实现异构系统之间的松散集成。 第2章JNDI:命名和目录服务 JNDI:(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

J2EE期末考试复习题

一、填空题 发布到服务器上的组件除包含自身实现的代码文件外,还要包含一(XML)部署描述文件。 Java EE技术框架可分为三部分:组件技术、(服务技术)、通信技术。 Servlet 最大的用途是通过(动态响应)客户机请求来扩展服务器功能。 表单数据的提交方法有两种,(Post)方法和Get方法。 (Filter)拦截请求和响应,以便查看、提取正在客户机和服务器之间交换数据。 (Listener)实现了Servlet的事件驱动。 JSP页面的脚本元素用来嵌入(java)代码。 JSP动作组件是一些(XML)语法格式的标记,被用来控制Web容器的行为。 JSP供提供九种内置对象,(request)对象代表的是来自客户端的请求。 JSP 标准标记库是一个实现(Web )应用程序中常用功能的定制标记库集。 java.sql.Statement对象代表一条发送到数据库执行的SQL语句。有(三)种Statement 对象。 Servlets可以使用(MIME)类型来向浏览器传送非HTML 文件。 Enterprise Bean 是在(多)台机器上跨几个地址空间运行的组件。 JavaBean 是(一)台机器上同一个地址空间中运行的组件。 在标记描述TLD文件中Required 定义为(true)代表为必须。 二、单项选择题

1、表单数据的提交方法有两种, ()方法使得数据由标准的输入设备读入。 A.Get B. Post C.Read D.Input 2、在表单提交的数据中,如果变量的值有多个,这时应调用( )方法, A. getParameterValues() B. getParameter() C. getParameterNames() D. getAttribute() 3、Servlet的事件驱动由()实现。 A. Filter B. Listener C . Response D. Request 4、标记名称由两部分组成,( )用来区分不同标记库. A. 后缀 B. 前缀 C.JSP D. bean 5、客户机对Servlet的请求和Servlet对客户端的响应,都是通过( )来实现的。 A、EJB B、XML C、API D、Web服务器 6、获取数据库连接的方法是()。 A、Connection() B、getConnection() C、Con D、getContent() 7、常用的接收邮件的协议是() A、SMTP B、POP3 C、IMAP D、MIME 8、()用来获取一个已被创建的JavaBean组件的属性值。 A、 B、 C、 D. 9、要对体内容进行操作的标记,必须继承的接口是()。 A. javax.Servlet.jsp.tagext. Tag B.javax.Servlet.jsp.tagext.BodyTag C. javax.Servlet.jsp. Tag D. 三个都必须 10、core标记库主要的标记有()

2019JavaEE期末复习整理最新版

中文乱码问题的解决方法 一种写一个过滤器。 一种是在servlet里设置中文编码为GB2312. Request.setCharacterEncoding(“GB2312”); 什么是spring Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC (Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。 spring核心组件:Core、Context 和 Beans其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory。Spring 优点 非侵入式设计、方便解耦、简化开发、支持AOP、支持声明式事务处理、方便程序测试、方便集成各种优秀框架、降低Java EE API 的使用难度 IOC 在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是控制反转。 IOC的注入方式 Set注入与构造注入 DI 从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。 Bean Bean的本质就是Java中的类,而Spring中的Bean其实就是对实体类的引用,来生产Java类对象,从而实现生产和管理Bean 。Bean的实例化方式 构造器实例化、静态工厂方式实例化和实例工厂方式实例化 Bean的装配方式 基于XML的装配、基于注解(Annotation)的装配和自动装配 简述MVC设计模式 简述jsp和servlet的关系 jsp就是一种基于servlet的技术,jsp的实现都必须将jsp译成servlet,jsp充分利用了servlet的平台独立性,安全性、可升级性以及强壮性等优点,jsp和servlet是可以相互操作的,jsp页面可以包含从serlet程序程序输出的内容,可以将内容输出到servlet程序。反过来servlet程序也可以包含从jsp页面输出的内容并且可以将内容输出到jsp页面。 SpringMVC是什么 Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异。 SpringMVC特点 是Spring框架的一部分、灵活性强、提供了一个前端控制器DispatcherServlet、自动绑定用户输入、内置了校验器、支持国际化、支持多种视图、基于XML的配置 SpringMVC 的核心组件有哪些?简述其工作原理。 1、DispatcherServlet:中央控制器,把请求给转发到具体的控制类 2、Controller:具体处理请求的控制器 3、HandlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略 4、ModelAndView:服务层返回的数据和视图层的封装类 5、ViewResolver:视图解析器,解析具体的视图 6、Interceptors :拦截器,负责拦截我们定义的请求然后做处理工作 工作原理:request请求到前端控制器拦截,传到映射器处理器,生成具体的处理器对象返回,前端控制器通过返回寻找合适的处理器适配器,处理器适配器调用并执行controller,controller执行后返回模型和视图,组成成ModelAndView组件,通过ViewResolver返回到特定的前台页面。 Mybatis是什么 MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML 或注解来配置和映射原生类型、接口和Java 的POJO(Plain Old Java Objects)为数据库中的记录。 Mybatis一对一实体关系映射 嵌套查询是通过执行另外一条SQL映射语句来返回预期的复杂类型。 嵌套结果是使用嵌套结果映射来处理重复的联合结果的子集。Spring和Mybatis整合 1、创建项目,引入JAR包 2、编写db.properties 3、编写Spring 配置文件applicationContext.xml 4、编写MyBatis配置文件mybatis-config.xml 5、引入log4j.properties 网上订餐系统 三、(1)软件结构 (2)相关的类和视图(类名及功能以及主要属性与方法、视图名及功能) User:model 视图:register.jsp、delete.jsp、get.jsp、update.jsp、success.jsp (3)service层和dao 层的相关类(类名及功能以及主要属性与

2016-2017-1-JavaEE编程技术_期末大作业及其要求

《Java EE编程技术》课程题目与要求 说明: 本学期,该课程为考试改革课程,不参加统一的考试,采用技能测试的方式评价。 要求学生能够应用该课程中所介绍的思想、原理、技术方法,解决实际应用问题的能力。 设计题目(平时我们做过的题目) 针对下面给出的“网络书城系统”的需求和说明,完成系统的开发与设计。 网络书城的主要功能就是让用户能够足不出户就可以购买到自已想要的书籍,所以网络书城系统主要提供如下功能: (1)用户能够使用本网站完成图书的浏览、查询和购买。 (2)普通用户只能浏览图书信息,浏览分为3种方式:按类别浏览、按条件浏览、查询图书。 (3)普通用户通过注册成为注册用户,注册后的用户可以登录,登录后可以修改注册资料。(4)注册用户登录后可以进行在线图书购买,购买的图书存放在购物车中,可以对购物车中的商品数量进行修改、删除,调整好购物车中内容后,可以把该内容保存到订单中,在保存订单的时候要求用户填写送货地址和联系方式。订单提交后用户可以开始一次新的购物过程。 (5)对于后台系统,要求可以进行商品目录的维护,商品的图片可以上传到服务器,特价商品维护,订单可以查询详细信息,订单确认和订单发送。 设计要求 (1)利用Struts2、Hibernate、Spring技术。 提示:若只采用Struts2技术设计,一般给中等; 若采用Struts2+Hibernate技术整合实现,一般给良好(也可能为优) 若采用Struts2+Hibernate+Hibernate技术整合实现,一般给优秀。 若三种方式都提供,但第3种不完善,也可以给优秀。 (2)给出系统的简单的分析与设计(主要包括:你的设计思想,功能划分,体系结构、类等有关的包结构,设计中遇到的问题等) (3)提供设计文档和源代码。 本课程成绩的确定 该课程有3个内容确定我们的最后课程成绩: (1)上面的设计题目,50分。 (2)综合测试20分 (3)平时考勤与作业30分

期末

1.以下对于注解类Annotation说法正确的是: A.定义Annotation类型的关键字是class B.定义Annotation类型的关键字是Annotation C.定义Annotation类型的关键字是interface D.定义Annotation类型的关键字是@interface 2.下列流中哪个不属于字符流? A.InputStreamReader B.BufferedReader C.FilterReader D.FileInputStream (字节流) 3.哪个关键字可以对对象加互斥锁?(线程同步) A.transient(变量修饰符) B.serialize C.synchronized D.static 4.对于已经被定义过可能抛出异常的语句,在编程时 必须使用try/catch语句处理异常,或用throw将其抛出。 5.下列对多态性的描述中,错误的是 A.Java语言允许方法重载与方法覆盖 B.Java语言允许运算符重载 C.Java语言允许变量覆盖 D.多态性提高了程序的抽象性和简洁性 6.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型? A.OutputStream B.File

C.InputStream D.BufferedOutputStream 7.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A.static void method ( ) B.public void method ( ) C.final void method( ) D.abstract void method( ) 8.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A..java B..class C..html D..exe 9.在Java语言中,整型常数123占用的存储字节数是() A.1 B.2 C.4 D.8 10.JAVA中char类型系统分配( )字节的内存空间 A.1 B.2 C.4 D.根据不同系统分配11.下面哪个选项不能用作变量名的首字符?() A.字母B.下划线C.数字D.美元符($)13.关键字()表明一个对象或变量在初始化后不能修改。 A.extends B.final C.this D.finalizer 14.以下关于抽象类和接口的说法错误的是() A.抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口。 B.在抽象类中可以没有抽象方法。

java 试题

一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言B、汇编语言C、高级语言 3、下面哪种类型的文件可以在Java虚拟机中运行?D D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具B、Java解释器C、Java编译器 5、5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre; 三、问答题 1、简述Java的特点。面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、2、简述JRE与JDK的区别JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 第二章 、Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double 双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true 和false两个值,分别占一个字节。 2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0表达是会发生被0除异常,因为x / y的表达式执行了。而boolean b = x < y & x / 2 > 0是不会出现这种异常的,因为x < y为false,表达式x / y不会执行。 3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法 冒泡排序: public class Test03 { public static void main(String[] args) { int[] arr = { 25, 24, 12, 76, 101, 96, 28 }; for (int i = 0; i < arr.length - 1; i++) { // 定义内层循环for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 比较相邻元素// 下面的三行代码用于交换两个元素int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); // 打印元素和空格} }

学生成绩管理系统JAVAEE实现

期末报告 课程名称:和学习指南 学院:信息工程与自动化学院 _ 学生姓名: _ 学号: 专业:物联网工程 年级: 2012级 指导老师:

一、实验内容 1.1题目:基于设计、实现一个课程管理应用程序,该程序 实现如下功能: (1)、有登录页面,登录用帐号、密码保存在数据库中,合法登录后进入学习成绩管理页面。否则给出错误提示。 (2)、在学习成绩管理页面可添加一门课程的成绩,添加内容包括:课程编号、课程名称、学生姓名、课程成绩等内容。添加后信息保存在数据库中。 (3)、可根据课程名称和学生姓名进行查询。 (4)、可删除和修改课程信息的内容。(即删除一条课程记录或修改课程记录中的某一字段)。 二、需求分析 学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息。教师可以通过成绩管理系统查阅学生成绩信息,教师信息,等相关操作。系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,等相关操作。 本次的实验的功能相对于一个完整的系统来说算是比较简单的,功能并不完善,角色也只有一种,但是做一个管理系统需要用到的技术却是基本都涵盖了,数据库与项目的连接、对数据库的更删查改操作、语法标签、、等知识的应用,本实验需要两个数据库表,一个是存用户账号和密码的表,一个是保存学生的信息的表,总之通过本实验,中本学期的的知识基本都会得到应用。虽然说功能并不完整,但是认真的做完这个项目还是要花很多心思的。 三、设计思路及流程 3.1设计思路

3.1.1登录与注册部分 用户需要登录才可以进入学生成绩管理页面,在登陆界面有注册功能,如果没有用户,可以注册,注册以后就可以用它来登陆,所有注册的账号密码都会保存在数据库的表中,如果登陆的时候输入的账号、密码和数据库中已有账号密码一致,则为合法登录,就可以进入学习成绩管理初始页面,否则出现错误提示,给个链接返回登陆界面,需重新确认输入。实现登陆与注册功能用到了、这两个、这两个和一个实现数据库操作的;登陆成功进入。 3.1.2登陆成功之后展示界面 登陆成功以后显示的是数据库当前所有的学生信息,以列表形式展示出来,这是一个完成的,该用到了标签的方法,用来遍历显示数据库所有信息。在页面左上角有一个按钮,这是一个事件,它的作用是转让用户到有增删查改的链接的。 3.1.3添加部分 点击上面的操作按钮后进入操作选择页面,然后点击“增加”按钮既可以进入增加信息的界面,该界面也有展示数据库当前信息的功能,进来以后就可以看到数据库当前信息和实现增加课程号,课程名,学生名、成绩的功能。增加完毕以后有个提交,这会提交到对应,然后调用,把增加的数据保存到数据库,而且增加以后就会在上面的“当前数据库信息”下面看到刚刚增加的信息。该部分用到了、、、四个文件,在增加信息的下面有个超链接,该超链接用于返回初始页。 3.1.4删除部分 在进入删除的界面之前跟上面的增加部分一样,进入删除页面以后在信息展示的下面会提示“请输入需要删除信息的学生姓名”,也就是说只能看着上面的信息展示来通过输入学生姓名删除数据库对应的记录,调用过程跟上面的增加差不多,该部分用到了、、、来完成。 3.1.5修改部分 这部分跟上面的模块做法依旧很相似,最大的不同是只是对数据库的操作不一样,本模块有一个缺点,由于开始做项目之气前,在设计数据库的时候没有想

最新苏州科技学院JAVAEE期末考试试卷(陆卫忠版)

试题类型: 一、单项选择题(每小题2分,共20分) 1.以下关于Servlet程序的叙述中,错误的是(ABD)。 A)HttpServlet是一个抽象类,继承它的子类要强制实现init()方法,service()方法、destroy()三个方法,因为这三个方法都是抽象类中的抽象方法。 B)HttpServlet类中,init()方法的开象是一个ServletConfig对象,它相当于JSP中的application对象。 C)HttpServlet类中,doXXX()方法的两个形参依次为HttpServletResponse、HttpServletRequest对象。 D)如果多个用户请求同时访问一个Servlet程序,则init()方法、service()方法、destroy()三个方法会被多个线程运行。 2.以下关于过滤器的叙述中,正确的是(ACD)。 A)客户端请求激活的过滤器链是web应用中部署的过滤器链的了集。 B)请求访问一个目标资源时,目标资源的输出信息直接付给客户端,不再经过过滤器的处理。 C)过滤器中,业务逻辑代码是在doFilter()方法内实现的。 D)过滤器是一种特殊的Servlet程序。 3.JSP页面的Servlet程序中,各主要方法的执行先后顺序为(C)单选 A)getDependants( )、jspInit( )、jspService( )、jspDestroy( ) B)jspService( )、jspInvoke( )、_jspDestroy( ) C)jspInit( )、_jspService( )、jspDestroy( ) D)jspInit( )、jspService( )、jspDestroy( ) E)_jspService( ) 4.要将request转发给下一个JSP页面,可行的方案是(BCD)。 A)直接使用pageContext.forward() B)通过application.getRequestDispatcher()获得目标资源的RequestDispatcher对象,在执行对象的forward()方法 C)使用 D)直接使用response.sendRedirect() 5.以下哪些些关系属于Web组件的关联关系(ACD) A)请求重定向B)提交表单数据C)请求转发D包含 6.关于在web.xml 文件中配置欢迎文件清单说法正确的是(ACDE)。 A)使用元素配置欢迎清单B)只能配置一个欢迎文件 C)可以配置多个欢迎文件D)Web容器调用会依次寻找欢迎文件,直到找到为止 E)如果web容器找不到欢迎文件则报404错误。 7.下列对元素属性描述正确的有(ABCD)。 A)ClassName和action元素对应的配置元素B)forward转发的URL路径 C)Input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL。 D)name:指定和Action关联的Action FormBean的名字。 E)path:指定访问Action的路径,以“/”开头,无扩展名。 8.根据UML语言,类之间存在哪几种关系(ACD)。 A)关联关系B)累积关系C)依赖关系D)继承关系 9.执行下面的SQL查询,关于返回值的说法,正确的是(B)。(单选) Select https://www.wendangku.net/doc/7015327260.html,ername,https://www.wendangku.net/doc/7015327260.html,erid from https://www.wendangku.net/doc/7015327260.html,er u Where u is not null A)语法错误,不能执行B)返回一个类型为List的实例 C)返回一个数组D)当返回结果只有一条时,返回一个数组 10.一般情况下,数据模型与对象模型之间有那些配置关系(ABC)。 A)表对应类B)记录对应对象 C)表的字段对应类的属性D)表之间的参考关系对应类之间的依赖关系

JAVAEE试题(含答案)

JAVA EE期末考试复习材料 一、选择题: 1以下哪个HIbernate主键生成策略是实现主键按数值顺序递增的?(A) A) increment B)Identity C)sequence D)native 2、在JSP中,Page指令的(B)属性用来引入需要的包和类。 A)Exends B)import C)language D)contentType 3、从以下哪个选项中可以获得Servlet的初始参数(C) A)Servlet B)ServletContext C)ServletConfig D)GenericServlet 4、以下关于HIbernate说法正确的是(A) A)Hibernate是ORM的一种实现方式。 B)Hibernate不要JDBC的支持。 C)属于控制层 D)对象关系映射,让对象同数据库表产生关系。 5、下面关于OPM的说法不正确的是(C) 持久化是将程序中数据在瞬时状态和持久状态间转换的机制。 瞬时状态是指程序数据保存在内存中,程序退出时,数据就不存在了。把关系数据库中的数据读出来不属于持久化。 程序数据直接保存成文本文件属于持久化。 6、下面关于SessionFactory的说法正确的是(B) A)SessionFactory是轻量级的,可以随意创建和销毁。 B)SessionFactory是重量级的接口,不可以随意创建和销毁。 C)SessionFactory是重量级的类,不可以随意创建和销毁。 D)SessionFactory是类。 7、下面关于Hibernate中load和get的方法说法正确的是(D) A)两个方法是一样的,没有任何区别。 B)两个方法是不一样的,get先找缓存,再找数据库。 C)两个方法是不一样的,load每次都会找数据库。 D)以上说法都不对。

Java期末复习

第一章 1.面向过程和面向对象程序设计语言的区别 2.编译执行和解释执行语言的区别 3.java的各个版本,javase javaee javame 4.什么是java虚拟机?工作原理是什么?jdk和jre的区别? 5.各个命令的含义:javac.exe java.exe Javadoc.exe jar.exe(考试不要求) 6.path和classpath的区别(考试不要求) 第二章 1.标识符的命名规则 2.变量使用三部曲:声明,赋值,使用 3.如何定义常量? 4.基本数据类型(8种),占用的空间大小,给定一个常数,默认的类型,浮点数的两种表 示方法 5.基本数据类型的转换,向上和向下 6.参数可变的方法定义(考试不要求) 第三章类和对象 (一)类和对象的基本概念***** 1.面向对象语言的基本特点 2.什么是类和对象,什么是封装性 3.java中所有对象都是引用类型。(内存分析) 4.对象的创建和使用(new,.,) 5.JVM内存分配,堆、栈、数据、代码(考试不要求) 6.java对象生命周期,什么是gc?工作原理?好处? 7.构造函数作用,定义要求。默认构造方法和对类成员的初始化。构造和初始化顺序(4 步)。 8.对象变量的传递,值传递和引用传递 9.什么是方法重载?要求是什么?和方法重写有什么区别? 10.this引用的作用 11.静态数据成员和静态方法成员。静态成员和普通成员的互相访问 (二)包的概念 12.什么是包?如何定义包?命名规则是什么?如何使用包?哪些常用包?哪个包不显式 导入就可使用? 13.使用jar打包(考试不要求) (三)继承的概念***** 14.什么是继承?带来的好处是什么? 15.如何实现继承?子类成员和父类成员有哪三种关系?新增,重用,重写 16.什么是重写?有哪些语法要求? 17.super关键字的作用什么? 18.子类的构造函数的执行过程。能否继承父类?如何显式调用父类构造函数? 19.类成员的可访问性。(4个关键字)

JavaEE期末习题集

选择题 第一章 1.JavaEE架构中各层的组件分布说明错误的是? A.Application Client是客户层中包含的组件 B.Applets 是Web层中包含的组件 C.Servlet,JSP是Web层中包含的组件 D.EnterPrise JavaBeans 放置在业务层 2.以下有关组件理解正确的是? A.组件是指一种包装过的软件对象,它们拥有标准化的接口,而且可在多个应用程序中重用。 B.组件遵循一系列命名的规范,使用者能够根据这些规范调用不同的组件C.JavaBean就是一种组件,可以在多个应用程序中重用。 D.JavaBean、Servlet和Applet组件都是服务器端的组件。 3.自定义的Servlet应重载HttpServlet类的___方法以响应客户发出的POST请 求方法。 A.POST B. onPost C. doPost D. ResponsePost 答案: 4.一个实例运行在本地计算机的端口8080处。Web服务器实例中部署有一名为 SimpleServlet的Web应用,其部署描述符文件片断如下: PDFServlet com.servlet.PDFServlet PDFServlet /pdfshow

JavaEE测试题带答案

1.在Java中的变量命名规范中,下面命名正确两项的是( ) (选择两项) a)¥money b)$int c)int d)*i 2.绘制流程图时,下面()代表判断和分支。(选择一项) a)矩形 b)椭圆 c)菱形 d)圆形 3.在Java环境中给出如下代码,编译运行的输出结果是()。 public class Test{ intx=1; inty=2; public int cal(intx,inty){ int z=x+y; return z; } public static void main(String args[]){ Test d = newTest(); z=d.cal(d.x,d.y); System.out.println(z); } }(选择一项) A) 3 B) 0

C) 编译错误 D) 编译通过,但运行时出错 4.下列选项中关于枚举说法错误的是()。(选择一项) a)枚举类型是从JavaSE5.0开始引入的一种新类型 b)枚举类型使用关键字enum定义 c)枚举是指由一组固定的常量组成的类型 d)在枚举中,除了可以定义枚举常量以外不能出现其他成员 5. 在Java中,以下关于多态说法错误的是()。(选择一项) a)实现多态的一个前提是要有继承关系 b)将一个父类的引用指向一个子类对象,要进行强制类型转换 c)父类引用变量指向其子类对象是实现多态的一个条件 d)使用多态可以提高代码的可扩展性和可维护性 6. 在Java中,如下代码段的输出结果为()。 Strings="hello"; s.substring(2,4); System.out.println(s.length());(选择一项) a) 5 b) 2 c) 4 d) 3 7. 在Java中,如下代码的输出结果是()。 public static void main(String[]args){ char c[]={'1','2','3','4'};

JavaEE练习题(附答案)

一、名词解释(共5小题每题3分,共15分) 1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性; 2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性; 3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制; 4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式; 5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码; 6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰; 7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。 8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的

情况下给程序动态统一添加功能的一种技术; 9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起; 10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。 二、填空(共10空,每空2分,共20分) 1、Spring从容器中获取bean对象可以分别通过(BeanFactory)接口和(ApplicationContext)接口来实现。 2、Struts2、Hibernate缺省的核心配置文件名分别为(struts.xml)和(hibernate.cfg.xml)。 3、OGNL上下文有一个bar对象,它不是根对象,bar有getvalue属性,则利用OGNL 表达式求bar对象的getvalue属性值为(#bar.value)。 4、使用Hibernate的七个步骤是:创建Configuration、创建SessionFactory、(开启一次会话)、(开启一个事务)、持久化操作、(提交事务)和(释放资源)。 5、在Hibernate项目中,如实体类为User,则对应的配置文件名为(User.hbm.xml)。 6、Struts2的action类定义时传值方式可以采取(字段传值)、(模型传值)

相关文档
相关文档 最新文档