-
Web
项目答辩问题
1.
css
和
div
开发的优势?
A
、
显
示
和
内
容
实
现
分<
/p>
离
B
、有利于搜索引擎搜索引擎搜索
C
、有利于维护和程序的扩展
2.
谈谈页面间的参数传递有哪些方式
?
A
、通过
作用域对象
session
、
requ
est
的
setAttribute()
和
getAttribute()
方法进行参数传递。
p>
B
、
C
、
uestDispatcher(
“
?name=XX
”
).forward(request,response);
D
、
class=
scope=request/session>
3.
hidden
表单域有什么作用?
A
、多个表单的区分
B
、多个提交按钮
4.
jsp
有哪些内置对象
?
pageContex,request,session,application,reque
st,out,exception,config,page,
5.
request
的作用有哪些?
获取客户端传递的参数值
获取客户端请求头信息
获取会话
获取转发对象
可作为容器使用
,
利用
setAttribute()
和
getAttri
bute()
方法进行参数传递
6.
session
有什么作用。
因为
http
协议是无状态的协议,但我们需
要保存客户端在多次请求之间状态信息的时候,我
们需要
ses
sion
来维护客户端的状态
Ses
sion
对象类似于一个容器,可以存放任何对象,以供不同页面间共享数据
7.
application
有什么作用。
保存的一些全局性的对象信息。
8.
在
js
p
中怎样操作
page
作用域
特定于
JSP
的一个类型,代表当前的
JSP <
/p>
页面。
ribute(
“
java
”
,
”
lovo
”
);
9.
jsp
有哪些动作
?
作用分别是什么
?
包含
转发到另一页面相当于
uestDispatcher(
“
?name=XX
”
).forward(request,response);
设置
javaBean
设置属性
获得属性
设置插件
10.
java servlet
api
中
forward()
与
p>
redirect()
的区别?
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
1.
forward
客户端请求服务器一次,
redirect
请求服务器两次,所以
forward
p>
方式可以获得
request
作用域的信息
,而
redirect
方式不能获得。
2.
forward
由
request
对象发出,而
redirect
由
response
对象发起
3.
< br>redirect()
可以跨越不同的工程之间。而
fo
rward()
只能在一个工程中使用
e
的作用
?
为什么要用
?
加载类;一般使用这个方法是反射方式创建对象;从而可以将一些类信息
写在文件中,避免
硬编码,增加灵活性。
分页是怎么实现的?
Select
top 5 * from
表名
where id not in(select top 10 id from
表名
)
cookie
被禁止后怎样使用
session
?
< br>
URL
重写,对所有页面涉及的连接都使用
url
重写方式。从而将
JsessionID<
/p>
以参数的方式链
接到
URL
后面。保证每次页面提交时服务器都能获得
sessionID
,从而维持和客户端的状态。
项目开发经历了哪几个阶段?
需求分
析,设计
(
找用例,写用例文本,找实体,编写数据字典,画数
据流图
)
,编码,测试,
部署;
谈谈项目的体系统架构:
(客户层,表示层
)
web
层,业务层,数据层?
p>
客户层:
IE
浏览器,
Applet
小应用程序,在客户度允许
表示层:
html
静态页面,
jsp
页面,
servlet
在服务器
上运行;
业务层:实现业务逻辑,服务器提供系统级服务,如
事务管理,安全性,并非控制
数据层:如
dao
部分,实现对数据的增删改查等。
J2EE
规范中的组件技术在项目中
用到了哪些?
JDBC,jsp,servlet,javabean,xml,JNDI
TCP/IP
通讯和
UDP
通迅的区别?
1)
TCP/IP
面向连接,可靠连接,
UDP
面向不连接,不可靠连接
2)
建立连接经历
< br>3
次握手,
udp
无需连接,<
/p>
ip
和
port
封装在
datagram
数据包中,自寻
址。
浏览器和
WEB
服务器是用什么协议通迅的?
应用层使用的是
HTTP
协议,传输和路由使用的是
TCP/IP
网络通讯中,端口有什么含义。端口的取值范围?
端口用于区分基于
TCP/IP
通讯的不同应用程
序
,
每个基于
TCP/IP
应用程序都会向操作系统
申请注册一个服务,这个服务用端口表示。本质
上说,端口就是一段内存中的缓冲区。可以
认为是计算机与外界交流的出口。
建议用户使用的端口号
1024-----
65535
系统使用的端口范围
0 --- 1024
说出
3
个常见协议的默认端口。
Web
服务器
80
,
ftp
21
,
telenet 23,smtp 25
socket
是什么,它有什么作用?
Socket
是通讯的端点,是客户端和服务器进行通讯的端点
TCP/IP
通讯的基本步骤是什么?
基于
TCP/IP
通讯的程序:必须先
建立和服务器端的连接,然后才能通讯。
服务器端:
ServerSocket
ss = new
ServerSocket(port);
创建
server
Socket
对象
()
在
po
rt
端口监听,等待客户端请求到来
客户端:
Socket s = new Socket(ip,port);
建立和服务器的连接;连接不成功,抛出异常
putStream()
和
utStream()
和向服务器发送请求信
息和接收服务器返
23.
24.
25.
26.
27.
28.
回的信息
UDP
通讯的基本步骤是什么?
1
)
创建<
/p>
DatagramSocket
对象
2
)
通过<
/p>
datagramSocket
发送
(<
/p>
接收
)datagramPacket
数
据包
3
)
从
datagramPacket
数据
包中取出接收和封装要发送的数据
JDBC
< br>访问数据库的基本步骤是什么?
1
)
加载驱动
2
)
通过<
/p>
DriverManager
对象获取连接对象
< br>Connection
3
)
通过连接对象获取会话
4
)
通过会话进行数据的增删改查,封装对象
5
)
关闭资源
说说
preparedStatement
和
Statement
的区别
1
)
效率:
预编译会话比普通会话对象,
数据库系统不会对相同的
sql
语句不会再次
编译
2
)
安
全性,可以有效的避免
sql
注入攻击!
sql
注入攻击就是从客户端输入一些非
法的特殊字符,
p>
而使服务器端在构造
sql
语句的时候仍然
能够正确构造,
从而收
集程序和服务器的信息和数据。
比如:
“
select * from
t_user where userName =
?
”
+
userName +
“
?
and password
=
?”
+ password +
“?”
如果用户名和密码输入的是<
/p>
?
1
?
or
?
1
?
=
p>
?
1
?
则生产的
sql
语句是:
“
select
*
from
t_user
where
userName
=
?
1
?
or
?
1
?
p>
=
?
1
?
and
password
=
?
1
?
or
?
1
?
=
?
1
?
p>
这个语句中的
where
部分没有起到对数据筛选的作用。
说
说事务的概念,在
JDBC
编程中处理事务的步骤。
1
)
事务是作为单个逻辑工作单元执行的一系列操作。
2
)
一个逻
辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性
(ACID)
属性,只有这样才能成为一个事务
事务处理步骤:
3
)
oCo
mit(false);
设置提交方式为手工提交
4
)
()
提交事务
5
)
出现异常,回滚
ck();
数据库连接池的原理。为什么要使用连接池。
1
)
数据库
连接是一件费时的操作,连接池可以使多个操作共享一个连接。
2
)
数据库
连接池的基本思想就是为数据库连接建立一个“缓冲池”
。预先在缓冲池
中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出
一
个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系
统无尽的与数
据库连接。更为重要的是我们可以通过连接池的管理机制监视数
据库的连接的数量
?
使用情况,为系统开发
?
< br>测试及性能调整提供依据。
3
)
使用连接池是为了提高对数据库连接资源的管理
谈谈
DAO
模式的原理的作用。
DAO
是一种设计模式
包括三个部分
1
)
D
AO
接口
2
)
DAO
接口实现类,
3
)
PO
持久化对象,它和
数据库相对应
29.
servlet
和
jsp
有
什么关系?
Servlet
和
< br>JSP
都是服务器的组件。
Servlet
< br>是一个接口,也是
SUN
公司提出的一种用户和
WEB
容器之间通信的标准。由用
户实现其中的
service()
方法供
WEB
p>
容器进行调用,
从而实现
servlet<
/p>
和
WEB
容器之间的交互。
所
以当用户要和
WEB
容器
通信时必须实现这种标准。而
JSP
规范规定,由容器翻译好的
JA
V
A
类<
/p>
必须实现
HttpJspPage
接口,
而这个接口是
servlet
的子接口,从这个意义上说,
p>
JSP
的本质还是
servlet
。
p>
JSP
重在表示,解决了
servlet<
/p>
页面输出困难的问题。而
servlet
重在业务处理,避免在页面
出现过多的业务处理带来的阅读性和维护性的困难。它们可以
很好的结合。
p>
Servlet
编写后需要在
WEB
应用的
进行注册,
从
而能让
WEB
容器识别用户编码的
Se
rvlet
。但
JSP
由容器来管理,
所以无需注册。
30.
jsp
是如何被容器调用和执行的?
1
)由
JSP
引擎将
JSP
页面翻译成
JA
V
A
代码
2
)将
JA
V
A
代码编译成
class
字节码文件
3
)加载到容器
4
)由容器实例化成对象
5
)初始化阶段相关的方法是
jspInit()
6
)请求到达,调用服务阶段相关的方法是
_jspService()
7
)销毁阶段相关的方法是
jspDestroy()
31.
编写一个
servlet
的步骤。
p>
1
)新建一个类继承于
< br>HttpServlet
2)
重写其中的
doGet
和
doPost
方法
3
)完成
servlet
的注册。在
中加入
标记
32.
doGet
< br>和
doPost
方法各有什么作用?
doGet
完成
Get
方式的请求处理。
doPost
完成
Post
方式请求处理
33.
为什么要为
< br>servlet
配置
URL
映射
?
Servlet
注册包括两部分,
第一,容器如何找到
Servlet
,利用
名字
类的全路径
完成。
p>
第二,客户端如何找到当前的
Servlet
。利用
名字
客户端请求路径
完成。
配置
URL
的主要作用是客户端通过什么路径能去找到
Servle
t
34.
servlet
的类架构是什么样的。
Servlet
是
Sun
公司提供的用户和
WEB
服务器通讯的接口,
所有
Servlet
都必须实现这个接口。<
/p>
J2EE API
中提供了一个类
Gen
ericServlet
对
Servlet
接口作了简单的实现。同时,这个类还实
现了
Servle
tConfig
接口。来对
Servlet
进行一些配置。
GenericServlet
有一个专门
针对于
Http
协议进行实现的一个子类
HttpServlet
。
35.
谈谈
servlet
的生命周期?
1
)容器装载并实例化
Servlet
2)
调用
init()
方法完成
Servlet
初始化
3
)当请求到达时,调用
ser
vice()
方法处理请求,产生响应
4
)销毁阶段调用
destroy()
方法完成清理工作。
36.
p>
servlet
是线程安全的吗?为什么?
不安全。
因为
Servlet
对象在整个过程中,
至始至终只有一个对象。
以
节约服务器资源的消耗,
这就意味着很多个线程会同时访问一个
Servlet
对象。所以线程不安全。
37.
你是如何处理
servlet
线程安全问题的?
< br>解决
Servlet
线程安全问题方法有三种
1
)编写
Servle
t
类的时候,实现
SingleThreadModel
接口,将
Servlet
变成单线程机制。<
/p>
2
)涉及对共享资源访问的时候,使用
synchronized
同步加锁,实现共享资源的保护。<
/p>
3
)尽量不在
Servlet
中定义成员变量,使用局部变量。
在三种方法中,最好使用第三种,这样线程安全,并且性能最高。
38.
如何得到客户端的请求参数?
ameter()
单个数据
ameterValues()
一组数据
ameterNames()
ameterMap()
返回所有的键值对
39.
ameter
和
ameterValues
的区别,它们的返回值是
什么类型?
ame
ter
获
得
单
个
表
单
的
数<
/p>
据
。
返
回
值
是
String
类
型
。
而
ame
terValues()
是获得表单元素名相同的一组数据。返回值是
< br>String[]
数组。
40.
response
对象的作用?
p>
Response
对象是对服务器的响应信息作出的一个封装对象。
主要作用有:
1
)可以从
response
中获得输出流对象,从而可以向客户端输出信息
2
)可以实现重定向,
direct();
3)
可以设置响应头和状态码。
4
)可以实现
URL
重写
41.
request
对象的作用范围是什么?
一次请求响应完成后,就会销毁。
42.
session
对象的作用范围是什么
在一个用户会话期间有效。
43.
application
p>
对象的作用范围是什么。
存在于整个
p>
web
应用。当
WEB
容器关闭时,才会销毁
44.
session
对象是什么时候产生的,什么时候销毁的?
p>
当用户访问
web
容器,而容器调用了
sion()
方法后,产生
Session
对象。用以保
存客户端在服务器上的
信息。同时给这个
Session
分配一个唯一的标识
ID
。并产生一个
set-cookies
p>
的响应头,以
JsessionID
作为键
,标识
ID
作为值向客户端的
cook
ie
中写入内容,
当客户端下次再发出请求时,就会将这个
p>
JsessionID
以请求头的方式向服务器进行发送。而
容器读取了
JsessionID
请求头后,
就会根据这个
ID
找到相对应的
Ses
sion
对象,从而维持服
务器和客户端的状态。
销毁
session
方法
有三种
1
)
session
超时
2
)调用
session
对象的
invalidate()
方法