-
JSP
面试题及答案
浏览器
jsp,html
之间的关系
与
Java
Servlet
一样
,
是在服务器端执
行的
,
通常返回该客
户端的就是一个<
/p>
HTML
文本
,
因此客户端只要有浏览器就能浏览
2.
在
大多数
Browser/Server
结构的
Web
应用中
,
浏览器直接通
过
HTML
或者
JSP
的形式与用户交互
,
响应用户的请求
< br>
在服务器上执行
,
并将执行结果
输出到客户端浏览器
,
我们可以说基本上与浏览器无关
自定义标签要继承哪个类
这个类可以继承
p>
TagSupport
或者
BodyTag
Support
,两者的
差别是前者适用于没有主体的标签,<
/p>
而后者适用于有主体的标签。
如
果选择继
承
TagSupport
,可以实现
d
oStartTag
和
doEndTag
两个
方法实现
T
ag
的功能,如果选择继承
BodyTagSupport
,可以实现
doAfterBody
这个方法。过滤器
Filter
的作用及配置
< br>过滤器的作用
:
过滤器是一个对象,可以传输请求或修改
响应。
它可以在请求到达
Servlet/JSP
之前对其进行预处理,
而且能够在响
应离开
Servlet/JSP
之后对其进行后处理。所以如果你有几个
Servlet/JSP
需要执行同样的数据转换或页面处理的话,你
就可以写
一个过滤器类,然后在部署描述文件(
)中把该过滤器与对
应的
Servlet/JSP
p>
联系起来。
你可以一个过滤器以作用于一个或一组
< br>servlet
,零个或多个过滤器能过滤一个或多个
s
ervlet
。一个过滤器
1
p>
实
现
接
口
并
定
义
它
的
三
个
方
法
:
1
.
void
init(FilterConfig
config)
throws
ServletException:
在过滤器执行
service
前被调用,以设置
过滤器的配置对象。
2
void
d
estroy();
在
过滤器执行
se
rvice
后被调用。
3
Void
doFilter(ServletRequest
req,ServletResponse
res,FilterChain
chain)
throws
IOException,ServletEx
ception;forward,
与
redirect
的区别
有哪
些方式实现
forward
是把另一个页面加载到本页面,不改变浏览器的路径,
redirect
是
跳
转<
/p>
到
另
一
个
页
面
,
会
改
变
浏
览
器
的
路
径
重
定
向
:
direct(
重
定
向
的
路
径
)
转
发
:
uestDispatcher(
转
发
路
径
).forward(request,
response)
;jsp
内置对象和作用?
有
九
个
内
置
对
象
:
request<
/p>
、
response
、
< br>out
、
session
、
p>
application
、
pageCon
text
、
config
、
page
、
exception
< br>作用如下:
(1)
HttpServletReque
st
类的
Request
对象作用:代
表请求对象,
主要用于接受客户端通过
HTTP
协议连接传输到服务器端的数据。
(2)
HttpS
ervletResponse
类的
Respone
对象作用:代表响应对象,主
要用于向客户端发送数据
(3)
JspWriter
类的
out
对象作用:主要用
于向客户端输出数据
< br>;
Out
的基类是
JspWriter(4) HttpSession
类
的
session
对象作用:
主要用于来分别保存每个用户信息,
与请求关
联的会话;
会话状态维持是
Web
应用开发者必须面对的问题。
(5)
ServletCo
ntex
类的
application
对象作用:
主要用于保存用户信息,
2
代码片段的运行环境;
它是一个共享的内置对象,即一个容器中的
多个用户共享一个
application
对象,
故其保存的信息被所
有用户所
共享
.(6) PageContext
类的
PageContext
对象作用:
管理网页属性
,
为
JSP
页面包装页面的上下文,管理对属于
JSP
中特殊可见部分中
已命名对象的访问,它的创建和初始化都是由容器来完成的。
p>
(7)
ServletConfig<
/p>
类的
Config
对象作用:代码片段配
置对象,表示
Servlet
的配置。
(8) Object
类的
Page<
/p>
(相当于
this
)对象作用:
处理
JSP
网页,
是<
/p>
Object
类的一个实例,
指的是
p>
JSP
实现类的实例,
即它也是
JSP
本身,只有在
JSP
页面范围之内才是合法的。
(9)Exception
p>
作用:处理
JSP
文件执行时发生的错误和
异常如果用
JSP
开发一个聊天程序,不用数据库存储聊天纪录
,请问聊天记录最
好存储在()中。
ApplicationdoPost,doGet
的区别
1
。当你直接访问一个
servlet
时,调用的是
doGet
方法。
2
。如果你的
html
里面规定了
< br>method
访问哪个方法,则调用
该方法。
3
。
get
和
post
提交的数据
量是不一样的
.get
好像最多只能在
url
后跟
8K,
post
没这个限制
jsp
乱码如何解决,
几种解决方案。
?
一、
JSP
页面显示乱码
二、表单提交中文时出现乱码
三、数据库连接时出现乱码页面间对象传递的方法
request,session,application,cookie
等
3
ribute(key,value)
ribute(key,value)
ribute(key,value)
我们在
web
应用开发过
程中经常遇到输出某种编码的字符,如
iso8859-1
等,如何输出一
个某种编码的字符串?
text = new String( es(
iso8859-1 ), GBK );
首先以
iso8859-1
解码为
byte
数组,再用
GBK
重构字符串
简单介绍一下
servlet
servlet
容器:
负责处理客户请求、
把请求传送给
servlet
并把结
果返回给客户。不同程序的容器实际实现可能有所变化,但容器与
ser
vlet
之间的接口是由
servletAPI
定义好的,这个接口定义了
servlet
容器在
p>
servlet
上要调用的方法及传递给
s
ervlet
的对象类。
servlet
的生命周期:
servlet
容器
创建
servlet
的一个实例容器调用
该实例的
init()
方法如果容器对该
servlet
有请求,则调用此实例的
service(
)
方法容器在销毁本实例前调用它的
destroy()
方法销毁并标
记该实例以供作为垃圾收集一旦请求了一个
servlet
,就没有办法阻
止容器执行一个完整
的生命周期。容器在
servlet
首次被调用时创建
它的一个实例,
并保持该实例在内存中,
让它对
所有的请求进行处理。
容器可以决定在任何时候把这个实例从内存中移走。在典型的模型
中,容器为每个
servlet
创建一
个单独的实例,容器并不会每接到一
个请求就创建一个新线程,
而是使用一个线程池来动态的将线程分配
给到来的请求,但是这从
servlet
的观点来看,效果和为每个请求创
4
建一个新线程的效果相同。
BS
p>
与
CS
的联系与区别。
B/S
模式是指在
TCP/IP
的支持下,以
HTTP
为传输协议,客
户
端通过
Browser
访问
Web
服务器以及与之相连的后台数据库的技术
及体系结构。它由浏览器、
Web
服务器、应用服务器和数据库
服务
器组成。客户端的浏览器通过
URL
访问
Web
服务器,
Web
服务器
请求数据库服务器,并将获得的结果以
H
TML
形式返回客户端浏览
器。
p>
c/s
在系统机构上和
B/S
相似,不过需要在客户端安装一个客
户端软件,由这个软件对服务器的数据进
行读写,就像我们常用的
qq
,就是这种模式。
JSP
与
SERVLET<
/p>
的区别。
JSP
先编译成
SERVLET
然后再编译成
CLASS
文件
JSP
SERVLET
JAVA
文件
CLASSjsp
p>
主要做视图层,
servlet
主要做控制
层
JSP
中动态
INCLUDE
与静态
INCLUDE
的区别?
动态
INCLUDE
p>
用
jsp:include
动作实现
它总是会检查所含文件
中的变化,
适合用于包含动态页面,
并且可以带参数。
<
/p>
静态
INCLUDE
用
< br>include
伪码实现
,
定不
会检查所含文件的变化,适用于包含静态
页面
JSP
的内置对象及方法。
9
大
内
置
对
象<
/p>
:
request,response,pagecontext
,session,application,out,config,p
age,ex
ception
request
HttpServletR
equest
的
子
类
< br>response
HttpServletResponse
< br>的
子
类
session
HttpSession
的
子
类
pagecontext
PageContext
的子类
application
ServletContext
的
5
子类
out
JspWriter
的子类
config
ServletConfig
的子类
page
Object
的子类
exception Throwab
的子类四种会话跟踪技术
会话跟踪是
为了跟踪用户于
service
之间的多次交互
.
也就是我们常见的在
C
盘
/
文件夹
下有一个
COOKIE
目录
n
比
Co
okie
安全
.
不可见
.
但占用
srevice
资源
重写
p>
.
这是在用户的
IE
禁止
Cookie
的时候采用的方法。因
为不管是
Cookie
还是
session
都要借助
4.
隐藏域和的区别
用于在
JSP
页面中嵌入
Java
脚本用
于在
JSP
页面中申明变量或
方法,可
以在该页面中的脚本中调用,声明的变量相当于
Servlet
中
的
定
义
的<
/p>
成
员
变
量
。
你
认
为
哪
种
分
页
效
率
最
高
JSP ,MYSQL,SQL2005.
SQL2005
效率高:
因为
mysql
的分页还是先查出所有的记录,<
/p>
再从起始位置开始查出所需要的记录,
而
SQL2005
不会查所有记
录,只
查筛选后所需要的记录简单说明下你对
servlet
的认识及
其
Servlet
的基本架构、生命周期
HttpServlet
类是一个抽象类,可以从该类派生
出一个子类来实
现一个
HttpServlet
,接受来自
Web
站点的请求(该请求来自访问
该
Web
站点的客户浏览器)
,
并将处理后的响应结果发回
Web
< br>站点
(
Web
站点再将响应结果
发送给客户浏览器)
,
在
HttpSe
rvlet
的子
类中,必须至少重载下表中的其中一种方法。<
/p>
方法名
doGet
6
如果
Servlet
支持
Http
GET
请求,用于
Http
GET
请求
doPost
如果
Servlet<
/p>
支持
Http
POST
请求,用于
Http
POST
请求
doPut
如果
< br>Servlet
支持
Http
PUT
请求,用于
Http
PUT
请求
doDelete
如果
Servlet
支持
Http
DELETE
请求,用于
Http <
/p>
DELETE
请
求
init
和
destroy
如果需要管理
Servlet
生命周期内所持有资源,可以重载这两
个方法通常,
< br>不重载
service
方法,
对
于上表中的每一种
HTTP
请求,
se
rvice
方法通过分派它们到相应的
Handler
线程(
doXXX
方法)
来处理这些标准的
HTTP
请求。同样地,通常也不重载
p>
doOptions
和
doTrace
p>
方
法
,
servi
ce
方
法
通
过
分
派
它
们
p>
到
doTrace
和
doOptions
来支持
HTTP1.1
TRACE
和
OPTIONS
。
Servlet
通常运
行在多线程的
服务器中,因此,所编写的
Servlet
代码必须能够处理<
/p>
并行请求和对数据资源的同步访问。
共享资源包括内存中的数据<
/p>
(例
如:实例或类变量)和外部对象(例如:文件、数据库连接或
网络连
接
)
。
Protected
void
doGet(HttpServletRequest
resp)
throws
req,HttpServletResponse
Serv
letException,IOException
从
ser
vice
方法授并处理
HTTP GET
请求。
GET
方法允许客户读取来自
Web
服务器的信息,客户通过传
7
递一个带
URL
的查询字符串可以告诉
服务器它需什么信息。重载支
持
GET
请求的
doGet
方法还将自动支持
H
TTP HEAD
请求,
HEAD
请求
也是一个
GET
请求,它得到的返回响应中只有一个请求头
p>
(
header
)字段,而没有响应信息的
内容。如果重载方法,应该从
该请求读数据,在响应中设置整个
headers
,访问
PrintWriter
或输
出流对象,
最后写响应数据。
当设置
headers
时,
应确保
包含
content
type
和
p>
encoding
。如果使用
PrintW
riter
对象返回响应,在存取
PrintWriter
p>
对象之前必须设置
content
typ
e
。
Servlet
引擎必须在
写响应数据之前写
headers
,因为在写
数据之后
headers
随时都可
能被
刷新。简单描述下数据连接池的工作机制是什么?
数据库连接
池在初始化时将创建一定数量的数据库连接放到连
接池中,
这些
数据库连接的数量是由最小数据库连接数来设定的。
无
论这些数
据库连接是否被
使用,连接池都将一直保证至少拥有这么
p>
多的连接数量。
连接池的最大数据库连接数量限定了这个连接池能占
有的最大连接数,当应用程序向连接池请求的连接数超
过最大连接
数量时,
这些请求将被加入到等待
队列中。
数据库连接池的最小连接
数和最大连接数的设置要考虑
到下列几个因素:
1)
最小连接数
是连
接池一直保持的数据库连接,
所以如果应用程序对数据库连
接的使用
量不大,
将会有大量的数据库连接资源被浪费;
2)
最大连接数是连
接池能申请的最大连接数,
如果数据库连接请求超过此数,
后面的数
据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
3)
如果最小连接数与最大连接数相差太大,那么最先的连接请求将
p>
8
会获利,
之
后超过最小连接数量的连接请求等价于建立一个新的数据
库连接。
不过,
这些大于最小连接数的数据库连接在使用完不会马上
被
释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
jsp
乱码如何解决,给出三种以上的对应解决方案,并给出对应的程
序案例;
一、
JSP
页面显
示乱码
二
、
表
单
提
交
中<
/p>
文
时
出
现
乱
码
acterEncoding(
gb2312 )
对请求进行统一编码三、
数据库连接出现乱码
要涉及中文的地方全部是乱码,解决办法:在数据库的数据库
URL
中加上
useUnicode=
true
characterEncoding=GBK
就<
/p>
OK
了。四、通过过滤器完成五、在
p>
中的设置编码格式面向
对象的特征有哪些方面
1.
抽象:抽象就是忽略一个主题中与当前目标无关的那些
方面,
以便更充分地注意与当前目标有关的方面。
抽象并不打算
了解全部问
题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方
面,一是过程抽象,二是数据抽象。
2.
继承:
继承是一种联结类的层
次模型,
并且允许和鼓励类的重用,
p>
它提供了一种明确表述共性的方
法。对象的一个新类可以从现有的类
中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子
类)
,而原
始类称为新类的基类(父类)
。派生类可以从它的基类那里继承方法
和实例变量,并且类可以修改或增加新的方法使
之更适合特殊的需
9
要。
3.
封装:封装是把过程和数据包围起来,对数据的访问只能通过
已定义的界面。
面向对象计算始于这个基本概念,
即现实世界可以被
描绘成一系列完全自治、
封装的对象,<
/p>
这些对象通过一个受保护的接
口访问其他对象。
< br>4.
多态性:多态性是指允许不同类的对象对同一
消息
作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言
具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程
序函数同名问题。
String
是最基本的数据类型吗
p>
基本数据类型包括
byte
、
int
、
char
、
long
、
p>
float
、
double
、
boolean
和
shor
t
。
类是
fi
nal
类型的,
因此不可以
继承这个类
、不能修改这个类。为了提高效率节省空间,我们应该用
StringBuffer
p>
类
int
和
Integer
有什么区别
Java
提供两种不同的类型:
引用
类型和原始类型
(或内置类型)
。
In
t
是
java
的原始数据类型,
Integer
是
java
< br>为
int
提供的封装类。
Jav
a
为
每
个
原<
/p>
始
类
型
提
供
了
封
装
类
。
原
始
类
型
封
装
类
:
booleanBoolean
charCharacter byteByte shortShortintInteger
longLong floatFloat doubleDouble
引用类型和原始类型的行为完
全不同,
并且它们具有不
同的语义。
引用类型和原始类型具有不同的
特征和用法,它们包
括:大小和速度问题,这种类型以哪种类型的数
据结构存储,
当
引用类型和原始类型用作某个类的实例数据时所指定
的缺省值。对象引用实例变量的缺省
值为
null
,而原始类型实例变<
/p>
量的缺省值与它们的类型有关。
String
< br>和
StringBuffer
的区别
JAVA
平台提供了两个类:
S
tring
和
StringBuffer
,它们可以储
10
存和操作字符
串,即包含多个字符的字符数据。这个
String
类提供
p>
了数值不可改变的字符串。而这个
StringBuffer
类提供的字符串进
行
修
改
。
当
你
知
道
字
符
数
p>
据
要
改
变
的
时
候
你
就
可
以
使
< br>用
StringBuffer
。典型地,你可以使用
p>
StringBuffers
来动态构造字符
数据。运行时异常与一般异常有何异同?
异常表示程序运行
过程中可能出现的非正常状态,
运行时异常表
示虚拟机的通常操
作中可能遇到的异常,是一种常见运行错误。
java
编译器要
求方法必须声明抛出可能发生的非运行时异常,
但是并不要
求必
须声明抛出未被捕获的运行时异常。说出
ArrayList,Vector,
LinkedList
的存储性能和特性
<
/p>
ArrayList
和
Vector
p>
都是使用数组方式存储数据,
此数组元素数
大于实际存储的数据以便增加和插入元素,
它们都允许直接按序号索
引元素,
但是插入元素要涉及数组元素移动等内存操作,
所
以索引数
据快而插入数据慢,
Vector
由于使用了
synchronized
方法
(线程安
全)
,通常性能上较
ArrayList
差,而
LinkedList
使用双向链表实现
存储,
按序号索引数据需要进行前
向或后向遍历,
但是插入数据时只
需要记录本项的前后项即可,
所以插入速度较快。
Collection
和
Collections
的区别。
<
/p>
Collection
是集合类的上级接口,
继承与他的接口主要有
Set
和
tions
是针对集合类的一个帮助类,他提供一系列静态方
法
实现对各种集合的搜索、排序、线程安全化等操作。
和
的区别。
和
都可作为逻辑运算符
与
使用,但是
是
短路与
,运算时
11
先判断符号前面的表达式的值,
如果能够确定整个表达式的值,
则不
进行符号后面的表达式的运算。另外,
也可作为位运算符使用。
HashMap
和
Hashtable
的区别。
HashMap
是
< br>Hashtable
的轻量级实现(非线程安全的实现)
,
他们都完成了
Map
接口,主要区别
在于
HashMap
允许空(
null
)
键值
(
ke
y
)
,
由于非线程安全,
效率上可能高于
Hashtable
。
HashMap
允许将
null
作为一个
entry
的
key
p>
或者
value
,而
Hashtable
不允
许
。
HashMap
把
Hashtable
的
contains
方法
去掉
了,
改成
containsv
alue
和
containsKey
。
因为
contains
方法容易让人引起
误解。
Hashtable
继承自
D
ictionary
类,而
HashMap
是
Java1.2
引进的
Map
interface
的一个实现。最大的不同是,
Hashtable
的
方法是
Synchronize
的,而
HashMap
不是,在多个线程访问
Hashtable
时,不需
要自己为它的方法实现同步,而
HashMap
就
必须为之提供外同步。
Hashtable
和
p>
HashMap
采用的
hash/reha
sh
算法都大概一样,
所以性能不会有很大的差异。
final, finally, finalize
的区别。
final
用于声明属性,方法和类,分别表示属性不可变,
方法不
可覆盖,
类不可继承。
fina
lly
是异常处理语句结构的一部分,
表示总
< br>是执行。
finalize
是
O
bject
类的一个方法,在垃圾收集器执行的时
候会调用被回
收对象的此方法,
可以覆盖此方法提供垃圾收集时的其
他资源回
收,例如关闭文件等。
sleep()
和
wait()
有什么区别
sleep
是线程类(
Thread
)的方法,导致此线程暂停执行指定
1
2
-
-
-
-
-
-
-
-
-
上一篇:2011年中国青少年机器人竞赛准入设备分析(免费下载)
下一篇:勘察设计工作大