admin 管理员组

文章数量: 887021


2024年1月12日发(作者:tomcat安装及环境配置)

JSP期末考试题

一、选择题

1.当用户请求jsp页面时,JSP引擎就会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是(C)

A)发送一个JSP源文件到客户端 B)发送一个Java文件到客户端

C)发送一个HTML页面到客户端 D)什么都不做。

2.当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个(B)

A)进程 B)线程 C)程序 D服务。

3.下列动态网页和静态网页的根本区别描述错误的是(D)。

A)静态网页服务器端返回的HTML文件是事先存储好的

B)动态网页服务器端返回的HTML文件是程序生成的。

C)静态网页文件里只有HTML标记,没有程序代码。

D)动态网页中只有程序,不能有HTML代码。

4.不是JSP运行必须的是(D)

A)操作系统 B)Java JDK C)支持Jsp的Web服务器 D)数据库

5.URL是Internet中资源的命名机制,URL由三部分构成( A )。

A)协议、主机DNS名或IP地址和文件名 B)主机、DNS名或IP地址和文件名、协议

C)协议、文件名、主机名 D)协议、文件名、IP地址

6.Tomcat服务器的默认端口号是:(B)

A)80 B)8080 C)21 D)2121

7、由JSP页面向Tag文件传递数据要使用的指令是( B )。

A、tag B、attribute C、variable D、taglib

8、在Java Web中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是(A)。

A、 init()方法是包容器调用的Servlet实例的第一个方法

B、在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了

C、在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost方法之前,包容器不会调用Servlet实例的其他方法

D、在Servlet 实例消亡之前,容器调用Servlet实例的close()方法

9、在JSP中要使用user包中的User类,则以写法正确的是( A )。

A、

B、

C、

D、

RequestDispatcher dispatcher=uestDispatcher("");

d(request,response);

关于该段代码的作用,下列叙述哪项是正确的?( B )

A)页面重定向到页面 B)将请求转发到页面

C)从定向到当前页面 D)从转发到当前页面

11.下列设置颜色的方法中不正确的是(D)

A) B)

C) D)

12.设置文档体背景颜色的属性是(C )

A)text B)bgcolor C) background D) link

13.标记在标记之间,标记之间的内容将显示到()

A)浏览器的页面上部 B)浏览器的标题栏上 C)浏览器的状态栏中 D)浏览器的页面下部

14.( D)是标题标记。

A)

标记 B)

标记 C)


标记 D)

10、阅读下面代码片段:

15.

标记中,align属性为段落文字的对齐方式,不能取的值为(D)。

A)Left B)Right C)Center D)width

16.标记中默认的中文字体是(D)

A)“宋体” B)“幼圆” C)“楷体” D)“宋体”

17.表示粗体加斜体的标记是( C)。

A)字体 B)字体 C)字体 D)字体

18.用来在网页中显示图形的标记为(B )

A) B)

C)

D)

19.超级链接是互联网的灵魂,下面哪个是正确的链接标记( A )

A)新浪网

B)新浪网

C)

D)

20.(B)

A)rowspan B)colspan C)height D)width

22、下面哪一项对Servlet描述错误?( C )

A. Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口

B. Servlet接口定义了Servelt的生命周期方法

C. 当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程

D. Servlet客户线程调用service方法响应客户的请求

23、JSP从HTML表单中获得用户输入的正确语句为 (A)

A、ameter(“ID”) B、ameter(“ID”)

C、ribute(“ID”) D、ribute(“ID”)

29.可以在以下哪个( )标记之间插入Java程序片?(A)

A)<% 和 %> B)<% 和 /> C) D)<% 和 !>

35.动作标记中,scope的值不可以是(D)。

A)page B)request C)session D)response

46.下面不属于JSP内置对象的是(D)

A)out对象 B)respone对象 C)application对象 D)page对象

53.能在浏览器的地址栏中看到提交数据的表单提交方式是( B )

A)submit B)get C)post D)out

54.可以利用request对象的哪个方法获取客户端的表单信息(A)

A)ameter() B)ameter()

C)arameter() D)rParameter()

55.JSP页面中amter(String )得到的数据,其类型是( C )

A)Double B)int C)String D)Integer

76、下面哪一项对Servlet、JSP的描述错误?( D )

A. HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。

B. JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。

C. 当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行

D. 一般用JSP来处理业务逻辑,用Servlet来实现页面显示。

