JSP试题及答案.docx
《JSP试题及答案.docx》由会员分享,可在线阅读,更多相关《JSP试题及答案.docx(21页珍藏版)》请在冰豆网上搜索。
JSP试题及答案
您所在位置:
编程爱好者网站—编程爱好者论坛—《JSP应用教程》习题参考答案
原帖地址:
主题:
《JSP应用教程》习题参考答案
作者:
jlnuboylzj 发表时间:
2006-7-214:
23:
00
楼主
出版社:
清华大学出版社, 北京交通大学出版社
B/S架构基础编程3姐妹之二:
1、《ASP精解案例教程》
2、《JSP应用教程》
3、《ASP.NET应用教程》
第一部分 Web编程基础与环境配置
第1章 JSP应用开发体系与环境配置
1-1 简述B/S和C/S架构的特点以及B/S架构有那些开发语言。
B/S架构编程语言分成浏览器端编程语言和服务器端编程语言。
浏览器端包括:
HTML(Hypertext Markup Language,超文本标记语言)、CSS(Cascading Style Sheets,层叠样式表单)、JavaScript语言和VBScript语言。
为了实现一些复杂的操作,比如:
连接数据库,操作文件等,需要使用服务器端编程语言。
目前主要是3P(ASP、JSP和PHP(Personal Home Page))技术。
2000年以前,C/S结构占据开发领域的主流,随着B/S结构的发展,C/S结构已经逐步被B/S结构取代。
值得一提的是两门经典的开发语言:
C++和Java,这两门语言覆盖了该领域85%以上的项目。
虽然Java如日中天,但是C++在开发领域中老大的位置,始终不变
1-2 图示三层架构,并说明其特点,如何实现,每层实现什么功能?
(企业笔试题)
在两层应用中,应用程序直接同数据库进行对话。
三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常这个层叫做“商务逻辑层”,如图
在“商务逻辑层”,如果第一层和第二层在不同的计算机上,通常该层利用的技术是EJB(Enterprise JavaBean)技术、CORBA(Common Object Request Broker Architecture)技术和DCOM技术(Distributed Component Object Model,分布式组件对象模型)。
在Java企业应用领域中,表示逻辑层通常可以是HTML、Applet和JSP,商务逻辑层一般利用EJB来实现
1-3 Java包含哪三个版本,每个版本有什么功能,各个版本的应用领域?
SUN以J2EE为核心推出SUN-ONE(SUN Open Network Environment)战略,该战略包括三个部分:
J2SE(Java 2 Standard Edition,Java 2标准版)、J2ME(Java 2 Micro Edition,Java 2微型版)和J2EE。
J2SE主要:
用于创建典型的桌面与工作站应用的Java平台。
从配置上来说,只要安装JDK(Java Development Kit),就建立了一个J2SE开发和运行平台。
J2ME主要用于创建嵌入式应用程序(如PDA、仪表),J2ME开发平台需要J2SE平台的支持。
开发领域包括:
高端的信息家电,比如:
电视机顶盒,网络电视和网络可视电话等,低端的信息家电,比如手机,寻呼机和PDA等。
J2EE的任务是提供一个平台独立的、便携式、多用户、安全以及标准的企业级平台,服务器端部署用Java技术来完成。
J2EE主要用于创建可扩展的企业应用,包括13种核心技术规范
1-4 名词解释:
EJB JNDI RMI。
EJB(Enterprise Java Bean,企业级JavaBean)J2EE体系的最核心技术是EJB,提供了一个框架来开发分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用的开发
JNDI(Java Naming and Directory Interface,Java命名和目录接口)JNDI用于名字和目录服务,提供了一致的接口来存取和操作企业级的资源,如DNS(Domain Name Service)和本地文件系统等
RMI(Remote Method Invocation,远程方法调用)RMI是在远程对象上调用一些方法,使用了连续的方式在客户端和服务器端传递数据,RMI是EJB技术基础
1-5 在J2EE中,图示Web服务器、EJB容器(区分实体Bean和会话Bean)和DB服务器的信息传递结构。
1-6 在自己的电脑上配置一个Tomcat服务,端口号为:
8888(上机完成)
参考书1.6小结
第2章 Web编程技术
2-1. 如何在网页中设置字体?
有哪些字体可以使用?
处理文字时通常利用如“ xx”的标记,定义字符xx的字体显示为隶书,字号是40,颜色是红色。
文字标记中,Face属性的功能是设置字体,双击“控制面板”中的“字体”,可以看到可以引用字体的名称,这些字体的名称都可以给FACE属性赋值
2-2. 如何引入一张图片?
如何给图片加上边框?
利用“”格式可以插入一张图片,myimage.jpg文件必须和该HTML文件放在同一个目录下。
IMG是HTML的一个标记,是IMAGE的缩写;SRC属性给出要连接的图片的路径和文件名
这里的300和200都是没有单位的,默认是象素px。
使用IMG标记将myimage.jpg图片插入到HTML的文档中,WIDTH属性和HEIGHT属性分别设置该图片的宽度和高度,单位是像素。
要去掉图片的黑框,只要将BORDER属性设置为0就可以了
2-3. 如何使用超级链接?
如何将超级链接的下划线去掉?
使用超级链接的基本的语法是:
XX。
XX是一个超级链接,连接到Address.htm文件;是单词Anchor的缩写,中文的意思是“锚”,功能是从一个页面链接到另一个页面;属性HREF定义的是链接到哪一页
可以指定A标记以不同的方式显示。
一个超级链接有几种不同的状态:
未被访问链接(Link)、已访问链接(Visited)和鼠标移动过(Hover)。
可以定义超级链接文字的颜色,可以定义字体的大小,一般超级链接都有下划线,可以利用“TEXT-DECORATION:
NONE”将超级链接的下划线去掉
2-4. 如何定义跨行的表格?
如何将表格的字体和边框的距离加大?
定义一个三行两列的表格
利用ROWSPAN属性设置该单元格占用多行,利用COLSPAN属性设置该单元格是占用多列
Cellpadding和Cellspacing属性的使用方法。
Cellpading的意思是单元格的边距,指的是字与单元格边框的距离。
Cellspacing的意思是单元格间距,指的是单元格之间的距离
2-5. 框架有几种基本形式?
如何使用?
设计网页时,经常用到的一种格式是框架。
基本网页框架分成两种,左右框架和上下框架
基本框架是上下框架,上面占20%,下面占80%。
的意思是:
框架的名称是top,放入的HTML网页是top.htm,而且不可改变大小
2-6. 加载CSS样式的方式有哪些?
使用CSS来格式化网页,共有三种方式:
在HEAD中引用、在BODY中引用和作为文件来引用
只要在HEAD标记中加上STYLE标记就可以了,然后在其中定义各种标记的显示样式。
在BODY中实现主要是在标记中引用,只要将定义在STYLE标记中的值拿到对应的标记中就可以了,
可以将HEAD中定义的样式另存成一个文件。
CSS作为一个外部文件引入的方式有两种,一种是做链接,另一种是导入。
首先将STYLE标记中的内容存成一个文件
2-7. 编写E-mail注册的表单。
(上机练习)
在常用的表单制作过程中,经常遇到的是按钮制作、输入元素的制作等。
常见的表单控件包括文本框、文本域、密码框、多选框、单选框和下拉列表框,等等。
除了文本域和下拉列表,其他只要修改TYPE属性就可以了,使用方法如程序2-11.htm所示。
案例名称:
表单中常用控件
程序名称:
2-11.htm
姓名:
密码:
性别:
男
女
血型:
O
A
B
AB
性格:
热情大方
温柔体贴
多情善感
文件:
简介:
城市:
北京市
上海市
南京市
需要注意的是:
程序中单选框分成两个组,一个是性别,另一个是血型,同一组必须用同样的名字,如果某一个默认选中,只要加上CHECKED属性就可以了。
两个比较特殊的元素是下拉列表和文本域,它们使用的HTML标记是TEXTAREA和SELECT。
程序显示的结果如图2-11所示。
图2-11 表单中常用控件
2
25:
第1楼
-8. 编写程序统计1到50中所有偶数的和。
(分别用for和while语句实现)
while 语句
2-34.htm
var iSum = 0;
var i = 0;
while( i<=100 )
{
iSum += i;
i++;
}
document.write(iSum);
for 语句
2-33.htm
for(var i = 0; i <= 100; i++)
2-9. 编写程序实现:
取系统时间,如果时间在6:
00-12:
00之间,输出“早上好”;如果时间在12:
00-18:
00,输出“下午好”;如果时间在18:
00-24:
00之间,输出“晚上好”;如果时间在0:
00-6:
00,输出“凌晨好”。
参考案例2-4 ,利用if语句对时间进行判断。
2-10. 在字符串“I am a girl, I like dancing!
”的每个字符之间加上一个字符“#”,输出字符为:
“I# #a#m# #a# #girl#,# #I# #like# #d#a#n#c#i#n#g#!
”,并统计“#”的个数。
使用字符串处理函数
string.htm
var str = "I am a girl, I like cat"
var iCount = 0;
for( i = 0; i < str.length; i++)
if(str.charAt(i) == "a")
iCount++;
document.write(iCount);
参考该程序,如果得到空格,就将其换成#。
第3章 Java程序设计基础
3-1 简述Java语言的核心机制。
Java语言包含三种核心机制:
Java 虚拟机、垃圾收集机制和代码安全检测。
1、Java 虚拟机(Java Virtual Machine,JVM)
在一台计算机上由软件或硬件模拟的计算机。
Java虚拟机读取并处理经编译过的平台无关的字节码class文件。
2、垃圾收集机制(Garbage collection)
在C/C++ 等语言中,由程序员负责回收无用内存。
Java语言解除了程序员回收无用内存空间的责任。
它提供一种系统级线程跟踪存储空间的分配情况。
并在JVM的空闲时,检查并释放那些可被释放的存储器空间。
垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。
3、代码安全性检测(Code Security)
Java执行代码的时候,由JVM对运行的代码进行安全性检测,当进行一些非法操作的时候,比如修改一些系统设置的时候,JVM会发出警告。
3-2 比较基本数据类型和引用数据类型的区别。
Java 语言共有八种基本数据类型:
四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean)。
Java语言中除8种基本数据类型以外的数据类型称为引用类型,也叫做复合数据类型。
在程序中声明的引用类型变量只是为该对象起的一个名字,或者说是对该对象的引用,变量的值是对象在内存空间中的存储地址而不是对象本身,这就是称之为引用类型的原因
3-3 Java的访问修饰符有几种,各具有什么限定作用?
Java语言为对类中的属性和方法进行有效的访问控制,将他们分为四个等级:
private,default,protected和public修饰符,具体规则如表3-6所示。
表3-6 Java类成员的访问控制
可否直接访问控制等级 同一个类中 同一个包中 不同包中的子类中 任何场合
private Yes
default Yes Yes
protected Yes Yes Yes
public Yes Yes Yes Yes
26:
第2楼
3-4 构造函数有什么作用?
简述重载构造函数的好处。
构造函数也叫构造方法,是Java类中的一种特殊方法,其功能是创建其所属类型的一个新的对象。
声明构造方法的语法规则如下:
< modifiers> ([< argu_list>]) {
[< statements>]
从中可以看到,构造方法与普通方法在声明上的区别是,构造方法没有返回值类型、构造方法必须取和所属类相同的名字。
在定义Java类时可以根据需要定义一个或多个构造方法,通常在构造方法中进行一些初始化工作。
3-5 简述super、static和final的功能和作用。
如果子类中发生了方法重写,那么子类对象能调用父类中重写前的方法,Java语言允许在子类中使用关键字super来引用父类的方法。
在Java类中声明属性和方法时,可使用关键字static做为修饰符。
static标记的变量或方法由整个类共享,如访问控制权限允许,可不必创建该类对象而直接用类名加‘.’调用。
在Java中声明类、属性和方法时,可使用关键字final来修饰。
final所标记的成分具有“终态”的特征,其具体规定如下:
l final标记的类不能被继承。
l final标记的方法不能被子类重写。
l final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
3-6 集合元素:
集合、散列表和枚举的特点和作用。
常用的集合元素有:
向量(Vector)、枚举(Enumeration)、散列表(Hashtable)和属性(Properties)等
向量(Vector)不要求每个元素的类型相同,向量中可以混合多种数据类型。
向量可以在增加元素时动态增大。
向量提供了集合内容的顺序访问,散列表可以对集合内容进行随机访问,散列表提供的主要方法及其说明为。
l 用put(Object key,Object value)加进关键字/数值对
l 用get(Object key)取得一个关键字的值
枚举也可以存放许多元素。
一般用来存储其他集合的返回值。
3-7 关键字throw和throws的区别?
可以利用throw关键字自己抛出异常。
Throws一般在定义函数的时候使用,表明函数被调用的时候要抛出异常。
3-8 Java实现线程有几种方式,各有什么优点?
(企业面试题)
创建线程有两种方式:
使用Runnable接口和继承Thread类。
使用Runnable接口的实现类来提供线程体,这是创建线程的基本方式。
还可以采用直接继承Thread类、重写其中的run()方法并以之作为线程体的方式创建线程,
两种创建线程方式的有两方面的区别。
l 使用Runnable接口创建线程时可以将CPU,代码和数据分开,形成清晰的模型。
线程体run()方法所在的类还可以从其他类继承一些有用的属性或方法,并有利于保持程序风格的一致性。
l 直接继承Thread类创建线程时,Thread子类无法再从其他类继承。
但这种情况编写简单,run()方法的当前对象就是线程对象,可直接操纵。
第二部分 JSP程序设计基础
第4章 JSP页面元素与内置对象
4-1. 有几种方法实现页面的跳转,如何实现?
jsp:
forward操作指令用于把当前的JSP页面转发到另一个页面上。
基本语法为:
“forward page="test2.jsp"/>”,使用该功能时,浏览器的地址栏中地址不会发生任何变化。对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。相应的代码格式为:“response.sendRedirect("URL地址"); 作者:jlnuboylzj 发表时间:2006-7-214:27:00 第3楼 4-2 synchronized关键字有什么功能?,一般会在函数前面加上synchronized关键字,功能是当前一个用户在执行该方法的时候,其他的用户必须等待,直到该用户完成操作4-3. out对象有什么功能,out.print和document.write有什么区别?out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息回送到客户端的浏览器中。在out对象中,最常用的方法就是print()和println()。在使用print()或println()方法时,由于客户端是浏览器,因此向客户端输出时,可以使用HTML中的一些标记,例如:“out.println("Hello,JSP");
forward page="test2.jsp"/>”,使用该功能时,浏览器的地址栏中地址不会发生任何变化。
对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。
相应的代码格式为:
“response.sendRedirect("URL地址");
27:
第3楼
4-2 synchronized关键字有什么功能?
,一般会在函数前面加上synchronized关键字,功能是当前一个用户在执行该方法的时候,其他的用户必须等待,直到该用户完成操作
4-3. out对象有什么功能,out.print和document.write有什么区别?
out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息回送到客户端的浏览器中。
在out对象中,最常用的方法就是print()和println()。
在使用print()或println()方法时,由于客户端是浏览器,因此向客户端输出时,可以使用HTML中的一些标记,例如:
“out.println("
out.print是JSP代码, 被服务器解释执行。
Document.write是JavaScript代码,被客户端浏览器解释执行。
4-4. 如何获得获得客户端的IP地址?
利用request对象可以获得客户提交的信息,比如:
JSP文件目录、客户端的地址、以及服务器的端口等、
获取客户的IP地址:
<% String IP=request.getRemoteAddr();
out.println(IP);%>
4-5. application对象有什么特点?
和session对象有什么联系和区别?
站点所有的用户公用一个application对象,当站点服务器开启的时候,application就被创建,直到网站关闭。
可以使用Session 对象存储用户登录网站时候的信息。
当用户在页面之间跳转时,存储在Session对象中的变量不会被清除
联系是:
数据都存储在服务器端,而且都可以保留一段时间。
区别是:
每个用户有一个session,但是application是共有的。
4-6. 程序如何向浏览器写入Cookie集合,如何从浏览器端读取Cookie集合。
Cookie对象是由Web服务器端产生后被保存到浏览器中的信息。
Cookie对象可以用来保存一些小量的信息在浏览器中。
目前主流的浏览器(Internet Explorer和Netscape Navigator)都支持Cookie。
写入Cookie
4-25.jsp
<%@ page contentType="text/html;charset=GBK" %>
<%
String strName = "Zhourunfa";
Cookie c = new Cookie("Name1", strName);
response.addCookie(c);
%>
读出Cookie
4-26.jsp
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1