javascript
JSP程序设计课后习题答案
第一章 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”%>
總結
以上是生活随笔為你收集整理的JSP程序设计课后习题答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作150:1、根据后台传值动态显示开关
- 下一篇: 前端学习(2619):vue插槽--具名