单选题
1、在JSP中,page指令用来引入需要的包或类的属性是(B)。
-
A、extends
-
B、import
-
C、languge
-
D、scontentType
参考答案 :B
答案说明 :import属性用于指定在JSP页面翻译成的Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类,中间用英文逗号隔开
2、JSP的Page编译指令的属性Language的默认值是(A)。
-
A、Java
-
B、C
-
C、C#
-
D、SQL
参考答案 :A
答案说明 :无
3、将jsp翻译成Servlet源码后,用户访问jsp文件时会被调用的方法是(C)。
-
A、_jspInit()
-
B、_jspDesroy()
-
C、_jspService()
-
D、Service()
参考答案 :C
答案说明 :JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。 如果转换成功,则JSP容器将生成的Java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样来处理它。
4、标记<% %>中的内容是(B)。
-
A、script脚本
-
B、JSP程序片段
-
C、JSP声明
-
D、JSP表达式
参考答案 :B
答案说明 :无
5、下面关于动态包含的语法格式,书写正确的是(C)
-
A、<jsp:forward file="relativeURL" />
-
B、<jsp:forward path="relativeURL" />
-
C、<jsp:forward page="relativeURL" />
-
D、<%@include file="relativeURL" />
参考答案 :C
答案说明 :无
6、可以实现不同网页之间的数据共享,而且还可以实现跨机共享数据的JSP对象是(C)。
-
A、Response对象
-
B、Session对象
-
C、Application对象
-
D、Request对象
参考答案 :C
答案说明 :Response对象:服务端向客户端的回应信息;Session对象:保存用户的信息;Request对象:得到用户请求信息;
7、可以在以下哪个标记之间插入变量与方法声明?( B)
-
A、<% 和 %>
-
B、<%! 和 %>
-
C、</ 和 %>
-
D、<% 和 ! >
参考答案 :B
答案说明 :A中的是JSP代码片段;C和D写法不正确
8、JSP的哪个指令允许页面使用者自定义标签库?(B)
-
A、include指令
-
B、taglib指令
-
C、page指令
-
D、plugin指令
参考答案 :B
答案说明 :无
9、在 JSP 中可动态导入其他页面的标签是(D)。
-
A、<%include/>
-
B、<%@ include%>
-
C、<jsp:importPage/>
-
D、<jsp:include/>
参考答案 :D
答案说明 :无
10、在JSP中,方法的定义必须放在(B)中。
-
A、表单
-
B、JSP脚本声明
-
C、JSP脚本代码段
-
D、JSP脚本表达式
参考答案 :B
答案说明 :无
多选题
11、下面关于include指令与<jsp:include>元素的区别,正确的是(ABC)。
-
A、include指令通过file属性指定被包含的文件,<jsp:include>元素通过page属性指定被包含的文件
-
B、include指令的包含文件中不能有重名的变量或方法,<jsp:include>元素的包含文件中可以有重名的变量或方法
-
C、使用include指令时,被包含的文件内容会插入到包含页中;使用<jsp:include>元素包含文件时,当该元素被执行时,程序会将请求转发到被包含的页面
-
D、以上说法都不正确
参考答案 :A,B,C
答案说明 :无
12、下面关于pageContext对象作用范围的取值表述,说法正确的是(ABCD)。
-
A、pageContext.PAGE_SCOPE:表示页面范围
-
B、pageContext.REQUEST_SCOPE:表示请求范围
-
C、pageContext.SESSION_SCOPE:表示会话范围
-
D、pageContext.APPLICATION_SCOPE:表示Web应用程序范围
参考答案 :A,B,C,D
答案说明 :无
判断题
13、page指令的属性名称都是区分大小写的。
参考答案 :对
答案说明 :无
14、<jsp:include>元素的flush属性默认值为false。
参考答案 :对
答案说明 :无
15、jsp文件中可以使用html。
参考答案 :对
答案说明 :无
16、JSP的隐藏注释在服务端可以看到。
参考答案 :错
答案说明 :JSP提供了隐藏注释,隐藏注释不仅在浏览器页面中看不到,在查看HTML源代码时也看不到,所以隐藏注释有着较高的安全性。
17、在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。
参考答案 :对
答案说明 :无
18、<jsp:forward>元素可以将当前请求转发到其他Web页面,执行请求转发后,当前页面将不再执行,而是执行该元素指定的目标页面。
参考答案 :对
答案说明 :无
填空题
19、JSP全名是Java Server Page,它是建立在规范之上的动态网页开发技术。
参考答案 :【Servlet】
答案说明 :无
20、JSP中嵌入的代码片段有3种注释,分别是单行注释、和提示文档注释。
参考答案 :【多行注释】
答案说明 :JSP代码片段中的注释同Java的注释相同,包括3种情况。
21、需要在JSP页面静态包含一个文件时,可采用指令来实现。
参考答案 :【include】
答案说明 :在实际开发时,有时需要在JSP页面中包含另一个JSP页面,这时,可以通过include指令实现。
22、在JSP页面中,经常需要处理一些异常信息,这时,可以通过对象来实现。
参考答案 :【exception】
答案说明 :在JSP页面中,经常需要处理一些异常信息,处理异常信息可以通过exception对象实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。
23、JSP指令中,用来定义一个标签库以及其自定义标签前缀的指令是。
参考答案 :【taglib】
答案说明 :在JSP文件中,可以通过taglib指令标识该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。
24、JSP脚本元素主要包含三种类型:JSP Scirptlets、声明标识和。
参考答案 :【JSP表达式】
答案说明 :无
25、除了RequestDispatcher接口的forward()方法可以实现转发外,还可以通过JSP的标签来实现转发。
参考答案 :【<jsp:forward>】
答案说明 :<jsp:forward>动作元素可以将当前请求转发到其他Web资源(HTML页面、JSP页面和Servlet等),执行请求转发之后,当前页面将不再执行,而是执行该元素指定的目标页面。
26、JSP指令中,用来定义与页面相关属性的指令是。
参考答案 :【page】
答案说明 :无
27、JSP页面中out对象是用来向发送文本形式的实体内容。
参考答案 :【客户端】
答案说明 :在JSP页面中,经常需要向客户端发送文本内容,向客户端发送文本内容可以使用out对象实现。out对象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。
简答题
28、简述pageContext对象的作用?(至少写出2点)
参考答案 :
1.用于得到其它8个隐式对象
2.默认直接操作page域中的数据
3.可以用它操作其它三个域对象(request,session.application)中的数据
答案说明 :无
29、请使用include标签编写两个JSP页面a.jsp和b.jsp。要求:使用浏览器访问b.jsp,在浏览器输出b.jsp页面的内容,等待5秒,再输出a.jsp页面。
参考答案 :
a.jsp代码:
<%@ page contentType="text/html;charset=UTF-8"%>
<%Thread.sleep(5000);%> a.jsp内的中文<br>
b.jsp代码:
<%@ page contentType="text/html;charset=UTF-8"%>
b.jsp内的中文<br>
<jsp:include page="a.jsp" flush="true" />
答案说明 :无
30、简述JSP的九个隐式对象及它们的作用。
参考答案 :
(1) out 用于页面输出
(2) request 得到用户请求信息
(3) response 服务器向客户端回应信息
(4) config 服务器配置,可以取得初始化参数
(5) session 用来保存用户的信息
(6) application 所有用户的共享信息
(7) page 指当前页面转换后的Servlet类的实例
(8) pageContext JSP的页面容器
(9) exception 表示JSP页面所发生的异常,在错误页中才起作用
答案说明 :无
31、请描述JSP的运行原理。
参考答案 :
- 客户端发送请求,请求访问jsp文件。
- jsp容器先将jsp文件转化成一个java源文件(Java Servlet源程序),在转换过程中,如果发现jsp文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。
- 如果转换成功,则jsp容器将生成的java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样来处理它。
- 由Servlet容器加载转换后的Servlet类(.class文件)创建一个该Servlet(jsp页面的转换结果)实例,并执行Servlet的jspInit()方法。jspInit()方法在Servlet的整个生命周期中只会执行一次。
- 执行jspService()方法来处理客户端的请求。对于每个请求,jsp容器都会创建一个新的线程来处理它。如果多个客户端同时请求该jsp文件,则jsp容器也会创建多个线程,使得每一个客户端请求都对应一个线程。jsp运行过程中采用这种多线程的执行方式可以极大地降低对系统资源的需求,提高系统的并发量并缩短相应时间。需要注意的是,由于第4步生成的Servlet是常驻内存的,所以响应的速度非常快。
- 如果jsp文件被修改了,则服务器将根据设置来决定是否对该文件重新编译。如果需要重新编译,则使用重新编译后的结果取代内存中常驻的Servlet,并继续上述处理过程。
- 虽然jsp效率很高,但在第一次调用的时候往往由于需要转换和编译,所以会产生一些轻微的延迟。此外,由于系统资源不足等原因,jsp容器可能会以某种不确定的方式将Servlet从内存中移除,发生这种情况时,首先会调用jspDestroy()方法,然后Servlet实例会被加入“垃圾收集”处理。
- 当请求处理完成后,响应对象由jsp容器接受,并将html格式的响应信息发送回客户端。
答案说明 :6、7两个步骤可以忽略,答出主要工作流程即可。