JSP程序设计课后习题答案
第一章JSP概述1-1JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?JSP的全称是Java Server Pages。优点:跨平台、分离静态内容和动态内容、可重复使用的组件、沿用了Java Servlet的所有功能、具有预编译性。共同点:可以在页面中加入脚本代码来生成动态内容。1-2JSP中可重复使用的组件有哪些?JavaBean组件、JSP的标准标签和自定义标签。1
第一章 JSP概述
1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?
JSP的全称是Java Server Pages。
优点:跨平台、分离静态内容和动态内容、可重复使用的组件、沿用了Java Servlet的所有功能、具有预编译性。
共同点:可以在页面中加入脚本代码来生成动态内容。
1-2 JSP中可重复使用的组件有哪些?
JavaBean组件、JSP的标准标签和自定义标签。
1-3 什么是JSP的预编译特征?
预编译是JSP的另一个重要的特性。JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
1-4 开发JSP程序需要具备哪些开发环境?
Web浏览器、Web服务器、JDK开发工具包以及数据库。
1-5 在成功安装JDK后,需要配置哪些环境变量?
JAVA_HOME变量、Path变量、CLASSPATH变量
1-6 Tomcat的默认端口、用户名和密码分别是什么?
端口为“8080”、用户名为“admin”、密码为空。
1-7 本章介绍的用来开发JSP程序的开发工具是什么?
Eclipse
1-8 开发JSP程序可采用哪几种开发模式?分别介绍它们的优缺点。
单纯的JSP页面编程:
优点:通过应用JSP中的脚本标志,可直接在JSP页面中实现各种功能。
缺点:大部分的Java代码与HTML代码混淆在一起,给程序的维护和调试带来很多的困难。
JSP+JavaBean编程
优点:jsp与javabean的结合,使web程序更加的直观,使用简单,不用于后台进行交互,直接在前端处理业务逻辑,更快速。
缺点:性能不好,jsp作为web的前端程序包含了太多的业务逻辑,给前端jsp造成了压力。不便于维护。
JSP+Servlet+JavaBean编程
优点:能够更好的实现表示层,逻辑层和数据访问层的分离。
缺点:Server程序需要Java集成开发环境,编程工作量较大。
MVC模式
优点:使代码能够重复利用,便于维护代码。
缺点:增加了系统结构和实现的复杂性,视图和控制器之间过于紧密连接,视图对模型数据有着低效率的访问,有的高级界面工具或构造器不支持MVC模式。
1-9 以下哪个选项不是JSP所具有的特征:
(1)跨平台 (2)快速建立Web Form
(3)分离静态与动态内容 (4)可重复使用的组件
(5)沿用了JavaServlet的所有功能 (6)预编译
(2)快速建立Web Form
1-10 请说明在Eclipse开发工具中以下快捷键的功能:
(1)Alt +上下方向键
(2)Ctrl + /
(3)Ctrl + D
(4)Ctrl + W
(5)Ctrl + F6
(6)Ctrl + Shift + O
(7)Ctrl + Shift + X
(8)Ctrl + Shift + Y
(1)Alt +上下方向键 将选中的一行或多行向上或向下移动
(2)Ctrl + / 注释或取消注释
(3)Ctrl + D 删除光标所在行的代码
(4)Ctrl + W 关闭单个窗口
(5)Ctrl + F6 切换窗口
(6)Ctrl + Shift + O 快速地导入类的路径
(7)Ctrl + Shift + X 将所选字符转为大写
(8)Ctrl + Shift + Y 将所选字符转为小写
第二章 JSP开发基础
2-1 什么是类?如何定义类?类的成员一般由哪两部分组成?这两部分的区别是什么?
类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。
类体主要由两部分构成,一部分是成员变量的定义,另一部分是成员方法的定义。
Java中类的行为由类的成员方法来实现。
Java用成员变量来表示类的状态和属性。
2-2 什么是成员变量和局部变量?它们的区别是什么?
在类体中变量定义部分所声明的变量为类的成员变量,而在方法体中声明的变量和方法的参数则称为局部变量。成员变量和局部变量的区别在于其有效范围不同。成员变量在整个类内都有效,而局部变量只在定义它的成员方法内才有效。
2-3 如何创建、使用并销毁对象?
首先声明对象,然后为对象分配内存空间。
创建对象后,就可以通过对象来引用其成员变量,并改变成员变量的值,而且还可以通过对象来调用其成员方法。通过使用运算符“.”实现对成员变量的访问和成员方法的调用。
Java提供的垃圾回收机制可以自动判断对象是否还在使用,并能够自动销毁不再使用的对象,收回对象所占用的资源。
2-4 构造方法的概念及用途是什么?
构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同,并且没有返回值,也不需要使用关键字void进行标识。
构造方法用于对对象中的所有成员变量进行初始化,在创建对象时立即被调用。
2-5 下面语句的输出结果是什么?
(1)循环的输出数字1 (2)明天才是真!
2-6 在Java语言中,处理异常的语句有哪4种?
1.try…catch语句
2.finally语句
3.throw语句
4.throws语句
2-7 在JSP中引入JavaScript的方法有哪些?
1.在页面中直接嵌入JavaScript
2.链接外部JavaScript
2-8 在JavaScript中,下面的哪些变量名是正确的?
(1)abc (2)7Name (3)user_name (4)case
(5)_17 (6)news (7)pwd_1 (8)i
1 3 5 6 7 8
2-9 在JavaScript中如何定义并调用函数?
在JavaScript中,定义函数最常的方法是通过function语句实现,其语法格式如下:
function functionName([parameter1, parameter2,…]){ statements
[return expression] }函数的调用比较简单,如果要调用不带参数的函数,则使用函数名加上括号即可;如果要调用的函数带参数,则在括号中加上需要传递的参数,如果包含多个参数,各参数间用逗号分隔。
如果函数有返回值,那么可以使用赋值语句将函数值赋给一个变量。
2-10 应用JavaScript如何打开一个新的窗口?
open()方法可以打开新窗口。
第三章 JSP语法
3-1 JSP页面由哪些元素构成?
主要包括JSP中的指令标识、脚本标识、JSP注释和动作标识。
3-2 JSP中主要包含哪几种指令标识?它们的作用及语法格式是什么?
page指令即页面指令,可以定义在整个JSP页面范围内有效的属性,其使用格式如下:
<%@ page attribute1=“value1” attribute2=“value2” …%>
include指令用于在当前的JSP页面中,在当前使用该指令的位置嵌入其他的文件,如果被包含的文件中有可执行的代码,则显示代码执行后的结果。
该指令的使用格式如下:<%@ include file=“文件的绝对路径或相对路径” %> taglib指令的使用格式如下:
<%@ taglib uri=“tagURI” prefix=“tagPrefix” %>
3-3 JSP中的脚本标识包含哪些元素?它们的作用及语法格式是什么?
JSP中的脚本标识包括以下三种元素:声明标识(Declaration)、JSP表达式(Expression)和脚本程序(Scriptlet)。
(1)JSP表达式用于向页面中输出信息,其使用格式为:<%= 变量或可以返回值的方法或Java表达式 %>
(2)声明标识在JSP页面中可以声明变量或方法,其声明格式为:<%! 声明变量或方法的代码 %>
(3)脚本程序是在JSP页面中使用“<%”与“%>”标记起来的一段Java代码。在脚本程序中可以定义变量、调用方法和进行各种表达式运算,且每行语句后面要加入分号。
脚本程序使用格式如下:<% Java程序片段 %>
3-4 在JSP中可以使用哪些注释?它们的语法格式是什么?
3-5 JSP中常用的动作标识有哪些?
jsp:include、jsp:forward、jsp:param、jsp:useBean、jsp:setProperty、jsp:getProperty、jsp:fallback、jsp:plugin。
3-6 page指令中的哪个属性可多次出现:
(A)contentType (B)extends
(C)import (D)不存在这样的属性
(C)import
3-7 以下哪些属性是include指令所具有的:
(A)page (B)file
(C)contentType (D)prefix
(B)file
3-8 下列选项哪些是正确的JSP表达式语法格式:
(A)<%String name=“YXQ”%> (B)<%String name=“您好”;%>
(C)<%=“您好”;%> (D)<%=“YXQ”%>
(D)<%=“YXQ”%>
3-9 以下动作标识用来实现页面跳转的是:
(A)jsp:include (B)jsp:useBean
(C)jsp:forward (D)jsp:plugin
(C)jsp:forward
第四章 JSP内置对象
4-1 JSP提供的内置对象有哪些?作用分别是什么?
4-2 当表单提交信息中包括汉字时,在获取时应该做怎样的处理?
使用request.setCharacterEncoding(“gb2312”)
4-3 如何实现禁用缓存功能?
通过设置HTTP头可实现禁用缓存功能,具体代码如下:
<%response.setHeader(“Cache-Control”,“no-store”);
response.setDateHeader(“Expires”,0);%>
4-4 如何重定向网页?
sendRedirect(String location):使用指定的重定向位置URL想客户发送重定向响应,可以使用相对URL
4-5 如果用户长时间不操作session对象,用户的session对象会消失吗?
当非活动的时间超出了窗口的大小时,JSP容器将使session对象无效并撤销所有属性的绑定,从而管理会话的生命周期。
4-6 用户关闭浏览器后,用户的session会立即消失吗?
用户关闭浏览器并不等于关闭了session,其实在浏览器关闭后,session并没有失效,在一定时间内(系统默认为30分钟内),若客户端不向服务器端发出应答请求,session对象就会消失。
4-7 如何延长session的过期时间?
使用setMaxInactiveInterval(int interval)方法设置超时时间。
4-8 session对象与application对象的区别有哪些?
session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内置的application对象。
第五章 JavaBean技术
5-1 什么是JavaBean?使用JavaBean的优点是什么?
JavaBean组件就是利用Java语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。
使用JavaBean的最大优点就在于它可以提高代码的重用性。
5-2 按功能JavaBean可分为哪几种?在JSP中最为常用的是哪一种?
(1)可视化JavaBean
(2)不可视JavaBean
常用的是不可视JavaBean。
5-3 在JSP中一个标准的JavaBean需要具备哪些条件?
(1)实现java.io.Serializable接口;
(2)是一个公共类;
(3)类中必须存在一个无参数的构造函数;
(4)提供对应的setXxx()和getXxx()方法来存取类中的属性,方法中的“Xxx”为属性名称,属性的第一个字母应大写
5-4 分别介绍值JavaBean与工具JavaBean的作用。
值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器。
工具JavaBean则可以不遵循JavaBean规范,通常用于封装业务逻辑,数据操作等,工具JavaBean可以实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。
5-5 JavaBean具有哪几种属性?在JSP中比较常用的是哪些属性?
(1)简单属性(Simple)
(2)索引属性(Indexed)
(3)绑定属性(Bound)
(4)约束属性(Constrained)
简单属性最为常用。
5-6 以下对JavaBean的描述正确的是:
(A)创建的JavaBean必须实现java.io.Serializable接口。
(B)编译后的JavaBean放在项目中的任何目录下,在JSP页面中都可以被调用。
(C)JavaBean最终是被保存到后缀名为jsp的文件中。
(D)JavaBean实质上就是一个Java类。
(E)在JSP页面中只有通过jsp:useBean动作标识才可以调用JavaBean。
(D)JavaBean实质上就是一个Java类。
第六章 Servlet技术
6-1 什么是Servlet?Servlet的技术特点是什么?Servlet与JSP有什么区别?
Servlet是一种独立于平台和协议的服务器端的Java技术,可以用来生成动态的Web页面。
技术特点:
(1)高效(2)方便(3)跨平台(4)功能强大 (5)灵活性和可扩展性(6)共享数据
(7)安全
Servlet与JSP相比有以下几点区别:
(1)编程方式不同;
(2)Servlet必须在编译以后才能执行;
(3)运行速度不同。
6-2 创建一个Servlet通常分为哪几个步骤?
创建一个Servlet,通常涉及下列4个步骤。
(1)继承HttpServlet抽象类。
(2)重载适当的方法,如覆盖(或称为重写)doGet()方法或doPost()方法。
(3)如果有HTTP请求信息的话,获取该信息。
(4)生成HTTP响应。
6-3 运行Servlet需要在web.xml文件中进行哪些配置?
(1)Servlet的名称、类和其他选项的配置
(2)初始化参数
(3)启动装入优先权
(4)Servlet的映射
6-4 怎样设置Servlet的启动装入优先级别?
启动装入优先权通过<load-on-startup>元素指定,例如下面的代码:
<servlet>
<servlet-name>ServletONE</servlet-name>
<servlet-class>com.ServletONE</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet>
<servlet-name>ServletTWO</servlet-name>
<servlet-class>com.ServletTWO</servlet-class>
<load-on-startup>20</load-on-startup>
</servlet>
<servlet>
<servlet-name>ServletTHREE</servlet-name>
<servlet-class>com.ServletTHREE</servlet-class>
<load-on-startup>AnyTime</load-on-startup>
</servlet>
6-5 当访问一个Servlet时,以下Servlet中的哪个方法先被执行:
(A)destroy() (B)doGet() (C)service() (D)init()
(D)init()
6-6 假设在myServlet应用中有一个MyServlet类,在web.xml文件中对其进行如下配置:
<servlet>
<servlet-name> myservlet </servlet-name>
<servlet-class>com.yxq.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> myservlet</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
则以下选项可以访问到MyServlet的是:
(A)http://localhost:8080/MyServlet
(B)http://localhost:8080/myservlet
(C)http://localhost:8080/com/yxq/servlet/MyServlet
(D)http://localhost:8080/yxq /welcome
(D)http://localhost:8080/yxq /welcome
第七章 JSP实用组件
7-1 jSPSmartUpload、Java Mail、JFreeChart和iText组件的作用是什么?
jspSmartUpload组件最常用的功能就是实现发送E-mail。
Java Mail:可以与MUA类型的程序交互,以阅读和撰写电子邮件.
JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件
iText是一个能够快速产生PDF文件的Java类库,通过iText提供的Java类不仅可以生成包含文本、表格、图形等内容的只读文档,而且可以将XML、HTML文件转化为PDF文件。
7-2 怎么解决在实现文件下载时抛出getOutputStream() has already been called for this response异常的情况?
要解决该问题,可以在程序中添加以下代码即可。
out.clear();
out=pageContext.pushBody();
7-3 在使用JFreeChart组件时,需要进行哪些准备工作?
利用JFreeChart组件生成动态统计图表的基本步骤如下:
(1)创建绘图数据集合;
(2)创建JFreeChart实例;
(3)自定义图表绘制属性,该步可选;
(4)生成指定格式的图片,并返回图片名称;
(5)组织图片浏览路径;
(6)通过HTML中的标记显示图片。
7-4 在使用iText组件时,如何将PDF文档设定成B5页面大小?
Rectangle rectPageSize = new Rectangle(PageSize.B5); //定义B5页面大小
第八章 JSP数据库应用开发
8-1 在Windows 7操作系统中,通过JDBC连接SQL Server 2008数据库需要进行什么操作?
首先加载数据库的驱动,然后创建数据库的连接。
8-2 简述JDBC连接数据库的基本步骤。
(1)加载JDBC驱动程序
(2)创建数据库连接
(3)执行SQL语句
(4)获得查询结果
(5)关闭连接
8-3 写出SQL Server 2008数据库的驱动及连接本地机器上的数据库db_databse的URL地址。
Connection conn = DriverManager.getConnection(
“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_database”, “sa”, “”);
8-4 执行动态SQL语句的接口是什么?
PreparedStatement
8-5 Statement实例又可以分为哪3种类型?功能分别是什么?
(1)Statement实例:该类型的实例只能用来执行静态的SQL语句;
(2)PreparedStatement实例:该类型的实例增加了执行动态SQL语句的功能;
(3)CallableStatement对象:该类型的实例增加了执行数据库存储过程的功能。
8-6 JDBC中提供的两种实现数据查询的方法分别是什么?
JDBC中提供了两种实现数据查询的方法,一种是通过Statement对象执行静态的SQL语句实现;另一种是通过PreparedStatement对象执行动态的SQL语句实现。
8-7 简述数据库连接池的优缺点。
连接池具有下列优点:
(1)创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是一个很耗时的过程,而采用数据库连接池后,数据库连接请求则可以直接通过连接池满足,而不需要为该请求重新连接、认证到数据库服务器,从而节省了时间;
(2)提高了数据库连接的重复使用率;
(3)解决了数据库对连接数量的限制。
连接池具有下列缺点:
(1)连接池中可能存在多个与数据库保持连接但未被使用的连接,在一定程度上浪费了资源;
(2)要求开发人员和使用者准确估算系统需要提供的最大数据库连接的数量。
8-8 如何在Tomcat中配置数据库连接池?
(1)将SQL Server数据库的JDBC驱动包sqljdbc.jar或者sqljdbc4.jar复制到Tomcat安装路径下的lib文件夹中。
(2)配置数据源。在配置数据源时,可以将其配置到Tomcat安装目录下的conf\server.xml文件中,也可以将其配置到Web工程目录下的META-INF\context.xml文件中。
第九章 JSP与Ajax
9-1 什么是Ajax?简述Ajax中使用的技术。
Ajax是Asynchronous JavaScript and XML的缩写,意思是异步的JavaScript与XML。
Ajax并不是一门新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,可以实现客户端的异步请求操作。
9-2 如何创建一个跨浏览器的XMLHttpRequest对象?
if (window.XMLHttpRequest) { //非IE浏览器
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { //IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
9-3 如何解决当发送路径的参数中包括中文时,在服务器端接收参数值时产生乱码的问题?
(1)当接收使用GET方法提交的数据时,要将编码转换为GBK或是GB2312。例如,将省份名称的编码转换为GBK的代码如下:
String selProvince=request.getParameter(“parProvince”); //获取选择的省份
selProvince=new String(selProvince.getBytes(“ISO-8859-1”),“GBK”);(2)由于应用POST方法提交数据时,默认的字符编码是UTF-8,所以当接收使用POST方法提交的数据时,要将编码转换为UTF-8。例如,将用户名的编码转换为UTF-8的代码如下:
String username=request.getParameter(“user”); //获取用户名 username=new
String(username.getBytes(“ISO-8859-1”),“UTF-8”);
9-4 如何解决返回到responseText或responseXML的值中包含中文时产生乱码的问题?
解决的办法是保证从服务器端传递的数据采用UTF-8的编码格式。
9-5 EL表达式的基本语法是什么?如何让JSP页面忽略EL表达式?
表达式语法格式如下:
${expression}
可以通过在页面的前面加入以下语句声明是否忽略EL表达式:
<%@ page isELIgnored=“true|false” %>
在上面的语法中,如果为true,则忽略页面中的EL表达式,否则为false,则解析页面中的EL表达式。
9-6 假如存在以下代码:
<% int num=6;
request.setAttribute(“no”,num); %>
则下面的EL表达式分别打印什么结果?
(1)true (2)3 (3)Infinity (4)false (5)true (6)true
9-7 JSTL包括哪几种标签库?
(1)核心标签库 (2)格式标签库 (3)SQL标签 (4)XML标签库 (5)函数标签库
9-8 如何在JSP文件中引用自定义标签?
JSP文件中,可以通过下面的代码引用自定义标签:
<%@ taglib uri=“tld uri” prefix=“taglib.prefix”%>
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)