77、在MVC设计模式体系结构中,(B )是实现控制器的首选方案。

A. JavaBean B. Servlet C. JSP D. HTML

储在请求作用域 ? ( C )

A.

B.

78、给定TheBean类,假设还没有创建TheBean类的实例,以下哪些JSP标准动作语句能创建这个bean的一个新实例,并把它存

C.

D.

103.下列哪一项不是Servlet中使用的方法? (D)

A)doGet() B)doPost() C)service() D)close()

104.下面哪一项对Servlet、JSP的描述错误?(D)

A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。

B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。

C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行

D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。

106.下面哪一项对Servlet描述错误?(C)

A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口

B)Servlet接口定义了Servelt的生命周期方法

C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程

D)Servlet客户线程调用service方法响应客户的请求

120.阅读下面代码片段:

RequestDispatcher dispatcher=uestDispatcher("");

d(request,response);

关于该段代码的作用,下列叙述哪项是正确的?(B)

A)页面重定向到页面 B)将请求转发到页面

C)从定向到当前页面 D)从转发到当前页面

二、填空题

3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的。

4.Web应用中的每一次信息交换都要涉及到__服务器_和_客户端__两个层面。

5.HTML文档的开头和结束元素为_______。

6.表格定义中使用的子标记的含义为___单元格___。

7.将一个图像作为一个超级链接,用到了____标记。

8.input表单域表示一个文本框时,它的type属性应该赋值为__text____。

13.指令标记、JSP动作标记统称为 JSP标记 。

16.JSP页面的程序片中可以插入 HTML 标记。

21、在页面中,要使用Exception对象,必须设置的指令是<%@page isErrorPage = “true”%>.

22、要使java bean在整个应用程序的声明周期中,被该应用程序中的任何JSP文件所使用,则该java bean的Scope属性必须设置为 application 。

25.JSP的__session___对象用来保存单个用户访问时的一些信息。

26.response对象的_sendRedirect(URL url)___方法可以将当前客户端的请求转到其他页面去。

27.当客户端请求一个JSP页面时,JSP容器会将请求信息包装在__request__对象中。

28.der(“Refresh”, “5”)的含义是指 页面刷新时间为 5秒__。

30.表单的提交方法包括___post_______和____get______方法。

35、在jsp页面中,可以用request对象的 gtParameterValues() 方法来获取其他页面传递参数值的数组。.

36、在JSP中使用JavaBean的标签是 ,其中id的用途是 实例化一个Bean对象 。

44.要想在JSP页面中使用Bean,必须首先使用 动作标记在页面中定义一个JavaBean的实例。

62.使用Servlet处理表单提交时,两个最重要的方法是_Post__和__Get__。

63.Serlvet接口只定义了一个服务方法就是_Service()_。

68.在Servlet中,主要使用HttpServletResponse类的重定向方法 sendRedirect 方法实现重定向,以及使用RequestDispatcher类的转发方法 forward 方法实现转发功能。

三、判断题

1.动态网页和静态网页的根本区别在于服务器端返回的HTML文件是事先存储好的还是由动态网页程序生成的(对 )

2.Web开发技术包括客户端和服务器端的技术。(对 )

3.Tomcat和JDK都不是开源的。(错)

4、session对象是HttpSession接口类的实例,由客户端负责创建和销毁,所以不同客户的session对象不同。( √ )

5、Requestdispatcher的forward方法和include方法的区别是forward可以到另外一个web应用的资源,而include只能到同一web的另外资源。(× )

6、如果一个Sevlet有多个Filter,则优先级最高的Filter先执行。(× )

7.在HTML页面文件中加入JSP脚本元素、JSP标记等就构成了一个JSP页面。(对)

8.JSP引擎执行字节码文件的主要人物之一是直接将HTML内容发给客户端。(对)

9.JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP标记。(对)

10.JSP页面中的指令标记、JSP动作标记统称为脚本元素。(错)

11.在“<%!”和“%>”标记之间声明的Java的变量在整个页面内有效,不同的客户之间不共享。(错)

12.在“<%!”和“%>”标记之间声明的Java的方法在整个页面内有效。(对)

13.页面成员方法不可以在页面的Java程序片中调用。(错)

14.程序片变量的有效范围与其声明位置有关,即从声明位置向后有效,可以在声明位置后的程序片、表达式中使用。(对)

