1. 请您简要说出JSP的执行流程和Servlet的生命周期
JSP
的执行流程:
客户端发出请求,发送到服务器端,也就是
JSP
容器,
JSP
文件转换(
tanslation
)成
Servlert
文件,编译(
javac
)成
class
文件(
.class
)然后再执行
Servlet
实例,返回响应到客户端。
Servlet
的生命周期:
Servlet
被服务器实例化后,容器运行其
init
方法,请求到达时运行其
service
方法,
service
方法自动派遣运行与请求对应的
doXXX
方法(
doGet
,
doPost
)等,当服务器决定将实例销毁的时候调用其
destroy
方法。
2. 请您写出两个包含的异同
include
包含
语法:
<%@ include file="relativeURLspec"%>
静态包含,也叫指令包含,在编译阶段完成的,
静态包含时,将产生两个
jsp
页面。包含的内容被
JSP
容器分析。
include
指令用于在
JSP
页面中静态包含一个文件,该文件可以是
JSP
页面、
HTML
网页、文本文件或一段代码。
<jsp:include>
包含
语法:
<jsp:include page=""/>
动态包含,在运行阶段完成的,动态包含时,只会把结果包含进来,最后只产生一个
JSP
文件。包含的内容不被进行分析,但在相应的位置被包含。
这个动作元素用于在当前页面中包含静态和动态的资源,一旦被包含的页面执行完毕,请求处理将在调用页面中继续进行。
3. 请您写出两个跳转的异同
<jsp:forward page=""/>
服务器端跳转;
response.sendRedirect(
“”
)
客户端跳转;
两者的区别:
1
)前者地址栏不改变,后者地址栏改变;
2
)跳转情况不同,前者只要到达跳转语句就开始跳转,不在执行未完成的任务,后者页面所有的任务执行完跳转;用服务器端跳转可用
getAttribute()
接受
setAttribute()
设置的属性,而客户端跳转不行;
4
)都可以传参数,但传参数的方式不同,前者
<jsp:param name="" value="">
后者
?laosun=shuaige
4. 请您分类写出JSP中的九个隐式对象
1)
输入输出类:
request(page
范围
)
、
response(page
范围
)
、
out(page
范围
)
2)
作用域通信对象:
session(session
范围
)
、
application(application
范围
)
、
pageContext(page
范围
)
3)servlet
对象:
page(page
范围
)
、
config(page
范围
)
4)
异常对象:
exception
5. 请您写出一个JavaWeb项目中WebRoot的目录结构
WebRoot
├
WEB-INF
│├
classes
│├
lib
│└
web.xml
│└
Struts-config.xml
│└
一些
tld
文件
└
META-INF