2023年12月13日发(作者:)
08计算机《JSP程序设计》作业题
请把各题的答案另外写在一个Word文档中,标明题号,写好答案即可。写上自己的学号姓名,统一发给班长,下周上课,班长用优盘考给我或QQ发给我。
一、填空题
1、在安装Tomcat时,如果系统中已经有其他的应用程序占用了【8080 】端口,则启动Tomcat时会失败。
2、Servlet是服务器端的【 java小程序 】,用于响应客户机的请求。在默认情况下,Servlet采用一种无状态的【 请求-响应 】处理方式。Servlet主要功能是增强Java服务器端功能。
3、Servlet的生命周期主要由3个过程:【 init() 】方法功能是服务器初始化Servlet;【 service() 】方法功能是对象调用该方法响应客户的请求;【 destroy() 】方法功能是消灭Servlet对象。
4、编译后的Servlet只被装载【 1 】次,因此,当源程序重新编译后,需要重新启动服务器;同时Servlet类的修饰符必须为【 public 】
5、Servlet的环境API接口中,ServletConfig接口对象接收【 servlet 】特定的初始化参数,而ServletContext接收【 webapp 】初始化参数。
6、表单提交有2种方式。【 get 】方式是表单的默认方式,并且次提交方式的总数据量不能超过2KB,否则提交失败。利用【 post 】方法需要在method方法中声明,并且它没有容量方面的限制。
7、在Servlet中,通过HttpServletRequest接口的方法来获得来自【 客户和服务器 】端的一些数据;HttpServletReponse接口的方法来【 发出响应 】,它的【 sendredirect 】方法可以立即使网页重定向,它的【 setintheader 】方法可以使网页定时刷新,它的【 secdheader 】方法可以定时使网页重定向。
8、tDispatcher接口有两个最重要的的方法:【 forward 】和【 include 】,它们用来实现对页面的动态转发或者包含。
9、在一个JSP页面中,主要分为三种元素:【编译指令 】、【操作指令 】和【 JSP代码 】;编译指令包括如下【page指令】、【include指令】、【taglib指令 】;操作指令包括【jsp:include 】、【jsp:forward 】、【jsp:param 】、【变量和方法】、【代码块 】等。
10、在JSP页面中可以获得的主要的7个隐含对象变量如下:【out对象】、【response对象】、【request对象】、【application对象】、【session 对象】、【cookie对象】、【pageContext对象 】。
11、JavaBean是一种【软件组件】模型,它和其它软件对象相互作用,决定如何建立和重用软件组件。JavaBean具有4个特征:【独立性】、【可重用性 】【在可视化开发工具中使用】及【状态可以保存】。
12、JSP中专门提供三个页面指令来与JavaBean交互,分别是【 jsp:usebean 】指令、【jsp:serproperty 】指令和【jsp:getProperty】指令。
13、在实际使用中,有几种常用的Bean,其中【页面】Bean为JSP保留数据,不实现应用程序流中的任何功能。【请求】Bean是在request范围内共享数据的Bean。【会话】Bean在Session范围内共享数据。【应用程序】Bean在application范围内共享数据。
14、设计模式针对特定的问题提出的解决方案,常用的面向对象的设计模式有如下4种,【Factory】模式建立的系统的扩充性非常好。【Singleton】模式被用来限制对象的创建,不能有子类,构造函数是私有的。【MVC架构】模式将架构分为View层、Model层和Controller层。
15、包中提供了多种JDBC API,这些类和接口可以提供构造【SQL语句】、连接【关系型数据库】、执行【SQL 语句 】并获取【查询结果】等功能。
16、在JSP中,加载Oralce的JDBC驱动程序的语句为【e(”Driver”)】。使用SUN公司的JDBC—ODBC桥驱动程序的语句为【e(“bcDriver”)】。【Connection 】对象用于建立与数据库之间的连接,【 Statement 】对象用于将SQL语句发送到数据库中,【ResultSet 】对象保存SQL语句执行的结果,
17、数据持久化是指将从数据库取出的数据进行封装,放在一个【对象 】里,目的是为了以后的使用更加高效,1 不必每次都从数据库里取数据。
18、ORM实现了Java应用中的对象到关系数据库中的表的自动的【持久化】,使用元数据描述对象与数据库间的映射。
19、持久化对象实际上必须对应数据库中的【实体】,与纯Java对象是有区别的。
20、XML数据岛技术可以有效的将【显示 】和【数据】分离
二、选择题
1.J2EE 中,【 A 】)类的【 】方法用于创建对话。
A. HttpServletRequest、getSession
C. HtttpSession、newInstance
B. HttpServletResponse、newSession
D. HttpSession、getSession
2.在Servlet里,能实现重定向的方法有【 E 】。
A.运用rvletRequest接口的sendRedirect方法
B.运用rvletResponse接口的sendRedirect方法
C.运用tDispatcher接口的forward方法
D.运用seDispatcher接口的forward方法
E.正确答案是B和C
3.利用MyEclipse开发Servlet,下列说法正确的是【 E 】。
A. MyEclipse可自动产生 B. MyEclipse不能自动产生,需要手工编写
C.可利用MyEclipse自带的Tomcat作为Servlet容器 D. MyEclipse没有自带Tomcat,需要自己安装配置。
E.正确答案是A和D
4.编写Servlet 的doPost方法时,需要抛出异常为[ A ]。
tException, IOException tException, RemoteException
rvletException, IOException rvletException, RemoteException
5.有关会话跟踪技术描述不正确的是【 BC 】。
是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端
B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期
C.在禁用Cookie时可以使用URL重写技术跟踪会话
D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示
6.以下【 A 】可用于检索session属性userid的值。
n. getAttribute (“userid”); n. setAttribute (“userid”);
t. getParameter (“userid”); t. getAttribute (“userid”);
7.有关Servlet的生命周期说法正确的有【 E 】。
t的生命周期由Servlet实例控制
()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象
e()方法响应客户端发出的请求 y()方法释放Servlet实例
E.正确答案是C和D
8.在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为【 A 】。
A..jsp文件 B..class文件 C..jar文件 文件
9.给定一个Servlet的代码片段如下: ( A )
Public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
____ __
n(“hi kitty!”);
();
}
2 运行次Servlet时输出如下:
hi kitty!
则应在此Servlet下划线处填充如下代码。
riter out = ter(); riter out = ter();
Stream out = putStream(); Stream out = ter();
10.在 J2EE中,便用 Resultset对象的 next()方法移动光标时,如果超过界限,就会抛出异常,则该异常通常是【 C 】。
uptedExceptlon yBoundExceptlon eption ePtlon
11.在J2EE中,对于Httpservlet类的描述,错误的是【 A 】。
A.我们自己编写的Servlet继承了Httpservlet类,一定需覆盖doPost或者doGet
rvlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法
rvlet类中处理客户请求和响应时所用的两个接口是:HttpServletRequest和HttpServletResponse.
D.我们自己编写的servlet继承了Httpservlet类,一般只需要覆盖doPost方法,不必覆盖servive()方法,因为一个service()方法会调用doPost或者doGet方法
12.Servlet中HttpServletResponse的【 C 】方法用来把一个Http请求重定向到另外的URL。
A. sendURL() B. redirectURL() C. sendRedirect() D. redirectResponse()
13.在J2EE中,在中,有如下代码:
上述代码定义了默认的会话超时时长,时长为30【 C 】。
A.毫秒 B.秒 C.分钟 D.小时
14.Servlet 可以在以下【 A 】三个不同的作用域存储数据。
A.请求、会话和上下文 B.响应、会话和上下文
C.请求、响应和会话 D.请求、响应和上下文
15.Servlet程序的入口点是:【 A 】
A.init() B.main() C.service() D.doGet()
16.在HTTP协议中,用于发送大量数据的方法是【 B 】。
A.get B.post C.put D.options
17.在JSP中,只有一行代码:<%=A+B%>,运行将输出( D)。(选择一项)
A.A+B C.113 D. 没有任何输出,因为表达式是错误的
18.在JSP中,<%=”1+4” %>将输出【 A 】。(选择一项)
A.l+4 B.5 C.14 D.不会输出,因为表达式是错误的
19.在JSP中,page指令的【 B 】属性用来引入需要的包或类。
s e tType
20.给定以下JSP代码片段,有2个客户依次浏览该JSP;且每个客户只浏览一次,第2个客户会看到浏览器显示【 B 】。
<%int x = 1; %>
<%!int x = 10; %>
X =< %= ++x%>
A.X = 1 B.X = 2 C.X = 10 D.X = 11
21.从HTTP请求中,获得请求参数,应该调用【 B 】。
t对象的getAttribute()方法 t对象的getParameter()方法
n对象的getAttribute()方法 n对象的getParameter()方法
3 22.下面关于JSP作用域对象的说法错误的是【 C 】。
t对象可以得到请求中的参数 n对象可以保存用户信息
ation对象可以被多个应用共享 D.作用域范围从小到达是request、session、application
23.在JSP页面中,保存数据的范围由小到大依次是【 C 】。
A. pageContext,request,application,session
ntext,application,session,request
ntext,request,session,application
ntext,session,request,application
24. 在JSP页面中,等效于HttpServletResponse的内置对象是【 B 】。
se t
25. 在JSP页面中,能够完成输出操作的内置对象是【 A 】。
se t
26.在JSP页面中,正确引入JavaBean的是【 C 】。
a) <%jsp: useBean id =”myBean” scope =”page” class=”” %>
b)
c)
d)
27.关于
a) 它可以包含静态文件
b) 它可以包含动态文件
c) 当它的flush属性为true时,表示缓冲区满时,将会被清空
d) 它的flush属性的默认值为true
28.在JSP中,对<jsp:setProperty>标记描述正确的是【 C 】。
a)
b) 就如同ribute()一样,来设计属性/值对
c) 和
d) 就如同ribute()一样,来设置属性/值对
29. 在JSP中,只有一行代码:${1+2},运行将输出【 B 】。
A. 1+2 B. 3 C. null D. 没有任何输出,因为表达式是错误的
30.编写自定义标签处理类后,需要编写一个【 B 】去描述。
A .tag文件 B .tld文件 文件 D. .xml文件
31.在J2EE中,标签库中文件(*.tld)存放在【 A 】目录下。
a) WEB—INF
b) WEB—INF/tags
c) WEB—INF/classes
d) WEB—INF/lib
32.核心标签库中,用来实现循环功能的标签是【 D 】。
A.
33.以下【 D 】个参数不属于
A. var B. begin C. end D.
34.以下哪个方法不是TagSupport类的方法:【 D 】。
delims
A. doPost() B. doStartTag() C. doEndTag() rBody()
35.如下代码,执行效果为【 C 】。
4
A.123 123 B. a 123 C. 123 a D. A a
36.以下【 C 】个标签实现了switch功能。
A.
37.EL表达式,${10 mod 3},执行结果为:【B 】
A . 10 mod 3 B. 1 C. 3 D. null
38.以下代码执行效果为【 B 】:
A.1 2 3 4 B. 1 3 5 C. i i i D. 15
39.以下哪句代码可以正确导入核心标签库:【 D 】。
A. <% page import = “c”%> B. <% page prefix = “c” uri = “/WEB-INF/”%>
C. <% taglib prefix = “c” import = “/WEB-INF/” %>
D. <% taglib prefix = “c” uri = “/WEB-INF/”%>
40.在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放【 C 】文件的(只选一项)。
A..jsp文件 B..class文件 C..jar文件 文件
三、简答题
1、简述Servlet和JSP的关系
答:JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。
2、简述Servlet的生命周期
答:Servlet的生命周期主要由3个过程组成,init()方法是服务器初始化Servlet,service()方法是初始化完毕,Servlet对象调用该方法响应客户的请求,destroy()方法是调用该方法消灭Servlet对象。
3、简述JSP的执行过程
答:①、首先客户端发出request请求;
②、JSP container将JSP转译成servlet源代码;
③、将产生的servlet的源代码经过编译后,并加载到内存执行;
④、把结果response到客户端;
4、synchronized关键字的功能?
答:功能是当前一个用户在执行该方法的时候,其他的拥护必须等待,直到该用户完成操作。
5、out对象有什么功能?和 有什么区别?
答:功能:把信息回送到客户端的浏览器中。
区别:是JSP代码,被服务器解释执行,在数据库中保存信息。
是JavaScript代码,被客户端浏览器解释执行,只是直接输入要打印的内容,没有保存信息。
6、applciation对象有什么特点?与session对象有什么联系和区别?
答:站点所有的用户公用一个application对象,当站点服务器开启的时候,application就被创建,直到网站5 关闭。
联系是:数据都被存储在服务器端,而且都可以保留一段时间。
区别是:每个用户有一个session,但是application是共有的。
7、编写JavaBean的时候,要注意哪些方面。
答:①.类中方法的访问属性必须是public的;
②.类中如果有构造方法,,那么这个构造方法也是public的,并且是无参数的;
③.对于boolean类型的成员变量,允许使用is代替get和set;
④.如果类的成员的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法:
Getxxx(),用来获取属性xxx;
Setxxx(),用来修改属性xxx。
8、什么是组件?使用组件有什么好处?
答:组件是自包含的,可重用的软件单元,是控件,对象等;
好处是对数据和方法进行了简单的封装。
9、简述基于Struts的MVC模型?
答:Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,作为一个MVC的框架,struts对模式(Model)、视图(View)和控制器(Controller)都提供了对应的实现组件
10、简述事务的基本概念,并说明如何在JDBC中实现事务。
答:、事务:是一些事件的集合,执行一条SQL语句可以理解成一个事件。事务中包含多个事件,只有每一个事件都能执行成功时,事务才执行,如有有任何一个事件不能成功执行,事务的其他事件也不能被执行。
首先利用“ocommit();”得到当前事务设定的值,保存到一个变量中,利用“ocommit;”将自动事务设置为false,这样如果不执行到()”语句,所有的SQL语句的执行结果都不能向数据库中提交。如果有异常发生在catch语句中则实现回滚“ck();”,这样就保证了事务的完整性。
11.、简述ORM的基本概念。
答:ORM实现了java应用中的对象到关系数据库中的表的自动的持久化,使用元数据描述对象与数据库间的映射。
12、简述PLJO与PO的概念。
答:POJO是用来与数据库表建立映射的Java文件;PO是在操作数据库时创建的对象。
13.、比较Hibernate与JDBC、EJB、JDO的优缺点。
答:JDBC:多数java开发人员用JDBC与数据库进行通信,它可以通过DAO模式进行改善和提高。但这种方式在大型应用程序中不容易操作使用,切维护起来相当困难。
EJB:EJB是数据持久化的一种技术,它是通过实体Bean来对数据进行 持久化的。但是很多的商业EJB容器的性能和技术支持不太好,在EJB中实现JDBC也比较复杂。
JDO:JDO的出现似乎有了一些改观,但是,JDO没有一个好的开源免费实现。好的产品都是商业产品,并且在国内没有销售和技术支持。JDO也不是一个轻量级封装,它建立的持久层框架很不完善,再加上JDO的标准还是很不完善及严重的产品分裂问题,使得很多操作方式很烦琐。
Hibernate:不需要任何容器,提供简单易用的API,也解决了JDO的很多缺陷。透明地提供对象与关系数据库的映射,以统一的接口方式支持多种数据库;复杂的缓存机制和所定策略,使针对数据库操作大大减少;开源免6 费的License,可以在需要的时候研究源代码,改写源代码,进行功能的定制;轻量级封装,避免引入过多复杂的问题,容易调试,减轻程序员的负担;具有可扩展性,API开放,当本身功能不够用的时候,可以自行编码扩展;开发者活跃,产品有稳定的发展保障。
7


发布评论