JSP程序设计复习资料(完成)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSP程序设计复习资料
一、选择题
1.JSP页面以( B)为扩展名进行保存。
A .jps
B .jsp
C .java D. .JSP
2.在JSP中如果要导入 java.io.* 包,应该使用( A )指令。
A. page
B. taglib
C. include
D. forward
3.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的( D)属性。
A. Exception
B. isErrorPage
C. error
D. errorPage
5.使用response对象进行重定向时使用的方法为( B )。
A.getAttribute( )
B. sendRedirect( )
C. setContentType( )
D. setAttribute( ) 6.如果把用户名变量UserName放在session对象中,下面语句正确的是( D) A.session.setName(UserName) B. session.setName(“name”,UserName) C. session.setAttribute(UserName) D. session.setAttribute(“name”,UserName) 7.在JSP中,test.jsp文件中有如下一行代码:
<jsp:useBean id=”user” scope=”_____” type=”erBean”/> 要使user 对象中一直存在于对话中,直至其终止或被删除为止,下划线中应填入( C )。
A.page
B.request
C.session
D.application
8.在JSP中,使用<jsp:useBean>动作可以将javaBean嵌入JSP页面,对JavaBean 的访问范围不能是( C )。
A. page
B. request
C. response
D. application
9.在JSP中,( A )动作用于将请求转发给其他JSP页面。
A.forward
B.include
eBean
D.setProperty
10.JSP中使用<jsp:getProperty>标记时,不会出现的属性是:(C)。
B.property
C.value
D.以上皆不会出现
11.在<c:choose>标记中包含哪个标记( D )?
A.case
B.choose
C.check
D.when
12.下面哪个标记产生的结果同<%=var%>( C )。
A. <c:set value=var>
B. <c:var out=${var}>
C. <c:out value=${var}>
D. <c:out var="var">
13.每次传递请求或响应时调用Filter的( B )方法。
A.init()
B.doFilter()
C.destroy()
D.getInitParameter
14.Struts Bean的( B )标记检索Web应用程序资源的结果。
A.define
B.include
C.message
D.page
15.Servlet程序的入口点是:(A )
A.init()
B.main()
C.service()
D.doGet()
二、填空题
2.指令元素分为三种:它们分别是:Page 、Include 、和Taglib。
3. JDBC的主要任务是:与数据库建立连接、发送SQL语句、处理结果。
4. Servlet的生命周期分三个时期:装载Servlet、创建一个Servlet实例、销毁。
5.在JSP中,当执行了查询操作时,一般将查询结果保存在 ResultSet 对象中。
6.在JSP规范中,可以使用两种格式的注释:一种是输出注释;别一种是隐藏
注释。
7.在JSP内置对象中,与请求相关的对象是 Request 对象。
8.客户端向服务器端提交数据的方式通常有两种:一种是Get提交方式;另一种是Post提交方式。
9.在JSP中,可以使用 <jsp:SetProperty> 操作来设置Bean的属性,也可以使用<jsp:GetProperty> 操作来获取Bean的值。
11. JDBC中为Statement接口提供了3种执行方法,它们是:executeUpdate方法、executeQuery方法、execute方法。
12.取表单(<form>)提交的参数,通常使用的内部对象是request ,方法是 getParameter 。
三、简单题
1. Jsp工作原理是什么?
答:当我们访问一个JSP页面的时候,这个文件首先会被JSP引擎翻译为一个Java源文件,其实就是一个Servlet,并进行编译,然后像其他Servlet一样,由Servlet引擎来处理。
Servlet引擎装载这个类,处理来自客户的请求,并把结果返回给客户。
4. 说明MVC设计模式中,M、V、C分别代表什么,有什么作用。
答案:
M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。
V 代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以某种形式展现给用户。
视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过不同的显示形式或视图展现给用户。
C代表Controller(控制器),该组件主要负责用户与软件之间的交互操作,控制模型状态变化的传播,以确保用户界面与模型状态的统一。
5.简述使用JDBC技术的主要步骤?
答案:
1.注册和加载驱动器;
2.与数据库建立连接;
3.发送SQL语句;
4.处理结果;
5.关闭连接;
四、编程题
1.编写JSP页面分别显示1—10之间各数字的阶乘。
答案:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<HEAD>
<TITLE>阶乘(Factorial)</TITLE>
</HEAD>
<BODY> <FONT size=4>
<%! long Factorial(int n){
int sum=1;
for(int i=1;i<=n;i++){ sum=sum*i; }
return sum;
}
%>
<P>1到10之间的各数字的阶乘</P>
<%
long sum;
for(int j=1;j<=10;j++){
sum=Factorial(j);
out.print("<BR>"+j+"!="+sum);
}
%>
</BODY>
</HTML>
2.创建一个名为worker.java的Bean,用来描述工人的信息,分别是姓名,工号,身高,体重,在一个名为work.jsp的页面中使用这个Bean,通过<jsp:setProperty>动作设置Bean的各个属性,通过<jsp:getProperty>动作显示出Bean的各个属性的值。
答案: Work.java package ccc;
public class Worker {
String name=null; long number;
double height,weight;
public String getName(){ return name; }
/*public String getName(){
try{
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
return name;
}catch(Exception e){ return name; }
}*/ 与上面的getName( )函数二选一
public void setName(String newName){ name=newName; }
public long getNumber(){ return number; }
public void setNumber(long newNumber){ number=newNumber; }
public double getHeight(){ return height; }
public void setHeight(double newHeight){ height=newHeight; }
public double getWeight(){ return weight; }
public void setWeight(double newWeight){ weight=newWeight; }
}
Work.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan>
<Font size=4>
<jsp:useBean id="zhang" class="ccc.Worker" scope="page" >
</jsp:useBean>
<jsp:setProperty name= "zhang" property="name" value="张小三" />
<P>名字是:
<jsp:getProperty name= "zhang" property="name" />
<jsp:setProperty name= "zhang" property="number" value="1999001"/>
<P>工号是:
<jsp:getProperty name= "zhang" property="number" /> <% double height=1.70; %> <jsp:setProperty name= "zhang" property="height" value="<%=height+0.05%>" /> <P>身高是:
<jsp:getProperty name= "zhang" property="height" /> 米
<jsp:setProperty name= "zhang" property="weight" value="67.65" />
<P>体重是:
<jsp:getProperty name= "zhang" property="weight" /> 公斤
</FONT>
</BODY>
</HTML>
一、选择题
1.在传统的HTML页面中加入(D)就构成了一个JSP页面文件。
A、JA V A程序片
B、JSP标签
C、用“<%”、“%>”标记符号括起来的程序
D、JAV A程序片和JSP标签
2.配置JSP运行环境,若WEB应用服务器选用TOMCAT,以下说法正确的是:(B)
A、先安装TOMCA T,再安装JDK
B、先安装JDK,再安装TOMCAT
C、不需安装JDK,安装TOMCA T就可以了
D、JDK和TOMCA T只要都安装就可以了,安装顺序没关系
3.对于“<%!”、“%>”之间声明的变量,以下说法正确的是:(B)
A、不是JSP页面的成员变量
B、多个用户同时访问该页面时,任何一个用户对这些变量的操作,都会影响到其他用
户
C、多个用户同时访问该页面时,每个用户对这些变量的操作都是互相独立的,不会互
相影响
D、是JSP页面的局部变量
4.在客户端浏览器的源代码中可以看到(B)
A、JSP注释
B、HTML注释
C、JSP注释和HTML注释
D、JA V A注释
5.page指令的作用是:(A)
A、用来定义整个JSP页面的一些属性和这些属性的值
B、用来在JSP页面内某处嵌入一个文件
C、使该JSP页面动态包含一个文件
D、指示JSP页面加载Java plugin
6.page指令的import属性的作用是(C)
A、定义JSP页面响应的MIME类型
B、定义JSP页面使用的脚本语言
C、为JSP页面引入JA V A包中的类
D、定义JSP页面字符的编码
7.(C)可在JSP页面出现该指令的位置处,静态插入一个文件。
A、page指令标签
B、page指令的import属性
C、include指令标签
D、include动作标签
8.以下对象中的(D )不是JSP的内置对象。
A、request
B、session
C、application
D、bean
9.在JSP中,内置对象(B)封装了用户提交的信息,使用该对象可以获取用户提交
的信息。
A、session
B、request
C、response
D、out
10.request对象可以使用(A)方法获取表单中某输入框提交的信息。
A、getParameter(String s)
B、getValue(String s)
C、getParameterNames(String s)
D、getParameterValue(String s)
11.JSP的内置对象中(A)对象可对客户的请求作出动态响应,向客户端发送数据。
A、response
B、request
C、application
D、out
12.从(A )开始,到()结束,被称为一个会话。
A、访问者连接到服务器,访问者关闭浏览器离开该服务器
B、服务器启动,服务器关闭
C、访问者连接到服务器,服务器关闭
D、服务器启动,访问者关闭浏览器离开该服务器
13.以下方法,哪个可使session无效?(B)
A、session.removeAttribute(String key)
B、session.invalidate()
C、session.setAttribute(String key)
D、session.getAttribute(String key)
14.application对象能在(D)间共享。
A、某个访问者所访问的当前页面
B、某个访问者所访问的网站的各个页面之间
C、该服务器上的所有的访问者的所有jsp页面
D、该服务器上的所有的访问者的所有jsp页面和Java程序
15.以下关于File对象的public boolean delete()方法的说法,错误的是:(C)
A、可以删除当前对象代表的文件
B、若当前对象代表的是一个空目录,则可删除该目录
C、可删除当前对象代表的目录及该目录下包含的所有子目录和文件
D、若当前对象代表的是一个目录,且该目录下还有文件存在,则无法删除该目录
16.对数据库表中记录的字段值进行更新,可以使用(B)方法
A、executeQuery()
B、executeUpdate()
C、next()
D、getConnection()
17.在JSP页面中使用beans,我们必须使用JSP动作标签( A )。
A、useBean
B、useBeans
C、Beans
D、JavaBeans
18.当useBean标签中的scope属性取值page时,该beans的有效范围是(B)。
A、当前客户
B、当前页面
C、当前服务器
D、所有客户
19.当useBean标签中的scope属性取值(C )时,该beans的有效范围是访问者的会话
期间。
A、request
B、page
C、session
D、application
20.如果表单使用POST方式进行提交,则Servlet可使用(B)方法对来对应处理用户
的请求。
A、Post
B、doPost
C、service
D、init
21.以下关于Servlet的说法正确的是:(A)
A、Servlet可以获取用户的session会话
B、Servlet不能对数据库表进行操作
C、Servlet不能对文件进行读写操作
D、Servlet不能获取用户的session会话
22.JSP程序段的基本语法是(C)。
A、VBScript语言语法
B、JavaScript语言语法
C、Java语法语言
D、C语言语法
23.下列哪一种不是JSP页面的组成元素.(D)
A、JSP标签,如指令标签
B、普通的HTML标记符
C、Java表达式
D、C语言程序
24.在一个JSP页面中不可以出现的注释形式为(B)
A、<!-- 注释内容-->
B、@rem 注释内容
C、// 注释内容
D、<%-- 注释内容--%>
25.request.getRemoteAddr()方法的作用是:(B)
A、获取客户提交的信息
B、获取客户的IP
C、获取客户机的名称
D、获取服务器的IP
26.当(C)时,JSP引擎产生一个session对象。
A、web应用服务器启动时
B、当web应用服务器启动后,第一个客户来访时
C、当每个客户首次访问服务器上的一个JSP页面时
D、当每个客户首次访问服务器上的一个JSP或HTML页面时
27.当(A )时,JSP引擎产生一个application对象。
A、web应用服务器启动时
B、当web应用服务器启动后,第一个客户来访时
C、当每个客户首次访问服务器上的一个JSP页面时
D、当每个客户首次访问服务器上的一个JSP或HTML页面时
28.JDBC是Java数据库连接API,以下说法中哪个是不正确的?(C)
A、与一个数据库建立连接
B、向数据库发送SQL语句
C、建立ODBC数据源
D、处理数据库返回的结果
29.查询数据库得到的结果集中,游标最初定位在(B)。
A、第一行
B、第一行的前面
C、最后一行
D、最后一行的后面
30.以下关于JavaBeans的说法中,错误的是(B)。
A、JavaBeans是基于JA V A语言的。
B、JavaBeans是JSP的内置对象之一。
C、JavaBeans是一种Java类。
D、JavaBeans是一个可重复使用的软件组件。
31.beans属性的值可以通过3种方式进行修改,以下哪种方法是不正确的?(A)
A、通过response的方法来设置。
B、将beans属性的值设置为一个表达式的值或字符串。
C、通过表单的参数值来设置beans的相应属性的值。
D、通过request的参数值来设置beans相应属性的值。
32.以下哪种方法不是Servlet的方法?(D )
A、init
B、service
C、destroy
D、post
33.在编译Servlet或Javabean时,我们使用(A)命令。
A、Javac
B、Java
C、Servlet
D、以上三种都不对
34.当(C)时,JSP引擎将消灭某一个session对象。
A、有新客户访问时
B、web应用服务器启动后,第一个客户来访时
C、该session对应的客户关闭浏览器或调用invalidate方法时
D、该session对应的客户刷新jsp页面时
35.从“员工” 表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确:
(D )
A、Select * from员工where 姓名=‟_玛丽_‟
B、Select * from员工where 姓名=‟%玛丽_‟
C、Select * from员工where 姓名like …_玛丽%‟
D、Select * from员工where 姓名like …%玛丽%‟
36.1、下面哪一个不是JSP本身已加载的基本类?(B)
A、ng.*
B、java.io.*
C、javax.servlet.*
D、javax.servlet.jsp.*
37.对于预定义<%!预定义%>的说法错误的是:(C)
A、一次可声明多个变量和方法,只要以“;”结尾就行
B、一个声明仅在一个页面中有效
C、声明的变量将作为局部变量
D、在预定义中声明的变量将在JSP页面初始化时初始化
38.下述选项中不属于JDBC基本功能的是:(D)
A、与数据库建立连接
B、提交SQL语句
C、处理查询结果
D、数据库维护管理
39.在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:(C)
A、name
B、property
C、value
D、以上皆不会出现
40.Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:
(D)
A、<%@ page %>作用于整个JSP页面。
B、可以在一个页面中使用多个<%@ page %>指令。
C、为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须
的。
D、<%@ page %>指令中的属性只能出现一次。
41.在JSP中调用JavaBean时不会用到的标记是:(A)
A、<javabean>
B、<jsp:useBean>
C、<jsp:setProperty>
D、<jsp:getProperty>
42.关于JavaBean正确的说法是:(A)
A、Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写
B、在JSP文件中引用Bean,其实就是用<jsp:useBean>语句
C、被引用的Bean文件的文件名后缀为.java
D、Bean文件放在任何目录下都可以被引用
43.Servlet程序的入口点是:(A)
A、init()
B、main()
C、service()
D、doGet()
44.不能在不同用户之间共享数据的方法是(A)
A、通过cookie
B、利用文件系统
C、利用数据库
D、通过ServletContext对象
45.要访问Bean中名为jsp的属性,应该使用的方法是:(B)。
A、getjsp
B、getJsp
C、get_jsp
D、JSP
46.下面语句与<jsp:getProperty name=”aBean”property=”jsp”/>等价的是:(C)。
A、<% =jsp()$>
B、<% out.print(aBean,getjsp())%>
C、<% =aBean.getJsp()%>
D、<% =aBean.getjsp%>
47.在下列情况下,page作用域Bean的所有改变都将丢失的是:(D)。
A、仅在该页面被删除时
B、仅在该页面被更新时
C、当该页面在打开时
D、当该页面在关闭时
48.具有application作用域Bean可以被实例化( A )。
A、1次
B、2次
C、3次
D、很多次
49.如果要在JavaBean组件中封装对数库的操作,下列说法正确的是:(B)。
A、首先创建resultSet,再创建statement和connection
B、首先创建connection,再创建statement和resultSet,返回statement
C、首先创建resultSet,再创建statement和resultSet,返回resultSet
D、首先创建statement,再创建resultSet和connection
50.作用域不属于页面范围的内置对象是:(A )
A、request
B、out
C、exception
D、config
51.在表单提交时使用的是GET方法,则服务器端要获得表单中username所提交的数据应
使用(A)。
A、request.getP arameter(“username”)
B、request.getParameterNames(“username”)
C、request.form(“username”)
D、request.getParameterValues(“username”)
52.要在客户端设置一个请求报头实现每1分钟自动更新一次,应使用语句(D)。
A、response.setHeader(“T imeout”,”1”)
B、response.setHeader(“Refresh”,”1”)
C、response.setHeader(“T imeout”,”60”)
D、response.setHeader(“Refresh”,”60”)
53.要使浏览器重定向到新的页面,则应使用语句(A)。
A、response.sendRedirect()
B、response.sendError()
C、out.Transfer
D、request. sendRedirect()
54.下列类或接口中,负责加载数据库驱动程序的是:(B)。
A、Driver
B、DriverManager
C、Connection
D、Statement
55.下列类或接口中,用于向数据库提交SQL语句的是:(D)。
A、CallableStatement
B、PreparedStatement
C、Connection
D、Statement
56.下列类或接口中,能够执行预编译SQL语句的是:(B)。
A、CallableStatement
B、PreparedStatement
C、Connection
D、Statement
57.要从JSP连接到某数据库,需要首先完成的任务是:(A)。
A、加载JDBC驱动程序
B、定义连接URL
C、创建一个Statement对象实例
D、获取一个Resultset对象实例
58.下列关闭数据库连接的顺序正确的是;(B)
A、先关闭Statement,再关闭Resultset,最后关闭Connection
B、先关闭Resultset,再关闭Statement,最后关闭Connection
C、先关闭Resultset,再关闭Connection,最后关闭Statement
D、先关闭Statement,再关闭Connection,最后关闭Resultset
59.下列(B)对象经常用来制作网页计数器。
A. Response
B. Application
C. Request
D. Session
60.用于设置服务器响应的HTTP内容类型,应使用Response对象的( A )属性来实现。
A. ContenType
B. Expires
C. Buffer
D. Status
二、填空题
1.JSP指令元素主要有3种类型的指令,即page 、taglib和include 。
2.动作元素与指令元素不同,_动作元素__是在客户端请求时期动态执行的,每次有客户
端请求时,可能都会被执行一次;而指令元素_是在编译时期执行的,它只会被编译一次。
3.在JSP中提供了9个内置对象,分别是request对象、response、out对象、session对
象、___application__、config对象、exception对象、page对象和_cookie__。
4.在提交表单时有两种不同的提交方法,分别是POST和__get__。
5.在JSP中实现客户端和服务器的会话可使用session实现。
6.每一个内置对象都映射到一个特定的Java类或接口,其中_request__是
HttpServletRequest类型对象;_page__是一个javax.server.jsp.HttpJspPage类型对象。
7.在JSP中的4个使用范围分别是page、request、_session__和application。
其中request
范围由上下文环境中的所有JSP页面访问。
8.要设置一个名为jsp的Bean属性,set方法应该是setJsp。
9.JavaBean的4种作用域分别是:page、request、__session____和__application__,其中
的、生命周期最短的是request,动作标记默认具有作用域page。
10.在JSP中函数的定义必须放在<%! %> 中。
关键字return 用于函数中进行返回。
11.page 指令定义JSP文件中的全局属性,它描述了与页面相关的指令信息。
12.page指令的import 属性指明想要引入的包和类。
13.page指令的contentType属性用于设置JSP文件和最终文件的MIME类型和字符集的
类型。
14.include指令可用于包含另一个文件。
15.request对象包含了来自浏览器请求的相关信息,并且提供了用于获取Cookie、header
和请求相关的参数值等数据的有效方法。
16.response 对象将JSP处理后的结果传回到客户端(如Cookie、header信息等),它提
供了用于将数据送回到浏览器的方法。
17.session 对象用于存储每一个用户的状态信息,以便于识别每个用户,跟踪用户的会话
状态,直到客户端与服务器断开连接为止。
18.application 负责提供应用程序在服务器中运行的全局信息,当应用程序在服务器中启
动时该对象就一直存在,直到服务器关闭为止,所有客户共享这个内置的对象。
19.每过10分钟自动刷新的JSP语句是:response.setHeader(“refresh”,”10”)。
20.session对象一般在服务器上设置了一个30分钟的过期时间,当客户停止活动自动失
效。
21.与session不同的是,所有用户共享内置的application对象。
22.DriverManager 负责管理JDBC驱动程序。
23.Connection 对象实现与数据源的连接。
24.Statement接口用于发送简单的SQL语句,实现SQL语句的执行。
25.ResultSet 接口实现对数据的处理,维护记录指针。
26.JDBC所有的类和接口都放在java.sql 包中。
27.JDBC对数据库的操作通过5个JDBC的类/接口来实现,它们是:DriverManager 、
Connection、Statement、PreparedStatement和ResultSet。
28.Class.forName方法用于加载注册驱动程序。
29.加载ODBC驱动的语句为:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)。
30.Statement类的executeQuery 方法支持使用SELECT语句对数据库进行查询。
31.Statement类的executeUpdate 方法支持使用INSERT、DELETE、UPDA TE等语句对数
据库进行新增、删除和修改操作。
32.ResultSet类的next 方法可以移动记录指针到下一条记录。
简答题部分
1.简述JSP的工作原理。
答:所有的JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要是由JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎要完成以下操作:
将JSP文件翻译成Servlet文件,Servlet文件是Java应用程序。
JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件(.class文件)。
JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
2.application对象有什么特点?和session对象有什么联系和区别?
答:application对象实现了ServletContext类和接口,并保存Web应用程序中公有的数据,可存放全局变量。
服务器启动后自动创建application对象,该对象将一直有效,直到服务器关闭。
不同用户可以对该对象的同一属性进行操作;在任何地方对该对象属性的操作,都将影响到其他用户对该对象的访问。
application对象和session对象的区别是:在使用session对象时,各个客户端共享一个session对象,而使用Application对象时,为多个应用程序保存信息,对于一个容器而言,在同一个服务器中的JSP文件中共享一个application对象。
3.利用Jsp和JavaBean实现在网页中显示网页被访问的次数。
RAFDemo.java//用随机访问流来控制对文件的读写
package com;
import java.io.*;
public class RAFDemo
{
public int date;
public String getGuestCount(){
try{
RandomAccessFile f2=new RandomAccessFile("date.txt","r");
date=f2.readInt();
date++;
f2.close();
}catch(Exception e){ }
try{
RandomAccessFile f1=new RandomAccessFile("date.txt","rw");
f1.writeInt(date);
f1.close();
}catch(Exception e){ }
return new Integer(date).toString();
}
}
index.jsp
<html>
<body>
<jsp:useBean id="count" class="com.RAFDemo" />
<%=count.getGuestCount()%>
</body>
</html>
4.简述什么是Servlet。
答:Servlet是Java Web应用程序中的组件技术,是与JSP—样运行在服务器端的Java应用程序,实现与JSP类似的功能,Servlet本身是一个Java类,可以动态地扩展服务器的能力。
所有的JSP文件要事先转换为一个Servlet才能运行,执行JSP文件的时候,首先JSP Container会将其转译为Servlet文件,并自动编译解释执行。
JSP中使用到的所有对象都将被转换为Servlet,然后被执行。
6.简述Servlet的生命周期。
答:Servlet是在服务器端运行的。
Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。
Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。
Servlet的生命周期主要由3个过程组成。
7.简述Servlet与JSP的区别。
答:Servlet与JSP相比有以下几点区别:
(1)编程方式不同
Servlet是按照Java规范编写的Java程序,JSP是按照Web规范编写的脚本语言。
(2)编译方式不同
Servlet每次修改后需要重新编译后才能运行,JSP是被JSP Container编译为Servlet文件。
(3)运行速度不同
由于一个JSP页面在第一次被访问时要被编译成Servlet需要一段时间,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
总之,在运行速度上,Serlvet比JSP速度快。
8.简述什么是JavaScript。
答:JavaScript是一种基于对象(Object)和事件驱动(Event Driven),并具有安全性能的脚本语言。
使用它的目的是与HTML、Java 脚本语言(Java小程序)一起实现在一个Web 页面中链接多个对象,与Web客户交互作用,从而可以开发客户端的应用程序等。
它是通过嵌入在标准的HTML语言中实现的,它的出现弥补了HTML语言的缺陷。
9.简述JavaScript和Java的区别。
答:下面对两种语言间的异同作如下比较:
(1)基于对象和面向对象
Java是完全面向对象的语言;JavaScript是基于对象的脚本语言。
(2)解释和编译
两种语言在其浏览器中执行的方式不一样。
Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。
(3)强变量和弱变量
两种语言所采用的变量是不一样的。
Java采用强类型变量检查,即所有变量在编译之前必须作声明。
JavaScript中的变量是弱类型的,即变量在使用前不需作声明。
(4)代码格式不一样
Java的格式与HTML无关,其代码以字节形式保存在独立的文档中。
而JavaScript 的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。
(5)嵌入方式不一样
在HTML文档中,通过不同的标签标识两种编程语言,JavaScript使用<script>...</script>标签,而Java使用<applet>...</applet>标签。
(6)静态联编和动态联编
Java采用静态联编,即Java的对象引用必须在编译时进行,以使编译器能够实现强类型检查。
JavaScript采用动态联编,即JavaScript先编译,再在运行时对对象引用进行
检查。
10.简述JavaBean的种类。
答:JavaBean是遵循特殊规范的Java类。
按功能分,可以分为可视Bean和不可视两类。
●可视Bean是在画面上可以显示的Bean,通过属性接口接收数据并显示在画面。
●不可视Bean即JSP中时常使用的Bean,在程序的内部起作用,如用于求值、存储
用户数据等。
11.简述创建JavaBean的规则。
(参考第1章)
答:JavaBean定义(声明)应遵循的规范:
●必须有一个无参的构造函数。
●对在Bean中定义的所有属性提供getter和setter方法,并且这些方法是公共的。
●对于boolean类型的属性,其getter方法的形式为isXXX的,其中XXX为首字母
大写的属性名。
●对于数组类型的属性,要提供形式为getXXX(int index)和setXXX(int index,
PropertyType value)的方法。