JSP复习题.docx
《JSP复习题.docx》由会员分享,可在线阅读,更多相关《JSP复习题.docx(26页珍藏版)》请在冰豆网上搜索。
JSP复习题
1.简述JSP工作的具体流程
答案:
当客户端浏览器向服务器发出请求访问一个JSP页面后,服务器根据该请求加载相应的JSP页面,并对该页面进行编译,然户执行。
JSP工作的具体流程如下:
(1)客户端通过浏览器向服务器发出请求,在该请求中包含了请求的资源路径,这样当服务器接收到该请求后就可以知道被请求的资源。
(2)服务器根据接收到客户端的请求来加载被请求的JSP文件。
(3)Web服务器中的JSP引擎会将被加载的JSP文件转化为Servlet代码。
(4)JSP引擎将生成的Servlet代码编译成Class文件。
(5)服务器执行这个Class文件
(6)最后服务器将执行结果并发送给浏览器进行显示。
2.简述JSP与其他Web语言的区别
下表将列举出JSP、ASP、PHP三种动态页面开发技术。
JSP、ASP、PHP的对比
JSP
ASP
PHP
Web服务器
ApacheTomcat、WebLogic、WebSphere
IIS、PWS
Apache、IIS、PWS、NetscapeServer
运行平台
UNIX、Linus、Window、Solaris
Windows
UNIX、Linus、Window
运行速度
快
较快
较快
难易程度
较小
较大
较大
扩展性
好
较好
较差
安全性
好
较差
好
数据库支持
多
多
多
厂商支持
多
较少
较多
XML的支持
支持
不支持
不支持
后缀名
jsp
asp
php、php3、phps
3.简述JSP的优点
答案:
JSP的优点如下:
(1)一次编译、到处运行
(2)支持多种动态网页格式
(3)JSP标签扩展性
(4)JSP跨平台的可重用性
(5)企业级的可扩展性
(6)易于维护性
(7)健壮性与安全性
4.JDK安装完毕后,在环境变量中配置哪些内容
答案:
在环境变量中配置以下内容:
JAVA_HOME
D:
\ProgramFiles\Java\jdk1.6.0_10JDK的安装路径
PATH
%JAVA_HOME%\bin;
CLASSPATH
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
5.实例
实例内容:
编写一个JSP程序,在页面中输入系统时间,要求:
输入的系统时间时判断当前时间是“上午”、“中午”还是“下午”,并给出友好的提示信息。
例如,当前系统时间是上午,在页面输出“早上好!
新的一天即将开始,您准备好了吗?
”;当前系统时间是中午,在页面输出“午休时间!
正午好时光”;当时系统时间是下午,在页面中输出“下午继续努力工作吧”。
答案:
<%@pagelanguage="java"pageEncoding="gb2312"%>
<%@pageimport="java.util.Date,java.text.*"%>
自定义标签的实现<%
Datedate=newDate();
inthour=date.getHours();
SimpleDateFormatformat=newSimpleDateFormat("yyy-MM-ddHH:
mm:
ss");
Stringtime=format.format(date);
%>
当前时间:
<%=time%>
<%
if(hour>=24&&hour<5)
out.print("现在是凌晨,时间还很早,再睡一会儿吧!
");
elseif(hour>=5&&hour<10)
out.print("早上好,新的一天即将开始,您准备好了吗?
");
elseif(hour>=10&&hour<13)
out.print("午休时间,正午好时光!
");
elseif(hour>=13&&hour<18)
out.print("下午继续努力工作吧!
");
elseif(hour>=18&&hour<21)
out.print("晚上好,自由时间!
");
elseif(hour>=21&&hour<24)
out.print("已经是深夜了,注意休息!
");
%>
程序运行结果如下图所示:
1.简述JSP文件的组成元素,并说明每个元素的含义。
答案:
JSP文件的组成元素如下:
(1)JSP中的指令标识
利用JSP指令可以使服务器按照指令的设置来执行动作和设置在整个JSP页面范围内有效的属性。
例如,在上述代码中,page指令指定了在该页面中编写JSP脚本使用的语言为“Java”,并且还指定了页面中JSP字符编码为“GBK”。
(2)HTML标记语言
HTML(超文本标记语言,HypertextMarkedLanguage)是一种用来制作超文本文档的简单标记语言。
所谓超文本,是指一种电子文档,其中的文字包含可以链接到其他字段或文档的超文本链接,允许从当前阅读位置直接链接到超文本链接所指向的文字。
HTML标记语言在JSP页面中作为静态的内容,浏览器将会识别这些HTML语言并执行。
在JSP程序开发中,这些HTML标记语言主要负责页面的布局、设计和美观,可以说是网页的框架。
(3)加入Java代码
加入到JSP页面中的Java代码,在客户端浏览器中是不可见的。
它们需要被服务器执行,然后由服务器将执行结果与HTML标记语言一同发送给客户端进行显示。
通过向JSP页面中加入Java嗲吗,可以使该页面生成动态的内容。
(4)JSP表达式
JSP表达式主要用来输出,它可以向页面输出内容显示给用户,还可以用来动态的指定HTML标记中属性的值。
2.如何在JSP页面中添加动态HTML注释?
答案:
在JSP页面中可以使用HTML注释,例如,请看下面的代码:
--这个是加入到JSP页面的代码-->
3.JSP中含有哪些3种指令元素?
它们的作用分别是什么?
答案:
JSP中含有哪些3种指令元素如下表所示。
指令名称
作用
page
page指令即页面指令,用于定义JSP文件中有效的属性。
该指令可以放在JSP页面中的任意位置,但习惯上放在文件的开始部分,便于程序代码的阅读
include
include指令用于在当前的JSP页面中在当前使用该指令的位置嵌入其他的文件,如果被包含文件有可以执行的代码,则显示代码执行结果
taglib
taglib指令可以在页面中使用这些基本标记或自定义的标记来完成特殊的功能,在JSP页面中启动客户端定制行为
4.JSP中含有哪些动作元素?
它们的作用是什么?
答案:
JSP中含有的动作元素如下表所示。
动作元素
作用
include>
该元素允许包含动态或静态文件,这两种包含文件的结果是不同的。
如果包含的文件是静态的
forward>
该元素用于将客户端请求从一个页面转发到另一个JSP页面、HTML或相关的资源文件中
useBean>
该元素可以在JSP页面中创建一个JavaBean实例,并且通过属性的设置可以将该实例存储到JSP中的指定范围内。
如果在指定范围内已经存在了指定的JavaBean实例,那么将使用该实例,而不会重新创建
setProperty>
该元素通常情况下与useBean>元素一起使用,它调用JavaBean中的setXXX()方法,将请求中的参数赋值给由useBean>元素创建的JavaBean中对象的简单属性或索引属性
getProperty>
该属性用来从指定的JavaBean中读取指定的属性值,并输出到页面中。
该JavaBean必须具有getXXX()方法
plugin>与fallback>
plugin>元素可以在页面中插入JavaApplet小程序或JavaBean,它们能够在客户端运行,该元素会根据客户端浏览器的版本转换成
当转换失败时,fallback>元素用来显示用户的提示信息
params>与param>
这两个元素用于传递参数
attribute>
用于定义其他动作元素中任意属性值
body>
用于为一个动作元素定义动作体,该元素只能与attribute>元素一起使用
element>
用于动态创建一个XML元素,并将其添加到响应信息,此元素主要用于JSP文档中
output>
用于输出XML声明和文档类型声明
5.实例
通过include指令元素,制作一个新闻网的首页。
其中,该页面上侧包含新闻的LOGO图片,左侧包含含有新闻类别的超链接信息,右侧包含所有新闻的查询信息。
答案:
(1)创建名称“top.jsp”页面,该页面的主要代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
无标题文档
新闻LOGO区域
(2)创建名称“left.jsp”页面,该页面的主要代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
无标题文档
新闻操作区域
(3)创建名称“right.jsp”页面,该页面的主要代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
无标题文档
新闻显示区域
(4)创建名称“down.jsp”页面,该页面的主要代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
无标题文档
网站版权信息区域
(5)创建名称“index.jsp”页面,该页面的主要代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"
import="java.sql.*"errorPage=""%>
新闻首页模板设计
<%@includefile="top.jsp"%>
|
<%@includefile="left.jsp"%>
<%@includefile="right.jsp"%>
|
<%@includefile="down.jsp"%>
|
(6)程序运行结果如下图所示。
6.实例
编写用户注册实例,当用户在用户注册页面中没有输入任何信息,则返回用户注册页面,如果用户在用户注册页面中输入完整的用户注册信息后,则进入显示用户注册信息页面。
在编写程序中需要用JSP动作元素去实现。
答案:
(1)创建名称为“UserInfo.java”类文件,该文件的主要代码如下:
packagecom;
publicclassUserInfo{
privateStringusername="";
privateStringpassword="";
privateStringrepassword="";
privateStringrealname="";
privateStringsex="";
privateStringage="";
privateStringborn="";
privateStringaddress="";
privateStringintroduce="";
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetRepassword(){
returnrepassword;
}
publicvoidsetRepassword(Stringrepassword){
this.repassword=repassword;
}
publicStringgetRealname(){
returnrealname;
}
publicvoidsetRealname(Stringrealname){
this.realname=realname;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicStringgetAge(){
returnage;
}
publicvoidsetAge(Stringage){
this.age=age;
}
publicStringgetBorn(){
returnborn;
}
publicvoidsetBorn(Stringborn){
this.born=born;
}
publicStringgetAddress(){
returnaddress;
}
publicvoidsetAddress(Stringaddress){
this.address=address;
}
publicStringgetIntroduce(){
returnintroduce;
}
publicvoidsetIntroduce(Stringintroduce){
this.introduce=introduce;
}
}
(2)用户注册页面的代码如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"
import="java.sql.*"errorPage=""%>
用户注册
functionuserCheck(){
if(document.form1.username.value==""){
window.alert("请输入用户名");
returnfalse;
}
if(document.form1.password.value==""){
window.alert("请输入用户密码");
returnfalse;
}
if(document.form1.repassword.value==""){
window.alert("请输入密码确认");
returnfalse;
}
if(document.form1.repassword.value!
=document.form1.password.value){
window.alert("您输入的两次密码并不相同");
returnfalse;
}
if(document.form1.realname.value==""){
window.alert("请输入用户真实姓名!
");
returnfalse;
}
if(document.form1.realname.value==""){
window.alert("请输入用户真实姓名!
");
returnfalse;
}
if(document.form1.age.value==""){
window.alert("请输入用户年龄!
");
returnfalse;
}
if(document.form1.born.value==""){
window.alert("请输入出生日期");
returnfalse;
}
if(document.form1.address.value==""){
window.alert("请输入地址");
returnfalse;
}
if(document.form1.introduce.value==""){
window.alert("请输入自我介绍");
returnfalse;
}
returntrue;
}
用户名: | |
密码: | |
确认: | |
用户真实姓名: | |
性别: | 男 女 |
年龄: | |
出生: | |
地址: | |
介绍: | |
type="reset"name="Submit2"value="重置">
(3)显示用户注册信息的页面代码如下:
<%@pagecontentType="text/h