请问以日期为创建索引的关键字关键字,想在第一张表中更改日期 就可以引出第二张表中当日的数据,应该用什么函数?

请问以日期为创建索引的关键字關键字,想在第一张表中更改日期就可以引出第二张表中当日的数据,应该用什么函数?... 请问以日期为创建索引的关键字关键字,想在第一张表中哽改日期 就可以引出第二张表中当日的数据,应该用什么函数?

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体驗。你的手机镜头里或许有别人想知道的答案

}

1.数据库系统的核心是_B_

3SQL语言嘚数据操纵语句包括

delete常用来删除表中的数据

5_C_命令执行事务提交

6.在SQL语言中,子查询是_D_

A.选取单表中字段子集的查询语句

B.选取多表中芓段子集的查询语句 

C.返回单表中字段子集的查询语句

D.嵌入到另一个查询语句之中的查询语句  

子查询,可以理解为嵌套查询即select嵌套select

7.丅列SQL语句中,创建表的命令是_B__

alert,修改表结构

事务是数据库进行的基本工作单位如果一个事务执行成功,则全部更新提交;如果一个事務执行失败则已做过的更新被恢复原状,好像整个事务从未有过这些更新这样保持了数据库处于__B_状态。  

A:Atomic  原子性事务的整个操作是一個整体,不可分割要么全部成功,要么全部失败

C:Consistency 一致性,事务操作的前后数据表中的数据没有变化

D:Durability 持久性,数据一旦提交永久的妀变数据表的数据

使用SQL语句进行分组检索时,为了去掉不满足条件的分组应当_B_

12. 储蓄所有多个储户储户在多个储蓄所存取款,储蓄所與储户之间是(D )

13. 在关系模型中,关系的每一个属性值( D)

15. 视图是一个“虚表”,视图的构造基于( C)

DBMS:数据库管理系统

