JAVA Web復(fù)習(xí)重點(diǎn)【網(wǎng)絡(luò)本部】
一,名詞解釋(20分)
B2B企業(yè)到企業(yè)B2C企業(yè)到客戶
JavaBean:JavaBean是SUN公司推出的一個(gè)面向?qū)ο蟮木幊探涌谝?guī)范,它可以讓用戶設(shè)計(jì)可重用的程序快,稱為JavaBean組件。編程中可以通過JavaBean的組合可以快速地生成新的應(yīng)用程序。
Web:Web是WorldWideWeb的簡(jiǎn)稱,也簡(jiǎn)稱WWW。Web是分布在全世界的、基于HTTP通信協(xié)議的、存儲(chǔ)在Web服務(wù)器中的所有相互鏈接的超文本集。
HTTP:即超文本傳輸協(xié)議,是專門為Web設(shè)計(jì)的一種網(wǎng)絡(luò)通信協(xié)議,HTTP位于TCP/IP的應(yīng)用層。HTTP是Web的基本通信協(xié)議,Web服務(wù)器和瀏覽器采用HTTP協(xié)議來傳輸Web文檔。
HTML:即超文本標(biāo)記語言,HTML是含有一套語法規(guī)則的文本標(biāo)記語言。框架:能自動(dòng)化完成常用功能并提供快速構(gòu)建應(yīng)用的平臺(tái)。DNS:是域名解析服務(wù),提供域名到IP地址之間的轉(zhuǎn)換。
Internet:Internet是一個(gè)開放的、由位于世界不同地方的眾多網(wǎng)絡(luò)和計(jì)算機(jī)互聯(lián)而成、依靠TCP/IP協(xié)議實(shí)現(xiàn)通信的互聯(lián)網(wǎng)絡(luò)。
JDBC:JDBC是SUN提出的一種訪問數(shù)據(jù)庫的技術(shù)標(biāo)準(zhǔn),它是一種能通過Java語言訪問數(shù)據(jù)庫的應(yīng)用程序接口(JDBCAPI),由一組用Java語言編寫的類和接口組成。
XML:是一種與平臺(tái)無關(guān)的、在Web上傳遞信息的語言,同時(shí)又是一種組織數(shù)據(jù)的標(biāo)識(shí)方法,是可供其他高級(jí)語言讀寫的文本文件。二、簡(jiǎn)答題(50分)
1,HTTP(超文本傳輸協(xié)議)的處理過程。1),客戶瀏覽器與Web服務(wù)器建立連接。2),客戶端瀏覽器向Web服務(wù)器提出請(qǐng)求,在請(qǐng)求中指明所要求的特定文件。3)Web服務(wù)器響應(yīng)客戶端瀏覽器的請(qǐng)求。4)客戶端瀏覽器與Web服務(wù)器斷開連接。2,JavaScript的概念和基本特點(diǎn)。
概念:JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)的、嵌在HTML文檔中的腳本語言,主要用于在Web上開發(fā)交互式的Web頁面。
基本特點(diǎn):JavaScript是一種腳本語言;基于對(duì)象;安全性;跨平臺(tái)性。3,網(wǎng)站設(shè)計(jì)的一般步驟1)定義網(wǎng)站的目標(biāo)2)概要設(shè)計(jì)
3)網(wǎng)站的內(nèi)容和功能設(shè)計(jì)4)網(wǎng)站的結(jié)構(gòu)設(shè)計(jì)5)網(wǎng)站的可視化設(shè)計(jì)4,Java的三個(gè)版本。Java2標(biāo)準(zhǔn)版(J2SE)Java2企業(yè)版(J2EE)
Java2嵌入式系統(tǒng)版(J2ME)5,Java平臺(tái)由哪些部分構(gòu)成?
Java工作平臺(tái)包含兩個(gè)組件。Java虛擬機(jī)(JVM)和Java應(yīng)用程序接口(JavaAPI)。6,配置系統(tǒng)的環(huán)境變量。
1)在Windows“系統(tǒng)”屬性里選擇“高級(jí)”標(biāo)簽,在下面找到“環(huán)境變量”按鈕;2)在“系統(tǒng)變量”里新建一個(gè)名字叫“JAVA_HOME”的變量,其值為JDK的安裝路徑;3)找到PATH變量,在其前面加上%JAVA_HOME%\\bin;(分號(hào)不能省略)。7,Java類、對(duì)象、包的概念。
類是具有相同屬性和行為的一組對(duì)象的集合,對(duì)象是一個(gè)類的實(shí)例。對(duì)象是包含數(shù)據(jù)以及與這些數(shù)據(jù)有關(guān)的操作的集合。包是“類“和”接口“的集合。8,接口的概念和作用、
接口是一系列常量和還沒有實(shí)現(xiàn)的方法的結(jié)合。
接口的作用主要是將若干個(gè)重要的抽象方法和常量封裝在一起,實(shí)現(xiàn)面向?qū)ο缶幊痰亩鄳B(tài)機(jī)制。
9,進(jìn)程與線程的區(qū)別
線程和進(jìn)程都是實(shí)現(xiàn)并發(fā)操作的基本單位,線程和進(jìn)程的差別主要表現(xiàn)在:
進(jìn)程:每個(gè)進(jìn)程都有獨(dú)立的代碼和數(shù)據(jù)空間,即進(jìn)程占有獨(dú)立的內(nèi)存資源,進(jìn)程切換的
開銷大。
線程:也稱為輕量進(jìn)程,一個(gè)進(jìn)程的多個(gè)線程共享代碼和數(shù)據(jù)“堆”空間,每個(gè)線程有
獨(dú)立的運(yùn)行棧和程序計(jì)數(shù)器,線程切換的開銷小。線程具有共享的“堆”,獨(dú)立的“!,線程可以利用“堆”來完成線程間的通信。
10,Java的多線程實(shí)現(xiàn)的兩種方式。
第一種是繼承Thread類的辦法,構(gòu)造Thread類的一個(gè)子類,并在run()方法中包含
運(yùn)行的代碼,該方法多用于Java應(yīng)用程序中;第二種是通過實(shí)現(xiàn)接口Runnabled來完成。11,TCP/IP協(xié)議簇
Application(HTTP,ftp,telnet)Transport(TCP,UDP)Network(IP,)
Link(devicedriver,)12,Socket的通訊過程。
服務(wù)器程序的編寫步驟如下:
1)服務(wù)器監(jiān)聽相應(yīng)端口的輸入;
2)當(dāng)接收到客戶機(jī)一個(gè)請(qǐng)求時(shí),創(chuàng)建一個(gè)新線程從套接字讀取數(shù)據(jù);3)服務(wù)器處理該請(qǐng)求;
4)服務(wù)器返回處理請(qǐng)求結(jié)果到客戶機(jī);5)服務(wù)器重新監(jiān)聽響應(yīng)端口的輸入。客戶端程序的編寫步驟如下:1)打開一個(gè)socket
2)對(duì)socket打開一個(gè)輸入流和輸出流
3)按服務(wù)程序的要求從stream中讀數(shù)據(jù)或?qū)憯?shù)據(jù)4)關(guān)閉該streams5)關(guān)閉該socket13,Servlet技術(shù)
Servlet是用Java語言實(shí)現(xiàn)的類似于CGI的編程技術(shù)。Servlet也是J2EE的三大基礎(chǔ)技術(shù)(JSP、JavaBean、Servlet)之一,是三大核心框架(Struts、Spring、Hibernate)其中的Struts的基礎(chǔ)。
14,JSP運(yùn)行機(jī)制的原理(JSP的執(zhí)行過程)1)客戶端向服務(wù)器發(fā)出請(qǐng)求
2)JSP服務(wù)器將JSP翻譯成Servlet源代碼(如:Java代碼)
3)將產(chǎn)生的Java代碼進(jìn)行編譯,使之成為.class文件,將.class文件加載到內(nèi)存執(zhí)行4)把執(zhí)行結(jié)果作為響應(yīng)發(fā)送至客戶端由瀏覽器解釋顯示。15,JSP的三個(gè)指令元素及作用
JSP的三個(gè)指令元素是:page指令,include指令,taglib指令。
page指令作用于整個(gè)JSP頁面,定義了許多與頁面相關(guān)的屬性,這些屬性將被用于和
JSP容器通信。
Include指令用來將一個(gè)外部文件嵌入到當(dāng)前JSP文件中。Taglib指令用來指定頁面能夠調(diào)用的用戶自定義標(biāo)簽。
16,SUN公司定義了4種數(shù)據(jù)庫驅(qū)動(dòng)程序類型,常用的兩種解釋如下:
1)JDBC-ODBC橋驅(qū)動(dòng)程序。JDBC-ODBC橋驅(qū)動(dòng)程序已經(jīng)包含在JDK種,它提供了
JDBC通過ODBC來和數(shù)據(jù)庫交互。
2)純JDBC+DATABASE連接方式。這種驅(qū)動(dòng)程序?qū)DBCAPI命令轉(zhuǎn)換成數(shù)據(jù)庫管理
系統(tǒng)指定的本地調(diào)用,然后由本地調(diào)用直接操作數(shù)據(jù)庫。
17,連接數(shù)據(jù)庫的基本過程。
1)建立數(shù)據(jù)源2)導(dǎo)入用到的包3)加載驅(qū)動(dòng)程序
4)創(chuàng)建與數(shù)據(jù)庫的連接5)創(chuàng)建語句對(duì)象6)編寫SQL語句7)執(zhí)行SQL語句8)處理得到的結(jié)果集9)關(guān)閉相關(guān)對(duì)象10)處理異常
18,什么是JavaBean?JSP中怎樣調(diào)用JavaBean?
JavaBean是SUN公司推出的一個(gè)面向?qū)ο蟮木幊探涌谝?guī)范,它可以讓用戶設(shè)計(jì)可重用的程序快,稱JavaBean組件。編程中可以通過JavaBean的組合可以快速地生成新的應(yīng)用程序。
JSP調(diào)用JavaBean
在JSP程序中使用JavaBeans組件必須應(yīng)用、和這三個(gè)標(biāo)準(zhǔn)標(biāo)簽。
標(biāo)簽的作用是聲明一個(gè)具有一定生存期以及一個(gè)唯一的id的JavaBean對(duì)象。JSP通過id來識(shí)別JavaBean,通過id.method類似的語句來操作JavaBean。
標(biāo)簽用于對(duì)JavaBean的屬性賦值。標(biāo)簽用于獲取JavaBean的屬性值。19,兩種模型的優(yōu)缺點(diǎn)。
Model1(JSP+JavaBean開發(fā)模型)的優(yōu)點(diǎn)是:降低了頁面與模型間的依賴性,實(shí)現(xiàn)了顯示與內(nèi)容分離,使頁面制作和業(yè)務(wù)邏輯并行執(zhí)行。
Model1(JSP+JavaBean開發(fā)模型)的缺點(diǎn)是:未能實(shí)現(xiàn)視圖和控制器之間的獨(dú)立和分離,JSP既要作為視圖負(fù)責(zé)提供表示層數(shù)據(jù),又要充當(dāng)控制器負(fù)責(zé)業(yè)務(wù)流程控制,因此仍然有大量的代碼段嵌入JSP頁面中。
Model2體系結(jié)構(gòu)優(yōu)點(diǎn)是:它清晰地分離了表達(dá)和內(nèi)容,明確了角色定義以及開發(fā)者與網(wǎng)頁設(shè)計(jì)者的分工。
Model2體系結(jié)構(gòu)缺點(diǎn)是:由于它的內(nèi)部涉及的組件較多,所以需要精心地計(jì)劃,理清楚它們之間的關(guān)系,這增加應(yīng)用的復(fù)雜性,所以JSPModel2不適合小型應(yīng)用程序。20,Model2的三個(gè)層次及其作用。
在基于Model2構(gòu)建JavaWeb應(yīng)用中,通常將Web應(yīng)用的架構(gòu)根據(jù)MVC模式劃分為3個(gè)層次:視圖層,控制層,業(yè)務(wù)邏輯層。
視圖層主要充當(dāng)用戶的操作接口,負(fù)責(zé)數(shù)據(jù)的輸入及結(jié)果的輸出。
控制層的主要工作是控制整個(gè)應(yīng)用的流程。控制層將視圖層提交的數(shù)據(jù),交付給業(yè)務(wù)邏輯層處理,并將結(jié)果返回至視圖層。
業(yè)務(wù)邏輯層是應(yīng)用的核心部分,主要功能包括:數(shù)據(jù)處理、數(shù)據(jù)維護(hù)及業(yè)務(wù)邏輯的實(shí)現(xiàn)。
21,在Model2中,系統(tǒng)的行為時(shí)序。
1)Servlet充當(dāng)控制器角色,負(fù)責(zé)接受客戶端請(qǐng)求并處理請(qǐng)求;
2)根據(jù)請(qǐng)求類型,Servlet可以直接存取數(shù)據(jù)庫中的數(shù)據(jù),也可創(chuàng)建JavaBean并將
請(qǐng)求的結(jié)果作為初始化參數(shù)傳入JavaBean中;3)Servlet將請(qǐng)求傳送給適當(dāng)?shù)腏SP,用于顯示結(jié)果
4)JSP從JavaBean中讀取數(shù)據(jù),由JavaBean與數(shù)據(jù)庫進(jìn)行交互5)JSP返回客戶端。
三,編程(5)
編寫一個(gè)簡(jiǎn)單的Java應(yīng)用程序。(HelloWorldApp.java)publicclassHelloWorldApp{
publicstaticvoidmain(String[]args){
System.out.println(“HelloWorld!”);}}
四,論述題(25)(送分題)
對(duì)專業(yè)/Web/Java發(fā)展前景的認(rèn)識(shí)(也可能是其他)
擴(kuò)展閱讀:java web期末復(fù)習(xí)要點(diǎn)
JavaScript是基于對(duì)象的語言。
JavaScript的基本語法:包含了一些變量及函數(shù)的聲明操作,所有的JavaScript代碼都是在HTML代碼中編寫的,使用標(biāo)記完成。
JavaScript中的所有變量都使用var關(guān)鍵字聲明,變量的類型由賦給的具體內(nèi)容來決定。
HTML語句鏈接超鏈接表格和顯示表格元素和表格的行顯示和表格的列顯示表單=””ACTION=”URL”顯示表單元素METHOD=”GET|POST”>和普通輸入文本密碼輸入框復(fù)選框單選按鈕將圖片設(shè)置為提交按鈕JavaScript中的各個(gè)操作都有相應(yīng)的事件支持,主要圍繞函數(shù)展開,產(chǎn)生事件后可以調(diào)用相應(yīng)函數(shù)進(jìn)行處理,所有事件以onXxx命名。
JavaScript中程序的三種結(jié)構(gòu):
順序結(jié)構(gòu):程序代碼從頭到尾執(zhí)行。
分支結(jié)構(gòu):中間加入若干個(gè)判斷條件,根據(jù)判斷條件來決定代碼的執(zhí)行。
循環(huán)結(jié)構(gòu):將一段代碼體重復(fù)執(zhí)行。
在JSP中的3中Scriptlet代碼:
第一種Scriptlet:可以定義局部變量,編寫語句第二種Scriptlet:可以定義全局變量、方法、類。第三種Scriptlet:輸出一個(gè)變量或一個(gè)具體的常量
跳轉(zhuǎn)指令
使用指令,將一個(gè)用戶的請(qǐng)求(request)從一個(gè)頁面?zhèn)鬟f到另一個(gè)頁面,即完成跳轉(zhuǎn)的操作。
不傳遞參數(shù):傳遞參數(shù):
JSP中的包含語句:一種是靜態(tài)包含,屬于先包含后處理;另一種是動(dòng)態(tài)包含,屬于先處理后包含。
使用可以執(zhí)行跳轉(zhuǎn)操作,跳轉(zhuǎn)后的地址欄不改變,所以是服務(wù)器端跳轉(zhuǎn),此語句屬于標(biāo)簽指令,標(biāo)簽指令在最后一定要有完結(jié)。
JSP內(nèi)置對(duì)象的4中屬性范圍
Page:只在一個(gè)頁面中保存屬性,跳轉(zhuǎn)之后無效
Repuest:只在一次請(qǐng)求中保存屬性,服務(wù)器跳轉(zhuǎn)后依然有效Session:在一次會(huì)話范圍中保存,無論何種跳轉(zhuǎn)都可以使用,但新開瀏覽器無法使用。
Application:在整個(gè)服務(wù)器中保存,所有用戶都可以使用。
9個(gè)內(nèi)置對(duì)象:
pageContextrequestresponsesessionapplicationconfigoutpageexception
幾種重要對(duì)象的功能:
pageContext對(duì)象:表示一個(gè)JSP頁面的下文。request對(duì)象:接收客戶端發(fā)送而來的請(qǐng)求信息。
Response對(duì)象:對(duì)客戶端的請(qǐng)求進(jìn)行回應(yīng),將Web服務(wù)器處理后的結(jié)果發(fā)回給客戶端。
Session對(duì)象:完成用戶的登錄、注銷等。Application對(duì)象:用來存儲(chǔ)和獲取可以被所有用戶之間進(jìn)行共享的信息
Config對(duì)象:取得一些初始化的配置信息。Out對(duì)象:完成頁面的輸出操作,使用println()或print()方法輸出信息。
屬性的操作方法:
設(shè)置屬性:publicvoidsetAttribute(Stringname,Objectvalue)。取得屬性:publicObjectgetAttribute(Stringname)。刪除屬性:publicremoveAttribute(Stringname)。
這些屬性在操作時(shí)所有的屬性名稱都使用String進(jìn)行接收,所有的屬性內(nèi)容使用Object進(jìn)行接收,可以保存任意的對(duì)象,在取得屬性時(shí)要根據(jù)取得的類型進(jìn)行向下轉(zhuǎn)型操作。
JavaBean標(biāo)簽::
:NO.類型語法格式1自動(dòng)匹配:2指定屬性:3指定參數(shù):4指定內(nèi)容::
:JavaBean標(biāo)簽操作的簡(jiǎn)單類的開發(fā)要求:1.所有的類必須放在一個(gè)包中,在Web中沒有包的類是不
存在的。
2.所有的類必須聲明為Publicclass,這樣才能被外部所訪
問。
3.類中所有的屬性都必須封裝,即使用private聲明。4.封裝的屬性如果需要被外部所操作,則必須編寫對(duì)應(yīng)的
setter、getter方法。
一個(gè)JavaBean中至少存在一個(gè)無參構(gòu)造方法,此方法為JSP中的標(biāo)簽所使用。
Servlet程序是運(yùn)行在服務(wù)器端的一段Java程序,其生命周期將受Web容器的控制。
生命周期包括加載程序、初始化、服務(wù)、銷毀、卸載。Servlet生命周期控制的3個(gè)方法:Init()
Service()(doGet()、doPost())Destroy()
MAV設(shè)計(jì)模式:強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開。
分為3個(gè)核心層:模型層、顯示層、控制層。
顯示層(View):主要負(fù)責(zé)接收Servlet傳遞的內(nèi)容,并且調(diào)用JavaBean,將內(nèi)容顯示給用戶。
控制層(Controller):主要負(fù)責(zé)所有的用戶請(qǐng)求參數(shù),判斷請(qǐng)求參數(shù)是否合法。
模型層(Model):完成一個(gè)獨(dú)立的業(yè)務(wù)操作組件,一般以JavaBean或者EJB的形式進(jìn)行定義的。
Servlet的特點(diǎn):是一個(gè)供其他Java程序調(diào)用的類,不能獨(dú)立運(yùn)行。它的運(yùn)行完全由Servlet引擎來控制和調(diào)度。Servlet引擎是一種容器程序,負(fù)責(zé)管理和維護(hù)所有Servlet對(duì)象的生命周期。Servlet的加載執(zhí)行流程,以及如何接收客戶端發(fā)送的數(shù)據(jù)和如何將數(shù)據(jù)傳輸?shù)娇蛻舳说染唧w的底層事務(wù),都由Servlet引擎來實(shí)現(xiàn)。Servlet用于讀取Web瀏覽器傳遞給web服務(wù)器的參數(shù)和生成web服務(wù)器返回給web瀏覽器的動(dòng)態(tài)網(wǎng)頁文檔內(nèi)容;也能獲取web瀏覽器發(fā)送的HTTP請(qǐng)求消息中的各個(gè)請(qǐng)求頭和請(qǐng)求行信息。
Servlet的運(yùn)行過程:
1.接收到訪問某個(gè)Servlet的HTTP請(qǐng)求之后,Servlet引擎
首先檢查是否已經(jīng)安裝并創(chuàng)建了該Servlet的實(shí)例對(duì)象。如果已裝載并創(chuàng)建,Servlet引擎則直接執(zhí)行步驟4,否則,執(zhí)行步驟2.
2.裝載并創(chuàng)建Servlet的一個(gè)實(shí)例對(duì)象。
3.調(diào)用Servlet實(shí)例對(duì)象的init()方法,以便執(zhí)行Servlet的
一些初始化工作。
4.創(chuàng)建一個(gè)用于封裝HTTP請(qǐng)求消息的HttpServletRepuest
對(duì)象和一個(gè)代表HTTP響應(yīng)消息的HttpServletRepuest對(duì)象,然后調(diào)用Servlet的servive()方法并將請(qǐng)求和響應(yīng)對(duì)象作為參數(shù)傳遞進(jìn)去。
5.在一個(gè)Web應(yīng)用程序被停止或重新啟動(dòng)之前,Servlet
引擎將卸載其中運(yùn)行的Servlet。代碼4登錄檢查servletpackagecom.servlets;importjava.io.IOException;
importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.beans.User;importcom.beans.userHandler;
publicclassLoginCheckServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponse
response)
throws
ServletException,IOException{
doGet(request,response);}protectedvoiddoGet(HttpServletRequestrequest,
HttpServletResponse
response)
throws
ServletException,IOException{
//得到輸入的用戶名
Stringusername=request.getParameter("username");//得到輸入的密碼
Stringpassword=request.getParameter("password");//封裝成User對(duì)象Useruser=newUser();user.setUsername(username);user.setPassword(password);
if(username!=null&&password!=null){//實(shí)例化userHandler
userHandleruserhandler=newuserHandler();//調(diào)用userhandler的checkLogin方法
booleanisSuccess=userhandler.checkLogin(user);userhandler.CloseSql();
//根據(jù)返回結(jié)果進(jìn)行視圖控制處理if(isSuccess){//得到session對(duì)象
HttpSessionsession=request.getSession();session.setAttribute("username",username);//向index.jsp進(jìn)行跳轉(zhuǎn)(服務(wù)器端跳轉(zhuǎn))RequestDispatcher
requestDispatcher
=request.getRequestDispatcher("index.jsp");
requestDispatcher.forward(request,response);}Else{//向showerror.jsp進(jìn)行跳轉(zhuǎn)(服務(wù)器端跳轉(zhuǎn))
RequestDispatcher
requestDispatcher
=request.getRequestDispatcher("showerror.jsp");
requestDispatcher.forward(request,response);}}
else{//向showerror.jsp進(jìn)行跳轉(zhuǎn)(服務(wù)器端跳轉(zhuǎn))
RequestDispatcher
requestDispatcher
=request.getRequestDispatcher("showerror.jsp");requestDispatcher.forward(request,response);}}}
代碼5用戶注冊(cè)servletpackagecom.servlets;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.beans.User;importcom.beans.userHandler;
publicclassRegisterServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponse
response)
throws
ServletException,IOException{
doGet(request,response);}
protectedvoiddoGet(HttpServletRequestrequest,
HttpServletResponse
response)
throws
ServletException,IOException{
request.setCharacterEncoding("GBK");//得到輸入的所有用戶注冊(cè)信息
Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");Stringrealname=request.getParameter("realname");Stringgender=request.getParameter("gender");Stringage_str=request.getParameter("age_str");intage=Integer.parseInt(age_str);//封裝成一個(gè)User對(duì)象
Useruser=newUser(username,password,realname,gender,age);
response.setContentType("textml;charset=gb2312");PrintWriterout=response.getWriter();
if(username!=null&&password!=null){//實(shí)例化userHandler
userHandleruserhandler=newuserHandler();//調(diào)用userhandler的addUser方法booleanisSuccess=false;
try{isSuccess=userhandler.addUser(user);}catch(SQLExceptione){e.printStackTrace();}userhandler.CloseSql();
if(isSuccess){
Stringcontextpath=request.getContextPath();
out.println("alert("注冊(cè)成功!");"+"window.location=""+contextpath+"/login.htm";");}
else{Stringcontextpath=request.getContextPath();
out.println("alert("注冊(cè)失!");"+"window.location=""+contextpath+"/register.htm";");}}else{
response.sendRedirect(request.getContextPath()+"/showerror.jsp");}}}
第一題.Html登陸界面制作
登錄界面
登錄操作
用戶登錄
用戶ID:
密碼:
代碼來自書上P118
第二題html字體顯示
字體顯示
字體顯示
粗體斜體
下劃
線中劃線
90°
H2O
自己寫+網(wǎng)上查找的代碼
3、簡(jiǎn)述JSP中任意5個(gè)內(nèi)置對(duì)象的名稱與作用。(15分)
答案來自百度百科(背5個(gè)就行了)
(1)request對(duì)象
客戶端的請(qǐng)求信息被封裝在request對(duì)象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是HttpServletRequest類的實(shí)例。
(2)response對(duì)象
response對(duì)象包含了響應(yīng)客戶請(qǐng)求的有關(guān)信息,但在JSP中很少直接用到它。它是HttpServletResponse類的實(shí)例。(3)session對(duì)象
session對(duì)象指的是客戶端與服務(wù)器的一次會(huì)話,從客戶端連到服務(wù)器的一個(gè)WebApplication開始,直到客戶端與服務(wù)器斷開連接為止。它是HttpSession類的實(shí)例。(4)out對(duì)象
out對(duì)象是JspWriter類的實(shí)例,是向客戶端輸出內(nèi)容常用的對(duì)象
(5)page對(duì)象
page對(duì)象就是指向當(dāng)前JSP頁面本身,有點(diǎn)象類中的this指針,它是java.lang.Object類的實(shí)例(6)application對(duì)象
application對(duì)象實(shí)現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務(wù)器的啟動(dòng),直到服務(wù)器的關(guān)閉,在此期間,此對(duì)象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對(duì)此對(duì)象的同一屬性進(jìn)行操作;在任何地方對(duì)此對(duì)象屬性的操作,都將影響到其他用戶對(duì)此的訪問。服務(wù)器的啟動(dòng)和關(guān)閉決定了application對(duì)象的生命。它是ServletContext類的實(shí)例。(7)exception對(duì)象
exception對(duì)象是一個(gè)例外對(duì)象,當(dāng)一個(gè)頁面在運(yùn)行過程中發(fā)生了例外,就產(chǎn)生這個(gè)對(duì)象。如果一個(gè)JSP頁面要應(yīng)用此對(duì)象,就必須把isErrorPage設(shè)為true,否則無法編譯。他實(shí)際上是java.lang.Throwable的對(duì)象(8)pageContext對(duì)象
pageContext對(duì)象提供了對(duì)JSP頁面內(nèi)所有的對(duì)象及名字空間的訪問,也就是說他可以訪問到本頁所在的SESSION,也可以取本頁面所在的application的某一屬性值,他相當(dāng)于頁面中所有功能的集大成者,它的本類名也叫pageContext。(9)config對(duì)象
config對(duì)象是在一個(gè)Servlet初始化時(shí),JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時(shí)所要用到的參數(shù)(通過屬性名和屬性值構(gòu)成)以及服務(wù)器的有關(guān)信息(通過傳遞一個(gè)ServletContext對(duì)象)
4、簡(jiǎn)述內(nèi)置對(duì)象中的4種屬性范圍及意義。(12分)pageContext:只在一個(gè)頁面中保存屬性,跳轉(zhuǎn)后無效。
Request:只在一次請(qǐng)求中保存,服務(wù)器跳轉(zhuǎn)后依然有效。
Session:在一次會(huì)話范圍中,無論何種跳轉(zhuǎn)都可以使用,但是新開瀏覽器無法使用。
Application:在整個(gè)服務(wù)器上保存,所有用戶都可以使用。
5、簡(jiǎn)述Servlet程序的處理步驟。(10分)
當(dāng)你用JSP或HTML提交表單的時(shí)候(點(diǎn)submit),瀏覽器會(huì)將這個(gè)請(qǐng)求封裝成一個(gè)request,發(fā)送到服務(wù)器端(Tomcat端),服務(wù)器端接收到這個(gè)request請(qǐng)求之后,交由Servlet來處理,將處理后的結(jié)果,封裝成response返還給瀏覽器。Tomcat根據(jù)WEB-INF下面的web.xml來實(shí)例化Servlet,一般來講,Servlet只被實(shí)例化一次,實(shí)例化之后,多個(gè)線程共享。
6、使用MVC的設(shè)計(jì)模式,設(shè)計(jì)一個(gè)用戶注冊(cè)程序,利用JSP,Servlet和JavaBean組件進(jìn)行實(shí)現(xiàn)。要求:
1、簡(jiǎn)述MVC的組成,并說明JSP,Servlet和JavaBean組件分別可以在MVC架構(gòu)中充當(dāng)什么功能?
2、給出JSP,Servlet和JavaBean組件的關(guān)鍵代碼。
答:MVC即Model-View-Controller,
JSP負(fù)責(zé)顯示界面相當(dāng)于MVC中的View(視圖層),
Servlet負(fù)責(zé)歷程控制相當(dāng)于MVC中的Controller(控制層),
JavaBean負(fù)責(zé)功能相當(dāng)于MVC中的Model(數(shù)據(jù)層)。
用戶注冊(cè):jsp頁面zhuce.jsp:
請(qǐng)注冊(cè):用戶名:
密碼:
性別:
年齡:
zhuce1.jsp:
StringinsertCondition="INSERTusersVALUES(""+username+"",""+password+"",""+sex+""","+age+")";Stringstr="";Connectioncon;Statementsql;try{String
uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student";
con=DriverManager.getConnection(uri,"sa","sa");sql=con.createStatement();
intm=sql.executeUpdate(insertCondition);
if(m!=0)str="注冊(cè)成功";
elsestr="注冊(cè)失敗";
con.close();
}catch(SQLExceptione){str=e.toString();}out.print(str);
%>用戶注冊(cè)servletpackagecom.servlets;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.beans.User;importcom.beans.userHandler;
publicclassRegisterServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,
IOException{
doGet(request,response);}protectedvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,
IOException{
request.setCharacterEncoding("GBK");//得到輸入的所有用戶注冊(cè)信息
Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");Stringrealname=request.getParameter("realname");Stringgender=request.getParameter("gender");Stringage_str=request.getParameter("age_str");intage=Integer.parseInt(age_str);//封裝成一個(gè)User對(duì)象
Useruser=newUser(username,password,realname,gender,
age);response.setContentType("textml;charset=gb2312");PrintWriterout=response.getWriter();
if(username!=null&&password!=null){
//實(shí)例化userHandler
userHandleruserhandler=newuserHandler();//調(diào)用userhandler的addUser方法booleanisSuccess=false;
try{isSuccess=userhandler.addUser(user);}catch(SQLExceptione){e.printStackTrace();}userhandler.CloseSql();
if(isSuccess){
Stringcontextpath=request.getContextPath();
out.println("alert("注冊(cè)成功!");"+"window.location=""+contextpath+"/login.htm";");}
else{Stringcontextpath=request.getContextPath();out.println("alert("注冊(cè)失!");"+"window.location=""+contextpath+"/register.htm";");}}else{
response.sendRedirect(request.getContextPath()+"/showerror.jsp");}}}
JavaBean值對(duì)象用于數(shù)據(jù)的傳遞packagecom.beans;publicclassUser{privateStringusername;privateStringpassword;privateStringrealname;privateStringgender;privateintage;
publicStringgetUsername(){returnusername;
}publicvoidsetUsername(Stringusername){this.username=username;}
publicStringgetPassword(){returnpassword;
}publicvoidsetPassword(Stringpassword){this.password=password;}
publicStringgetRealname(){returnrealname;}
publicvoidsetRealname(Stringrealname){this.realname=realname;}
publicStringgetGender(){returngender;
}publicvoidsetGender(Stringgender){
this.gender=gender;
}publicintgetAge(){}
publicvoidsetAge(intage){}
publicUser(){}
publicUser(Stringusername,Stringpassword,Stringrealname,}}
this.username=username;this.password=password;this.realname=realname;this.gender=gender;this.age=age;this.age=age;returnage;
Stringgender,intage){
友情提示:本文中關(guān)于《JAVA Web復(fù)習(xí)重點(diǎn)【網(wǎng)絡(luò)本部】》給出的范例僅供您參考拓展思維使用,JAVA Web復(fù)習(xí)重點(diǎn)【網(wǎng)絡(luò)本部】:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。