15.程序片变量不同于在“<%!”和“%>”之间声明的页面成员变量,不能在不同客户访问页面的线程之间共享。(对)

16.JSP中Java表达式的值由服务器负责计算,并将计算值按字符串发送给客户端显示。(对)

17.在Java程序片中可以使用Java语言的注释方法,其注释的内容会发送到客户端。(错)

18.不可以用一个page指令指定多个属性的取值。(错)

19.jsp:include动作标记与include指令标记包含文件的处理时间和方式不同。(对)

20.jsp:param动作标记不能单独使用,必须作为jsp:include、jsp:forward标记等的子标记使用,并为它们提供参数。(对)

21.标记的page属性值是相对的URL地址,只能静态的URL。(错)

22.JSP页面只能在客户端执行。(错 )

四、简答

1、有人说:servlet和 JavaBean都是java类,可以互换使用,请您回答,在MVC中,控制器部分是否可以使用JavaBean完成?为什么?

不能。因为javabean是普通的java类,MVC中的servlet要完成从客户端接收数据,采用的servlet是HTTP协议,而普通的javabean不能完成该功能。

2、有人说:JSP是Servlet的高级实现,在MVC中,控制器部分应该用JSP实现,请您回答JSP和servlet的异同。

相似:

(1)两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程等 ),都可以使用Java强大的API。

(2)两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。

(3)两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。

不同:

1编程方式不同。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。

2应用目的不同。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端

3、采用上文描述的MVC设计模式,有什么优点和缺点?

优点:1、提高了代码复用 2、减少了开发时间 3、更高的可维护性

缺点:1、系统结构变得复杂

4、简单回答Servlet的工作过程。

7、JSP、Servlet和HTML中的请求转派发分别如何实现。

2、view对模型数据的访问效率低

JSP实现转派发

(1) 在java脚本代码中使用 direct("") 实现转派发

(2) JSP标准动作: 例如:

Servlet实现转派发

(1) 代码 direct("/"); 遇到该行代码,会转到页面。

(2) ServletContext的getRequestDispatcher(String path)方法返回与path相联系的RequestDispatcher对象

RequestDispatcher对象调用forward(ServletRequest request, ServletResponse response) 转向 path

HTML实现转派发

(1) 使用 href 超链接 实现转派发

例如:返回!

(2) 使用 form 表单提交 实现转派发

(3) 使用 meta 例如:

(4) 使用 "()"

例如:

(5) 使用 "javascript:(-1);"

例如:返回!

8. Servlets 与JSP四种会话跟踪技术

答:会话作用域Servlets JSP 页面描述

page是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有

include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward

指令和 include 动作的关系)

session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

9. Java servlet API中forward() 与redirect()的区别?

答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

中动态include与静态include的区别?

答:动态include用jsp:include动作实现

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态include用include伪码实现,不会检查所含文件的变化,适用于包含静态页面

<%@ include file="" %>

五、综合题

(一) 阅读下列文字,回答问题1-5。

MVC的典型结构如图。

现在您打算根据该设计模式完成一用户登录系统,其中控制器采用Servlet实现,视图采用JSP实现,模型采用JavaBean实现。我的实现思路是一个中心控制servlet负责组件路径的控制,(),具体登陆业务处理在Java Bean()实现。系统要求,用户在登陆页()中填入用户名和密码后提交,正确登陆进入“欢迎XX进入”页面(),错误则进 “密码错”页面()。数据名:dslogin, 表名:user,表中共有2个字段,名字为username,

pasword,。数据库驱动为:verDriver,数据库服务器名:dsserver,用户名:sa,密码:123456。

3、补充完整, 仅要求实现功能,不需要考虑布局和样式

Login

LOGIN

USERNAME:

PASSWORD:

4、补充完整centerServlet .java

import .*;

import .*;

import .*;

import .*;

public class login extends HttpServlet

{

protected void processReuest(HttpServletRequest request, HttpServletResponse response) throws ServletException,

IOException

{

tentType("text/html;charset=UTF-8");

PrintWriter out = ter();

String contextPath=textPath();

String url=der("Referer").substring(dexOf(contextPath));

if (th(""))

{

loginVar loginvar = new loginVar();

if((request, response))

{

getServletContext().getRequestDispatcher("/").forward(request, response);

}else{

uestDispatcher("").forward(request, response);

}

}

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

processReuest(request, response);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

processReuest(request, response);

}

}


本文标签: 页面 标记 请求 方法 实现