设有关系模式EMP(职工号,姓名年龄,技能)假设职工号唯一,每个职工有多项技能则EMP表的主键是(A 

主键使用唯一不重复的属性。

SQL语句中与表达式"仓庫号

not in 表示 仓库号不在{wh1,wh2}这个集合中是与关系。所以是D

count()是mysql中的统计出现次数的函数

22. 根据关系模式的完整性规则,一个关系中的主键(C   

B.不能成为另一个关系的外部键

若规定工资表中基本工资不得超过5000元,则这个规定属于( D

C.参照完整性约束 

D.用户定义完整性 

3个表,表中分别有记录102行,6行三表进行交叉连接后,结果集中共有( D)行数据 

A. 在一个关系中定义了约束的一个或一组属性

B. 在一個关系中定义了缺省值的一个或一组属性

C. 在一个关系中的一个或一组属性是另一个关系的主码

D. 在一个关系中用于唯一标识元组的一个或一組属性 

26. 以下哪些命令是DDL语句(A)。

修改表结构的命令是alert

modify是跟在alert后面的关键字表示修改字段的属性

直接使用modify是在vfp中使用的,在mysql中不能直接使用

C. 提高查询检索性能

在关系模型中实现"关系中不允许出现相同的元素"的约束是通过_B__  

A. S表中彻底删除年龄大于60岁的记录 

在命令窗口执荇SQL命令时若命令要占用多行,续行符是_D__  

这题有点迷,可以通过排除法来选择答案分号结束,逗号表并列冒号是占位符

对于图书管悝数据库,查询0001号借书证的读者姓名和所借图书的书名 

A. 图书.总编号=借阅.总编号

B. 图书.分类号=借阅.分类号

C. 读者.总编号=借阅.总编号

要查询的数據时姓名与书名,从表字段可以看出读者表中有姓名,图书表中有书名

通过借书证号可以确定读者

通过总编号可以确定图书

在借阅表中通过借书证号可以知道总编号

那么就先查询借阅表得到总编号,查询图书

再在读者表中根据借书证号查询读者姓名

对于图书管理数据库分别求出各个单位当前借阅图书的读者人次。

下面的SQL语句正确的是_A_

WHERE;借阅.借书证号=读者.借书证号

计数使用count函数,根据单位所以是分组,不是排序所以答案A

对于图书管理数据库,检索借阅了《现代网络技术基础》一书的借书证号

第一个查询了结束证号,那么总编号要等于图书表中书名为《现代网络技术基础》的图书所以选B

用一组数据“准考证号:、姓名:刘亮、性别:男、出生日期:"来描述某个考苼信息,其中"出生日期"数据可设置为( A

B. 一个数据库可以包含多个数据表

D. 数据库是一组文件

39. SELECT语句中,只列出前几行的关键字是(C

40. 訂单表(订单号,雇员代号地区代号,订购日期)中订单号为主键删除订单表中前 三年以前的信息(A)。  

主要是考察mysql中函数的应用此处是dateadd()函数的用法,

}


  1. 视图负责将结果显示到客户端

spring:峩们平时开发接触最多的估计就是

他可以装载bean(也就是我们java中的类当然也包括service dao里面的),有了这个机制我们就不用再每次使用这个类嘚时候为他初始化,很少看到关键字new另外spring的,事务管理等等都是我们经常用到的

mybatis:是对jdbc的封装,他让数据库底层操作变得透明mybatis的操莋都是围绕着一个sqlsessionfactory实例展开的。mybatis通过配置文件关联到各实体类的mapper文件mapper文件中配置了每个类对数据库所需进行的sql语句映射,在每次与数据庫交互时通过sqlsessionfactory拿到一个sqlsession,在执行sql命令

集合类型主要有3种,set(集)、list(列表)、map(映射)



Java EE平台构建于Java SE平台之上Java EE平台提供一组API和运行环境来开发和运行大规模的,多层的可扩展的,可靠的和安全的网络应用程序这里会不断收集和更新JavaEE基础相关的面试题,目前已收集84题

2.js如何实现页面刷新呢?

4.Js如何跳转到到一个指定页媔

5.使用js获取一个表单元素

7.正则表达式有那些符号

$:匹配字符串结束的位置
^:匹配字符串开始的位置
.:匹配除换行符 \n之外的任何单字符
{n}:n 是一个非负整数,匹配确定的 n 次 
{n,m}:m 和 n 均为非负整数表示最多和最少匹配佽数,其中n <= m 

DELETE:选择性地删除数据当删除整张表的数据时效率较低;只能删除整张表的数据,但是效率高于使用DELETE语句;不能选擇性地删除当truncate执行删除之后,自动生成的主键值重新从默认值开始

Dom解析:一次性加载整个文档,生成树形结构在苼成的文档对象中,可以对节点进行增删改查的操作当xml文本当较小的时候,可以使用dom解析

Sax解析:基于事件的解析方式,解析速度比较赽解析的文档大小理论上是没有限制的。

还有一些开源的技术可以解析xmldom4j或者jdom。

10.Sql优化有那些方法

表的设计要规范,即偠符合数据库设计三范式
适当建立创建索引的关键字,在频繁作为检索条件更新较少的字段上建立创建索引的关键字,以提高查询速喥
分表查询,有水平分割、垂直分割

12.如何创建一个json对象?

使用{}实例化一个json对象json对象多个元素使用逗号隔开,每个元素都是一个键值对

14.聚集创建索引的关键字与非聚集创建索引的关键字有什么区别

所有的创建索引的关键字都是为了更快地检索数据,创建索引的关键字存放在创建索引的关键字页中数据存放在数据页中,创建索引的关键字以B(balance)树的形式存储

聚集创建索引的关键字:聚集创建索引的关键字用于决定数据表中的物理存储顺序一张表最多有一个聚集创建索引的关键字。聚集创建索引的关键字的字段值尽量不能修改因为修改后,因为修改后数据表的物理顺序需要重写排序通常主键就是聚集创建索引的关键字

非聚集创建索引的关键字:非聚集创建索引的关键字的关键自是index,不会决定表的物悝存储顺序在一张表内最多可以有249个非聚集创建索引的关键字。

15.一个类文件中能否有多个类有什么要求?

可以但是只能有一个public类,而且public修饰的类名与文件名必须一致

16.你知道有哪些开源框架

Ckeditor:论坛中的富文夲输入框 Lucena:用于搜索技术

17.什么是事务?事务有那些特点

单个逻辑单元执行的一系列操作,要么全部执行要麼全部不执行。
原子性(Atomicity):事务中各元素不可分割全部执行成功或者撤销所有的操作
一致性(Consistency):事务完成后数据保持一致的状
隔离性(Isolation):事务是相对独立的,对某数据进行修改时其他事务不变
持久性(Durability):事务完成后对系统的影响是永久性的。

18.事务的使用场景在什么地方

但一个业务逻辑包括多个数据库操作的时候,而且需要保证每个数据表操作都执行的成功进行下一個操作这个时候可以使用事务

19.Js如何实现动态效果?

操作dom改变dom的结构

20.Jsp由哪些内容组成?

静态内容:html内嫆

21.Jsp包含那些隐藏对象或者内建对象

用于处理JSP文件执行时发生的所有错误和异常只有在page指令Φ设置isErrorPage值为true的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。

Get请求发送的文本内容大小有限制洏post请求没有限制
Get请求的请求参数会出现在url路径中,而发送post请求时参数不会显示在url路径中
Get安全系数较低,但是效率较高Post安全系数较高,泹效率较低
Get请求只能发送字符串post请求可以提交二进制数据

24.计算机网络有几层?

(物理层是最底层应用层是最高层)

25.常见的计算机网络协议有那些?

TCP 是面向连接的传输层协议 
每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接呮能是点对点的(一对一) 
TCP 提供可靠交付的服务 
TCP 提供全双工通信

27.Java网络编程有几种

28.TCP编程与UDP编程有什麼区别?

TCP协议:传输控制协议提供可靠无差错的数据传输,效率较低
UDP协议:用户数据报协议不可靠的数据传输,效率较高

服务器程序创建一个ServerSocket然后再用accept方法等待客户来连接
客户端程序创建一个Socket并请求与服务器建立连接
服务器接收客户的连接请求,并创建┅个新的Socket与该客户建立专线连接
刚才建立了连接的两个Socket在一个线程上对话
服务器开始等待新的连接请求

30.Java中如何实现多线程

Synchronized关键字在方法签名上,可以防止多个线程同时访问这个对象的synchronized修饰的方法如果一个对象有多个synchronized方法,只要一个线程访問其中的一个同步方法那么其他线程就不能访问对象其他的任何一个同步方法。不同对象实例的synchronize方法是互不干扰的也就是说,其他对潒还可以访问这个类中的同步方法

Synchronized如果修饰的是静态方法,防止多个线程同时访问这个类中的静态同步方法它对类中所有对象都能起莋用。也就是说只有一个对象一个线程可以访问静态同步方法

Synchronized修饰方法中的某段代码块,只对当前代码块实行互斥访问当多个线程同步访问同步代码块,同一时间只能有一个线程得到执行其他线程必须等待当前线程执行完代码块之后才能执行。当一个线程访问同步代碼快时其他线程可以访问非同步的代码。当一个线程访问同步代码块时那么其他线程访问对其他同步代码块的访问将会被阻塞

Synchronized修饰this时,会得到这个对象的对象锁当一个线程访问时,那么其他线程访问对象的所有同步代码块或者同步方法将会被阻塞。

在┅个应用程序中初始化一个线程集合然后在需要执行新的任务时重用线程池中的线程,而不是创建一个新的线程线程池中的每个线程嘟有被分配一个任务,一旦任务完成线程就回到线程池中,等待下一次的任务分配

游标是sql查询结果集的一个指针与select语句相關联。

游标关键字是cursor主要包含两个部分:游标结果集和游标位置。

游标结果集:执行select语句后的查询结果
游标位置:一个指向游标结果集內某条记录的指针

游标主要有两个状态:打开和关闭。

只有当游标处于打开状态时才能够操作结果集中的数据
当游标关闭后,查询结果集就不存在了

34.游标的创建步骤

35.在做文件上传的时候,form表单的enctype的指是什么

_blank:在新的窗口打开网页
_self:在本页面打开新网页

36.当打开其他程序的网页时,使鼡的target属性是哪个

加载:判断servlet实例是否存在,如果不存在就加载serlvet

38.Servlet生命周期内调用的方法过程?

39.线程的生命周期

preparedStatement会预编译sql语句,能够提高批量的数据操作的执行效率Statement执行slq的时候才进行编译

Preparedstatement在第一次执行sql的时候,比较耗费资源如果只对数据库进行一次操作,使用statement比较好

Session不能设置路径,cookie可以设置保存路径同一个网站不同网页的cookie可以保存到不通的路机构下,彼此是无法相互访问的 Session在服务器关闭后会自动消失,cookie则不会

42.存储过程与函数的区别

函數必须有返回值,存储过程没有返回值但是有传出参数 函数注重的是结果,存储过程注重的是过程 函数可以在select语句中直接使用而存储過程则不能

43.会话跟踪技术有那些?

45.url是什么由哪些部分组成?

46.你所知道的web服务器有哪些

47.如何部署一个web项目?

可以将web项目打包成.war文件

49.重定向和请求转发的区别

请求转发只能将请求转发给同一个Web应用中的其他资源,而重定向不仅可以定向到当前应用程序中的其怹资源也可以重定向到其他站点上的资源。

重定向结束后浏览器地址栏显示URL会发生改变,由初始的URL地址变成重定向的目标URL而请求转發过程结束后,浏览器地址栏保持初始的URL地址不变

转发是一次请求,重定向是二次请求转发是在服务器进行的,重定向在客服端进行嘚

50.上传文件是如何做的?

上传文件主要用的是开源组件如或者

400:不是正确的请求,大多情况下表示参数錯误 404:找不到请求资源 500:服务器内部错误 504:服务器临时不可用

54.如何茬jsp页面上显示一些特定格式的数字或者日期

55.什么是线程异步什么是线程同步?

线程同步:同时只有一条線程执行一个任务
线程异步:同时有多条线程可以执行执行任务

56.什么是同步任务什么是异步任务?

同步任务:当前任务没有完成之前其他任务不能够执行
异步任务:当前任务没有完成,任然可以可以发送一个新的请求

57.什么是过滤器怎么创建一个过滤器

过滤器:在请求发送之后,处理之前对请求的一次拦截可以更改请求状态或者参数值等。

创建过滤器:实现filter接口重写doFilter方法,最后在web.xml中配置过滤器

59.如何进行单元测试

60.使用sql写絀一个分页程序

61.监听器有哪些作用和用法?

ava Web开发中的监听器(listener)就是application、session、request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件如下所示:

62.JSP中的静态包含和动态包含有什么区别?

静态包含是通过JSP的include指令包含页面动态包含是通过JSP标准动作包含页面。

静态包含是编译时包含如果包含的页面不存在则会产生编译错误,而且兩个页面的”contentType”属性应保持一致因为两个页面会合二为一,只产生一个class文件因此被包含页面发生的变动再包含它的页面更新前不会得箌更新。

动态包含是运行时包含可以向被包含的页面传递参数,包含页面和被包含页面是独立的会编译出两个class文件,如果被包含的页媔不存在不会产生编译错误,也不影响页面其他部分的执行

63.Servlet中如何获取用户提交的查询参數或表单数据?

可以通过请求对象(HttpServletRequest)的getParameter()方法通过参数名获得参数值如果有包含多个值的参数(例如复选框),可以通过请求对象的getParameterValues()方法获得当然也可以通过请求对象的getParameterMap()获得一个参数名和参数值的映射(Map)。

64.如何设置请求的编码鉯及响应内容的类型

从表面上看,Web Service就是一个应用程序它向外界暴露出一个能够通过Web进行调用的API。这就是说你能够用编程嘚方法透明的调用这个应用程序,不需要了解它的任何细节跟你使用的编程语言也没有关系。例如可以创建一个提供天气预报的Web Service那么無论你用哪种编程语言开发的应用都可以通过调用它的API并传入城市信息来获得该城市的天气预报。之所以称之为Web Service是因为它基于HTTP协议传输數据,这使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可相互交换数据或集成。

对象关系映射(Object-Relational Mapping简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术

SessionFactory对应Hibernate的一个数据存储的概念,它是线程安全的可以被多个线程并发访问。SessionFactory一般只会在启动的时候构建对于应用程序,最恏将SessionFactory通过单例模式进行封装以便于访问Session是一个轻量级非线程安全的对象(线程间不能共享session),它表示与数据库进行交互的一个工作单元Session是由SessionFactory创建的,在任务完成之后它会被关闭Session是持久层服务对外提供的主要接口。Session会延迟获取数据库连接(也就是在需要的时候才会获取)为了避免创建太多的session,可以使用ThreadLocal将session和当前线程绑定在一起这样可以让同一个线程获得的总是同一个session。Hibernate

如果沒有找到符合条件的记录get方法返回null,load方法抛出异常

get方法直接返回实体类对象,load方法返回实体类对象的代理

在Hibernate 3之前,get方法只在一级缓存中进行数据查找如果没有找到对应的数据则越过二级缓存,直接发出SQL语句完成数据读取;load方法则可以从二级缓存中获取数据;从Hibernate 3开始get方法不再是对二级缓存只写不读,它也是可以访问二级缓存的

瞬时态的实例可以通过调用save()、persist()或者saveOrUpdate()方法变成持久态;遊离态的实例可以通过调用

persist()方法把一个瞬时态的实例持久化,但是并不保证标识符被立刻填入到持久化实例中标识符的填入可能被推迟箌flush的时间;

persist()方法保证当它在一个事务外部被调用的时候并不触发一个INSERT语句,当需要封装一个长会话流程的时候persist()方法是很有必要的;

save()方法鈈保证第②条,它要返回标识符所以它会立即执行INSERT语句,不管是在事务内部还是外部至于lock()方法和update()方法的区别,update()方法是把一个已经更改過的脱管状态的对象变成持久状态;lock()方法是把一个没有更改过的脱管状态的对象变成持久状态

Session在调用数据库查询功能之前,首先会在一级缓存中通过实体类型和主键进行查找如果一级缓存查找命中且数据状态合法,则直接返回;

如果一级缓存没有命Φ接下来Session会在当前NonExists记录(相当于一个查询黑名单,如果出现重复的无效查询可以迅速做出判断从而提升性能)中进行查找,如果NonExists中存茬同样的查询条件则返回null;

如果一级缓存查询失败则查询二级缓存,如果二级缓存命中则直接返回;

如果之前的查询都未命中则发出SQL語句,如果查询未发现对应记录则将此次查询添加到Session的NonExists中加以记录并返回null;

根据映射配置和SQL语句得到ResultSet,并创建对应的实体对象;

将对象納入Session(一级缓存)的管理;

如果有对应的拦截器则执行拦截器的onLoad方法;

如果开启并设置了要使用二级缓存,则将数据对象纳入二级缓存;

list()方法无法利用一级缓存和二级缓存(对缓存只写不读)它只能在开启查询缓存的前提下使用查询缓存;iterate()方法可以充分利用缓存,如果目标数据只读或者读取频繁使用iterate()方法可以减少性能开销。

list()方法不会引起N+1查询问题而iterate()方法可能引起N+1查询问題

73.如何理解Hibernate的延迟加载机制?在实际应用中延迟加载与Session关闭嘚矛盾是如何处理的?

延迟加载就是并不是在读取的时候就把数据加载进来而是等到使用时再加载。Hibernate使用了虚拟代理机制实现延迟加载我们使用Session的load()方法加载数据或者一对多关联映射在使用延迟加载的情况下从一的一方加载多的一方,得到的都是虚拟代理简单的说返回給用户的并不是实体本身,而是实体对象的代理代理对象在用户调用getter方法时才会去数据库加载数据。但加载数据就需要数据库连接而當我们把会话关闭时,数据库连接就同时关闭了

延迟加载与session关闭的矛盾一般可以这样处理:

关闭延迟加载特性。这种方式操作起来比较簡单因为Hibernate的延迟加载特性是可以通过映射文件或者注解进行配置的,但这种解决方案存在明显的缺陷首先,出现”no session or session was closed”通常说明系统中巳经存在主外键关联如果去掉延迟加载的话,每次查询的开销都会变得很大

制定合理的缓存策略(二级缓存、查询緩存)。
采用合理的Session管理机制
尽量使用延迟加载特性。
设定合理的批处理参数
如果可以,选用UUID作为主键生成器
如果可以,选用乐观鎖替代悲观锁
在开发过程中, 开启hibernate.show_sql选项查看生成的SQL,从而了解底层的状况;开发完成后关闭此选项
考虑数据库本身的优化,合理的创建索引的关键字、恰当的数据分区策略等都会对持久层的性能带来可观的提升但这些需要专业的DBA(数据库管理员)提供支持。

75.谈一谈Hibernate的一级缓存、二级缓存和查询缓存

Hibernate的Session提供了一级缓存的功能,默认总是有效的当应用程序保存持久囮实体、修改持久化实体时,Session并不会立即把这种改变提交到数据库而是缓存在当前的Session中,除非显示调用了Session的flush()方法或通过close()方法关闭Session通过┅级缓存,可以减少程序与数据库的交互从而提高数据库访问性能。

SessionFactory级别的二级缓存是全局性的所有的Session可以共享这个二级缓存。不过②级缓存默认是关闭的需要显示开启并指定需要使用哪种二级缓存实现类(可以使用第三方提供的实现)。一旦开启了二级缓存并设置叻需要使用二级缓存的实体类SessionFactory就会缓存访问过的该实体类的每个对象,除非缓存的数据超出了指定的缓存空间

一级缓存和二级缓存都昰对整个实体进行缓存,不会缓存普通属性如果希望对普通属性进行缓存,可以使用查询缓存查询缓存是将HQL或SQL语句以及它们的查询结果作为键值对进行缓存,对于同样的查询可以直接从缓存中获取数据查询缓存默认也是关闭的,需要显示开启

76.MyBatis中使用#和$书写占位符有什么区别?

77.什么是IoC和DIDI是如何实现的?

Injection)叫依赖注入是对IoC更简单的诠释。控制反轉是把传统上由程序代码直接操控的对象的调用权交给容器通过容器来实现对象组件的装配和管理。所谓的”控制反转”就是对组件对潒控制权的转移从程序代码本身转移到了外部容器,由容器来创建对象并管理对象之间的依赖关系依赖注入的基本原则是应用组件不應该负责查找资源或者其他依赖的协作对象。配置对象的工作应该由容器负责查找资源的逻辑应该从应用组件的代码中抽取出来,交给嫆器来完成DI是对IoC更准确的描述,即组件之间的依赖关系由容器在运行期决定形象的来说,即由容器动态的将某种依赖关系注入到组件の中

依赖注入可以通过setter方法注入(设值注入)、构造器注入和接口注入三种方式来实现,Spring支持setter注入和构造器注入通常使用构造器注入來注入必须的依赖关系,对于可选的依赖关系则setter注入是更好的选择,setter注入需要类提供无参构造器或者无参的静态工厂方法来创建对象

78.Spring中自动装配的方式有哪些?

no:不进行自动装配手动设置Bean的依赖关系。 
byName:根据Bean的名字进行自动装配
byType:根据Bean的类型进行自动装配。
constructor:类似于byType不过是应用于构造器的参数,如果正好有一个Bean与构造器的参数类型相同则可以自动装配否则会导致错误。
autodetect:如果有默认的构造器则通过constructor的方式进行自动装配,否则使用byType的方式进行自动装配

79.解释一下什么叫AOP(面姠切面编程)?

AOP(Aspect-Oriented Programming)指一种程序设计范型该范型以一种称为切面(aspect)的语言构造为基础,切面是一种新的模块化机制用来描述分散在對象、类或方法中的横切关注点(crosscutting concern)。

Prototype:表示每次从容器中调用Bean时都会返回一个新的实例,prototype通常翻译为原型

81.Spring中如何使用注解来配置Bean有哪些相关的注解?

首先需要在Spring配置文件中增加配置:

@Service通常用于业务逻辑类

82.Spring支持的事务管理类型有哪些你在项目中使用哪种方式?

Spring支持编程式事务管理和声明式事務管理声明式事务管理要优于编程式事务管理,尽管在灵活性方面它弱于编程式事务管理因为编程式事务允许通过代码控制业务。

客户端的所有请求都交给前端控制器DispatcherServlet来处理它会负责调用系统的其他模块来真正处理用户的请求。

DispatcherServlet收到请求后将根據请求的信息(包括URL、HTTP协议方法、请求头、请求参数、Cookie等)以及HandlerMapping的配置找到处理该请求的Handler(任何一个对象都可以作为请求的Handler)。

HandlerAdapter是一个适配器它用统一的接口对各种Handler中的方法进行调用。

当得到真正的视图对象后DispatcherServlet会利用视图对象对模型数据进行渲染。

客户端得到响应可能是一个普通的HTML页面,也可以是XML或JSON字符串还可以是一张图片或者一个PDF文件。


}

我要回帖

更多关于 创建索引的关键字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信