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