第一篇:java web總結
Java Web 總結
一
Servlet的繼承層次很多,但是我們web開發(fā)常用的也就是javax.servlet.http.HttpServlet這個類,我們常用的 兩個請求方法是doGet(),doPost(),還有從父類繼承過來的方法init()初始化,destroy()Servlet銷毀時會被調(diào) 用,getServletConfig()獲得ServletConfig對象,getServletInfo()返回有關Servlet的信息,包括作 者、Servlet版本等。
Servlet的訪問必須在web.xml,怎么配置會在下面舉例。常用方法:
1、request.setCharacterEncoding(“utf-8”);//設置用post傳遞給服務器的參數(shù)編碼方式
2、response.setContentType(“text/html;charset=utf-8”);//設置發(fā)送給瀏覽器的內(nèi)容編碼
3、HttpSession session = request.getSession();//獲得session會話session.setAttribute(“a”,“b”);//給session作用域中存值可以這樣取值:session.getAttribute(“a”);
4、ServletContext context = this.getServletContext();整個web應用對象,或者用ServletConfig對象.getServletContext()獲得
String str = context.getInitParameter(“encoding”);//獲得全局參數(shù)
5、ServletConfig config = this.getServletConfig(“p1”);//獲得某個Servlet專用的配置對象
String str =config.getInitParameter(“p2”);//獲得某個Servlet的專有配置參數(shù)
6、String str = request.getParameter(“s”);//獲得頁面?zhèn)鬟^來的參數(shù)
7、String[] sa = request.getParameterValues(“sa”);//獲得字符串數(shù)組
8、request.setAttribute(“r”,“寶寶”);//往request作用域中存值。在頁面可以${r}這樣取出寶寶。
9、PrintWriter out = response.getWriter();//獲得標準輸出流,此流內(nèi)部做了處理直接會輸出給瀏覽器。
10、request.getRequestDispatcher(“/index.jsp”).forward(request,response);//轉(zhuǎn)發(fā)response.sendRedirect(“index.jsp”);跳轉(zhuǎn)
二
連接數(shù)據(jù)庫的基本過程
加載驅(qū)動程序
創(chuàng)建連接對象
創(chuàng)建語句對象
編寫SQL語句
使用語句對象執(zhí)行SQL語句
如果有結果集對結果集進行處理
關閉結果集對象(如果有),關閉語句對象,關閉連接對象
如何加載驅(qū)動程序
Class.forName(“驅(qū)動程序名字”):
如何創(chuàng)建連接
通過DriverManager的getConnection方法,有3個參數(shù),第一個參數(shù)是URL,第二個參數(shù)是用戶名,第三個參數(shù)是口令。
三
HTTP 是一個屬于應用層的面向?qū)ο蟮膮f(xié)議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統(tǒng)。它于1990年提出,經(jīng)過幾年的使用與發(fā)展,得到不斷地完善和 擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規(guī)范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經(jīng)提出。
HTTP協(xié)議的主要特點可概括如下:
1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務器聯(lián)系的類型不同。由于HTTP協(xié)議簡單,使得HTTP服務器的程序規(guī)模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節(jié)省傳輸時間。
5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務處理沒有記憶
能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
第二篇:javaWeb總結+小結
JavaWeb B/S與C/S的區(qū)別
1,從安裝上來講,B/S只需要在服務器端安裝即可,而C/S卻需要每一個客戶端進行安裝。2,從部署上來說,B/S只需要服務器能夠支持即可,而C/S卻對每一個客戶端的電腦提出了要求。
3,從升級,維護角度來說,B/S只需要在服務器端升級維護即可,像網(wǎng)易的郵箱,而C/S卻是服務器更新維護一次,客戶端就要下載相關的補丁才能使用 4,從安全性來講,B/S是基于服務器的,較之C/S安全性好
5,從本質(zhì)上來說,B/S是基于請求驅(qū)動的,即客戶端發(fā)送一個Http請求,然后服務器進行處理之后,響應給客戶端,而C/S卻是基于事件驅(qū)動的,像騰訊的QQ。
6,從耦合度來講,B/S與服務器端耦合,而C/S卻是與客戶端的操作系統(tǒng)進行耦合。但是Client/Server(從游戲的角度來講)較之Brows/Server具有優(yōu)質(zhì)的畫面。
Servlet的使用步驟:
1,創(chuàng)建一個JAVA類,存放在com.fit.servlet包中,并且此類extends HttpServlet類,才能成為一個Servlet 2,覆寫doGet()和doPost()方法
3,最后,在web.xml文件中進行Servlet配置。具體的配置如下:
就是指Servlet從創(chuàng)建出實例對象到銷毀的過程。它是一個容器,負責創(chuàng)建實例來接受客戶端的請求,并且以多線程的方式響應給客戶。具體過程如下:
Servlet被服務器實例化之后,容器運行其init方法進行初始化,請求到達時運行其service方法,在此過程中僅創(chuàng)建一個對象,然后service方法自動調(diào)用與請求相應的doXxx方法,當服務器決定將實例進行銷毀時,再調(diào)用其destroy方法。
與CGI(通用網(wǎng)關接口)的區(qū)別在于,Servlet處于服務器進程中,它通過多線程的方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每一個請求都產(chǎn)生新的進程,服務完成后就銷毀,所以效率低于Servlet 作用:可以用來進行接收客戶端的請求,也可以進行請求流的控制。
Http協(xié)議:(了解)
首先它是(Hypertext Transfer Protocol)超文本傳輸協(xié)議。
HTTP報文由從客戶機到服務器的請求和從服務器到客戶機的響應構成。請求報文格式如下:
請求行 - 通用信息頭 - 請求頭 - 實體頭 - 報文主體
請求行以方法字段開始,后面分別是 URL 字段和 HTTP 協(xié)議版本字段,并以 CRLF 結尾。
應答報文格式如下:
狀態(tài)行 - 通用信息頭 - 響應頭 - 實體頭 - 報文主體
狀態(tài)碼元由3位數(shù)字組成,表示請求是否被理解或被滿足。原因分析是對原文的狀態(tài)碼作簡短的描述,狀態(tài)碼用來支持自動操作,而原因分析用來供用戶使用??蛻魴C無需用來檢查或顯示語法。工作流程:
一次HTTP操作稱為一個事務,其工作過程可分為四步:
首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作就開始了。
建立連接后,客戶機發(fā)送一個請求給服務器,請求方式的格式為:統(tǒng)一資源標識符(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內(nèi)容。
服務器接到請求后,給予相應的響應信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內(nèi)容。
客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客 戶機與服務器斷開連接。
Javascript的作用:
1,進行驗證(通過正則表達式,在css+HTML的部分特性進行瀏覽器端的格式驗證工作)
2,進行交互(將客戶端的一個請求通過JavaScript可以發(fā)送到服務器端,也可以在瀏覽器端進行人機的交互,突破了以前靜態(tài)頁面的交互性限制)3,進行特效的處理,如走馬燈,時間時鐘。
Servlet生命周期:(詳細)是指Servlet實例從被創(chuàng)建到其消失(對象銷毀,回收)中間的時間及各個階段,稱之為Servlet生命周期。
前提:web服務器加載類。之后執(zhí)行以下過程:
1,實例化:Servlet容器創(chuàng)建Servlet實例,具體就是當接收到客戶端的第一次請求時,Servlet容器負責創(chuàng)建Servlet的一個實例。且在此過程中僅創(chuàng)建一個實例,通過多線程的方式響應客戶端的請求
2,初始化:該容器調(diào)用init()方法。
3,服務:當請求到達時,該Servlet容器自動調(diào)用server()方法,根據(jù)客戶端發(fā)送請求的方式,選擇doXxx()方法執(zhí)行
4,銷毀:當web服務器被卸載的時候,調(diào)用destroy()方法進行對象的銷毀。請看以下的一段代碼: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;
public Test(){
super();
System.out.println(“===========================”);
} public void destroy(){
System.out.println(“對象被銷毀!”);} public void init()throws ServletException {
System.out.println(“對象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println(“get方法執(zhí)行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
System.out.println(“服務開始啟動了!”);
super.service(arg0, arg1);}
}運行效果如下:
=========================== 對象初始化!服務開始啟動了!
get方法執(zhí)行
2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 對象被銷毀!
分析原因:
1,實例化對象發(fā)生在客戶端請求第一次到達的時候,而不是類被加載的時候。2,對象只被實例化一次.3,如果service()被覆寫的話,則調(diào)用的時候加入super.service(arg0, arg1);這句話時候才可以清楚的調(diào)用的doXxx()方法,如果不加入此句話,那么將不會執(zhí)行doGet()方法。所以一般不要覆寫service()方法。只需要覆寫doGet()和doPost()方法。
4,當web服務器被卸載的時候,將執(zhí)行destroy()方法。進行對象的銷毀!
Jsp頁面構成元素,Jsp跟Html的區(qū)別,優(yōu)勢
Jsp定義:(Java Server Page)Java服務器端語言,組成如下: 1,靜態(tài)模板:由HTML,css,JavaScript等元素構成。
2,指令:設定網(wǎng)頁元素的屬性,用于提供這個歌JSP網(wǎng)頁的相關信息。
3,腳本元素--聲明:<%!...%>,在此之中可以進行變量,常量的定義,類,方法都可以聲明,但是一般不用。
4,腳本元素--Java腳本:<%...%>,在此期間可以進行Java代碼的拼寫。5,腳本元素--表達式:<%=..%>,用于表達式輸出時使用。
6,動作:利用JSP動作可以重用JavaBean組件,可以動態(tài)的包含頁面,也可以進行服務器端的跳轉(zhuǎn)(即將用戶的請求轉(zhuǎn)發(fā)給其他的頁面)。7,注釋:
--HTML注釋:,此種注釋可以在頁面中看到,成為客戶端注釋。--Jsp注釋:<%----%>,此種注釋在頁面中看不到,也成為服務器端注釋。--Java注釋:
?單行注釋:// ?多行注釋:/*???*/ Jsp優(yōu)點:使用HTML,CSS等技術構建頁面的模板部分,用Java語言根據(jù)用戶的輸入動態(tài)生成可變的內(nèi)容部分。既可以實現(xiàn)HTML控制頁面布局,也亦可以實現(xiàn)Servlet的功能,實現(xiàn)了內(nèi)容與表示分離。Jsp的常見指令,并說出靜態(tài)包含和動態(tài)包含的區(qū)別
Page指令:<%@ page language=”java” import=” 完整的包.類名稱” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(設置是否能多線程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp頁面中引入用戶自定義的標簽庫。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 靜態(tài)包含跟動態(tài)包含的區(qū)別:
<%@ include file=”文件名%>,此包含屬于靜態(tài)包含,是指先將文件包含進來然后在進行編譯,編譯后生成的class文件中,被包含的文件在靜態(tài)塊中。且此種包含不允許帶參數(shù)。
Jsp常見的動作,?調(diào)用JavaBean相關:
?
?
?
?
?
?輸入/輸出對象
?request:表示客戶端對網(wǎng)頁的請求
?response:用于處理Jsp生成的響應,使用Http協(xié)議將響應發(fā)送給客戶端。
?out:表示從response中取得的輸出流。常用的方法有write(),print(),println()等,用于在頁面中輸出文本形式的響應內(nèi)容 ?作用域通信對象
?pageContext:此通信對象的作用域僅在當前頁面有效,一旦跳轉(zhuǎn)則不可用
?request:此通信對象的作用域針對的同一個客戶的請求,如果不是同一個請求則不可以使用
?session:此通信對象的作用域適用于一次會話,即打開的同一個瀏覽器的所有頁面都可以適用
?application:此通信對象的作用域適用于基于WEB服務器的所有會話,適用于監(jiān)聽器 ?Servlet對象
?page:指向當前Jsp頁面經(jīng)過轉(zhuǎn)譯(jsp?.java文件),編譯(.java文件?.class文件)后的對象本身,即編譯后的Servlet對象本身
?config:是在一個Servlet初始化時,服務器向它傳遞的初始化信息。初始化信息可以在web.xml中找到。?錯誤對象
?execption:表示Jsp頁面運行時拋出的異常對象,可以在專門準備的錯誤處理頁面中訪問這個異常對象。
Jsp執(zhí)行過程:
?jsp文件轉(zhuǎn)譯:當客戶端請求一個正確的Jsp文件時,將Jsp—>.java文件(即將Jsp文件翻譯成相應的Servlet類的源文件)?編譯:.java文件?.class文件,即將Servlet類的源文件進行編譯成為.class的Servlet文件。?調(diào)用Servlet的service()方法響應用戶的請求。
描述Jsp和Servlet的區(qū)別,共同點,各自的應用范圍:
1,從發(fā)展上來看,Jsp可以避開Servlet的輸出頁面的繁瑣步驟,它集合了HTML和Servlet的優(yōu)點。
2,從本質(zhì)上來說,Jsp是Servlet的擴展,它是Servlet的簡易形式。Jsp經(jīng)過轉(zhuǎn)譯之后就成為了類Servlet。
3,從創(chuàng)建方式上來說:Jsp由HTML代碼和JSP標簽構成,而Servlet則完全是由程序代碼構成擅長于流程控制和事務處理的類
4,從使用角度來說:在MVC中,Jsp擔任的是VIEW層,側重于視圖,而Servlet則充當?shù)目刂茖?,側重于控制邏輯。請求轉(zhuǎn)發(fā)和重定向
? response.sendRedirect():利用response對象向客戶端發(fā)回一個響應指示其訪問其他URL資源,或者說是一個web組件向另一個web組件發(fā)送一個新的請求,屬于重定向,地址欄有變化。且不可以傳遞屬性request參數(shù),當所有的代碼執(zhí)行完之后才進行重定向。
?request.getRequestDispatcher().forword(req,resp):web組件將一個請求轉(zhuǎn)發(fā)給另一個web組件,他們始終是同一個請求,在此期間可以傳遞request屬性參數(shù),地址欄沒有變化。且一執(zhí)行到此代碼處,后邊的將不再執(zhí)行
JavaBean的組成:
?類必須是具體的,公共的。?提供無參數(shù)的構造方法
?提供getter()和setter()方法訪問它的屬性。版權所有@楊肖飛yangxf159371@126.com
第三篇:javaweb課程設計
課程設計:基于Java Web的討論區(qū)BBS系統(tǒng)的設計與實現(xiàn)
本系統(tǒng)要求實現(xiàn)以下主要功能:
(1)登錄:提供用戶登錄系統(tǒng)的功能,需要輸入用戶名和密碼
(2)注冊:提供用戶注冊的功能,需要輸入用戶名、密碼、密碼確認、Email、QQ
(3)修改注冊信息:提供用戶修改注冊信息的功能,可以修改密碼、Email、QQ
(4)瀏覽討論區(qū):用戶登錄后就可以瀏覽系統(tǒng)中已存在的討論區(qū),用戶可以查看某討論
區(qū)的詳細信息,也可以進入該討論區(qū)瀏覽已發(fā)表的帖子,以及回帖
(5)創(chuàng)建討論區(qū):用戶可以創(chuàng)建討論區(qū),每個討論區(qū)包含一個名稱和順序號,每個討論
區(qū)的名稱在系統(tǒng)中是唯一的,順序號表示討論區(qū)在列表中的排序
(6)修改討論區(qū):提供討論區(qū)名稱和順序號的修改功能
(7)刪除討論區(qū):提供討論區(qū)刪除的功能,方便管理員進行討論區(qū)管理
(8)瀏覽帖子:用戶進入一個討論區(qū)后,可以看到帖子列表,包含帖子主題、作者、創(chuàng)
建時間、回復次數(shù),點擊一個帖子,可以查看該帖子的內(nèi)容和回帖
(9)創(chuàng)建帖子:用戶進入一個討論區(qū)后,可以選擇創(chuàng)建一個新帖子,需要輸入帖子標題
和內(nèi)容
(10)修改帖子:提供給管理員使用,修改帖子標題和內(nèi)容
(11)刪除帖子:提供給管理員使用,方便管理員進行帖子整理
(12)回復帖子:用戶在瀏覽帖子信息的時候,可以進行回復
第四篇:javaweb學習心得
學習心得
在寫心得之前總結下中級部分學習的內(nèi)容,我們的中級部分主要學習了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,過濾器,監(jiān)聽器,JSTL,EL,jQuery,Ajax。
下面就各個模塊進行總結:在學習html時,我是對這個沒太在意的,因為里面全部是標簽,沒有需要理解的內(nèi)容,全部是屬于識記的,所以在學習時相對輕松,對于html常用的標簽都是非常清楚的form中的十一種類型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的標簽如div,table,span,select都是重要的標簽.Css的學習:雖然說在標簽中也可以定義樣式,但是這么做看起來不是那么明智,我在學CSS時還是比較努力的,所有的樣式效果都測試過,并且寫了相應的案例,只是過了不到3個月就忘了一大半,很多時候都是查文檔才能寫出來的,雖然CSS對于我們來說不必要非常精通,但是我覺得掌握的東西越多,以后的工作就越輕松,所以在中級結束后也會去看看前面的筆記和案例。
Javascript:js 我認為是最重要的,甚至于超過servlet,jsp,在上課期間,講的內(nèi)容還是比較少的,就javascript中創(chuàng)建對象來說吧,應該只講過3中方法,雖然在一般的情況下是用不上的,但是我覺得還是有必要學習的,這樣有助于看懂別人寫的框架,在javascript這部分學習中講的最多的還是dom操作,不過我覺得用dom操作太繁瑣了,寫的代碼太多,而且效率看起來也不高,后面就是講的事件,事件也算是簡單的,只是對觸發(fā)的事件進行相應的響應。除了這些就是javascript流程控制,對象一些基本語法,這些和java類似,所以在上課時沒有講得太多。
Xml: Markup Language可擴展標記語言。它是由SGML(Standard Gerneralized Markup language)發(fā)展而來的,允許開發(fā)者自定標簽,可以將標簽和內(nèi)容有效的分離。在XML技術里,可以編寫一個文檔來約束XML文檔的書寫規(guī)范,稱之為XML約束。本文主要介紹DTD與Schema兩種約束,在這里學習了dtd,scheama,定義XML約束,這部分的學習是我感覺最累的一部分,DTD還算好,SCheama里面的內(nèi)容,現(xiàn)在都忘了,沒有任何記憶,只知道在XML約束中有著兩中方式,還好這些在剛開始工作時是用不上的,因此我也沒有用很多時間來學習。
Servlet:我覺得是比較簡單的,可能是因為它是java代碼,容易理解。首先講的是開發(fā)環(huán)境的配置,安裝tomcat,了解tomcat下的目錄,以及web工程下的目錄。后來是講了servlet的訪問方式,post和get的區(qū)別,處理中文亂碼是servlet中一個重要的知識點,幾乎每個項目都會遇到這個問題。主要亂碼有get,post亂碼,是通過設置request或者response的編碼方式來實現(xiàn)的。Servlet間的跳轉(zhuǎn)方式有重定向和轉(zhuǎn)發(fā),對于重定向和轉(zhuǎn)發(fā)的區(qū)別,現(xiàn)在理解的很透徹了,重定向是不能獲取request中參數(shù),是客戶端的兩次請求,而轉(zhuǎn)發(fā)是服務器內(nèi)部跳轉(zhuǎn),不過,兩種在設置過濾器的情況下,都要通過過濾器才能跳轉(zhuǎn)。Servlet的生命周期是筆試的必考題,其實這是很簡單的,只需要理解,沒必要死記硬背的,session算是重要的知識點,很多數(shù)據(jù)都是存儲在內(nèi)存中,如購物車,用戶信息等,還可以對session設置生存時間。說到session就必須說說四種會話跟蹤技術,cookie,URL重寫,表單域隱藏和session。
JSP:JSP實際上和servlet是一樣的,只不過兩者側重點不同,JSP的內(nèi)置對象和作用域大致是一樣的,JSP中還有動作,常用的有操作JavaBean的動作,頁面跳轉(zhuǎn)的動作,以及包含的動作。這里重點提到兩種包含的區(qū)別。在JSP還講過jstl和EL表達式,都是基礎的應用,不過寫自定義的標簽還是要有一定的java基礎的,我開始不太理解標簽的解析過程,后來看了幾個例子,發(fā)現(xiàn)自定義的已不是那么難。
jQuery:jQuery可以說是中級部分學的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學習jQuery后,就再也不想用javascript來獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡單,不需要自己封裝一個類,$.get和$.post 能夠省去很多麻煩,jQuery的監(jiān)聽事件也是很簡單,不需要在標簽中添加對應事件,可以動態(tài)的綁定事件。還有就是dom操作更是方便。我在學習完Ajax,json后就發(fā)現(xiàn),即使是沒有JSP,也能做出一個動態(tài)頁面出來,只是會存在效率問題。
總結:雖然說這上面的知識大部分都掌握了,但是能否靈活運用才是重點,所以在今后的學習中多思考問題是否有多種解決方法。
第五篇:Javaweb期末試卷總結版2
Java Web試題 JAVA WEB部分: 1.基于HTTP協(xié)議的Servlet通常繼承__C______, 也可以繼承__B______。這些類型都實現(xiàn)了接口___A_____。
A.javax.servlet.Servlet
B.javax.servlet.GenericServlet C.javax.servlet.http.HttpServlet 2.我們實現(xiàn)的基于HTTP協(xié)議的Servlet的服務方法簽名正確的有__
BCD_____________。
A.public void doGet(ServletRequest req, ServletResponse res)throws IOException, ServletException B.public void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException C.public void service(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException D.public void service(ServletRequest req, ServletResponse res)throws IOException, ServletException
重寫服務方法,一般是以下兩種方式: doGet(HttpServletRequest req,HttpServletResponse res)doPost(HttpServletRequest req,HttpServletResqonse res)
HttpServlet繼承自GenericServlet,其中的service方法自動實現(xiàn); GenericServlet的調(diào)用方法: 容器
-->service(ServletRequest req,ServletResponse res)-->service(HttpServletRequest req,HttpServletResponse res)-->METHOD=“GET”-->doGet(HttpServletRequest req,HttpServletResponse res)-->METHOD=“POST”-->doPost(HttpServletRequest req,HttpServletResponse res)
API中有D這個方法
3.在Servlet中要輸出內(nèi)容,使用HttpServletResponse的方法_setContentType 設置內(nèi)容,對于文本類型調(diào)用方法__ getWriter _獲得一個___ PrintWriter ___的輸出流,對于二進制類型調(diào)用_ getOutputStream 獲得_ ServeltOutputStream _的輸出流。調(diào)用HttpServletRequest的方法_ getParameter 解析有名參數(shù),調(diào)用_ getInputStream 獲得一個_ ServletInputStream _的輸入流。在Servlet中也可以調(diào)用_ ServletContext 和_ HttpServletRequest _的方法_ getRequestDispatcher __獲得__ RequestDispatcher __, 將請求的處理權交給一個新的資源。A.ServletInputStream
B.ServletContext
C.HttpServletRequest D.setContentType
E.getInputStream
F.getOutputStream G.getRequestDispatcher H.RequestDispatcher
I.getParameter J.ServeltOutputStream K.getWriter
L.PrintWriter
4.控制一個Servlet的生命周期的方法有__C______, _____B___和____A____。其中 ___C_____在所有的請求到來之前調(diào)用,____A____在撤消應用或關閉web container時調(diào)用。Servlet通常只有一個實例,被所有的訪問者共享,因此要注意資源的同步。A.destroy
B.service
C.init 5.以下是部署在主機”%> C.
D.
E.<% int i = 10;%>
F.<%!int i = 10;%> G.< %@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%> H.<%=new java.util.Date()%> I.
11.在directive page中,__B______屬性可反復出現(xiàn),___AC_____屬性的卻省值為true, ____E____屬性的值指向處理異常的頁面,______D__表示激活EL。A.autoFlush
B.import
C.session D.isELIgnored=false
E.errorPage
jsp的page指令(directive)
jsp的page指令(directive)影響著由JSP頁面生成的Servlet的整體結構!page指令的功能包括(1)類的導入(2)Servlet父類的制定(3)內(nèi)容類型的設置(4)頁面會話的設置(5)頁面緩沖的設置
(6)錯誤頁面的設置(7)控制線程行為
page屬性(attribute)值的兩邊的雙引號也可以用單引號代替,單引號不能省略,若屬性值本身含有引號,則在它們之前加上反斜杠來轉(zhuǎn)義。
page 的幾個重要的指令:1.import 唯一的一個允許多次出現(xiàn)的attirbute.默認情況下有以下幾個是自動導入的包,java.lang.*;java.servelt.*;javax.servlet.jsp.*;javax.servlet.http.*!2.pageEncoding用來單獨設置頁面的字符集。%@page pageEncoding=“GB2312”% 3.contentType設置響應報頭標明發(fā)送到客戶端的MIME類型和頁面字符集!<%@ page contentType=“text/html;charset=gb2312”%> 4.session 屬性控制頁面的會話特性!%@page session=“true|false”%
默認值為true.5.buffer 和 autoFlush 屬性
buffer 設置緩沖區(qū)的大小 <%@ page buffer=“sizekb|none”%>
autoFlush 當緩沖區(qū)滿后自動清空!%@page autoFlush=“true|false”% 默認值為true,為false時會拋出一個異常。
6.errorPage 和isErrorPage(attribute)<%@page errorPage=“RelativeURL ”%>指定一個頁面處理當前頁面拋出但未捕獲的異常對象。
%@page isErrorPage=“true|false”% 表明當前頁面是否可以作為其他jsp頁面的錯誤頁面??梢詫⒋隧撁娣旁赪EB-INF目錄中,有助于提高程序的安全性。
1、<%@ page buffer=“25kb” autoFlush=“true” %>
2、buffer=“none | 8kb | sizekb” buffer的大小被out對象用于處理執(zhí)行后的JSP對客戶瀏覽器的輸出。缺省值是8kb
3、autoFlush=“true | false” 設置如果buffer溢出,是否需要強制輸出,如果其值被定義為true(缺省值),輸出正常,如果它被設置為false,如果這個buffer溢出,就會導致一個意外錯誤的發(fā)生.如果你把buffer設置為none,那么你就不能把autoFlush設置為false.12.有一個JavaBean com.briup.Student, 在JSP中用action在session作用域里創(chuàng)建一個對象hellen的語句是___
什么是JavaBean?(參見文檔)
13.以下_ABCD_______是JSP中正確的注釋:
A.<%--comments--%> 真正的注釋
B.<% //comments %> C. 會寫在頁面當中
D.<%!/* comments */ %> JAVA中的單行和多行注釋
14.以下__AB______是錯誤的:
A.<%!int i = 10;int j = 10;i += j;%> B.<% int getHash(String str){ return str.hashCode();} %> 聲明腳本 C.<%!class A { void print(){System.out.println(“in A”);}} %> 15.在JSP中有很多隱含變量,request的類型是C_javax.servlet.http.HttpServletRequest______, response的類型是_I__javax.servlet.http.HttpServletResponse__, page的類型是__E__javax.servelet.jsp.JspPage_,pageContext的類型是__B__javax.servlet.jsp.PageContext____, session的類型是_D__javax.servlet.http.HttpSession_____, application的類型是____G__ javax.servlet.ServletContext__, config的類型是__F_javax.servlet.ServletConfig_, out的類型是_H__ javax.servlet.jsp.JspWriter_____, exception的類型是___A__java.lang.Throwable___。A.java.lang.Throwable
B.javax.servlet.jsp.PageContext C.javax.servlet.http.HttpServletRequest
D.javax.servlet.http.HttpSession E.javax.servelet.jsp.JspPage
F.javax.servlet.ServletConfig G.javax.servlet.ServletContext H.javax.servlet.jsp.JspWriter I.javax.servlet.http.HttpServletResponse
參見PDF97頁
16.JSP在處理客戶請求前會被編譯成servlet, JSP中declaration中定義的變量和方法在運行時成為對應servlet的___B_____變量和方法;scripting會成為服務方法____C____的語句。JSP的生命周期受到____A____,___C_____和___D_____的控制。A.jspInit
B.member
C._jspService
D.jspDestroy
調(diào)出一個編譯后的JSP文件給學生看
D:JAVATomcat-5.5.25workCatalinalocalhostRunCommunityorgapachejsppages
17.在web應用webdev的WEB-INF的目錄下有一個標簽庫描述文件sample.tld, 其內(nèi)容部分如下:
在hello.jsp中要使用標簽hello, 因此必須先引入該標簽庫,語句是__<%@taglib uri=”/WEB-INF/sample.tld” prefix=”s”%>_____。要用hello標簽在頁面上給”world“打招呼的語句是___
18.在web應用webdev的WEB-INF/tags目錄下放置了一些標簽文件,用前綴”me”引入這些標簽到一個jsp的 directive taglib的表達式是___<%@taglib tagdir=”/WEB-INF/tags” prefix=”me”%>__。
19.一個沒有body的標簽其tag handler要實現(xiàn)接口__C______;如果某個標簽有body, 但標簽不與body交互,tag handler要實現(xiàn)接口___E_____, 如果要與body交互,tag handler要實現(xiàn)接口____D____。通常前兩種情況的tag handler會繼承___A_____, 最后一種情況tag handler會繼承_____B___。
A.javax.servlet.jsp.tagext.TagSupport B.javax.servlet.jsp.tagext.BodyTagSupport C.javax.servlet.jsp.tagext.Tag D.javax.servlet.jsp.tagext.BodyTag E.javax.servlet.jsp.tagext.IterationTag 20.在EL中以下____B____可以獲得requestURI:
A.${requestScope.request.requestURI} B.${pageContext.request.requestURI} C.${requestScope.requestURI} 21.EL中可使用一些隱含對象,通過____C____可以訪問request中的屬性(attriubte), 通過___A_____可以訪問session中的屬性, 通過___B_____可以訪問application中的屬性, 通過___D_____可以訪問瀏覽器輸入的參數(shù),通過____G____可以訪問請求頭中的參數(shù),通過____E____可以訪問web應用的參數(shù),通過____F____可以訪問cookie。A.sessionScope
B.applicationScope
C.requestScope D.param
E.initParam
F.cookie G.header 22.在EL中能夠訪問的函數(shù)(function)必須是_____A___。
A.public static
B.protected
C.protected static D.public static void
F.protected static void 23.在EL中訪問JavaBean Student的對象smallTank的屬性name正確的是__ABC______。A.${smallTank.name}
B.${smallTank[?name?]} C.${smallTank[“name”]}
D.${smallTank(?name?)}
SESSION AAA=”aa”
APPLICATION(aa=”hhhh”)
applicationScope['aa'] 此種情況只能用方括號
24.Struts提供MVC的一個實現(xiàn),是Java Web應用的一個框架(Framework).它主要采用了____D____模式。瀏覽器請求被控制器servlet ___A_____截取,控制器將瀏覽器表單的輸入封裝到____F____類型的JavaBean對象中,如果應用需要作合法性檢測,該類型的____G____方法會被調(diào)用,該方法的返回類型是_____B___。如果合法性檢測正確,控制器會將調(diào)用類型為____H____對象的方法__E______處理請求,該方法返回類型為____C____。A.org.apache.struts.action.ActionServlet
B.org.apache.struts.action.ActionErrors C.org.apache.struts.action.ActionForward
D.command
E.execute F.org.apache.struts.action.ActionForm G.validate H.org.apache.struts.action.Action 25.使用Tomcat,我們通常會設置環(huán)境變量_C_ CATALINA_HOME_指向安裝目錄;web應用的卻省部署目錄在安裝目錄下的___A__webapps___子目錄;如果有多個web應用共享的包如數(shù)據(jù)庫驅(qū)動程序,我們應該將其放置在安裝目錄的__D__common/lib__子目錄;Tomcat的主要配置文件是安裝目錄下__B_conf _子目錄下的___F__server.xml___;Tomcat 5的應用相關的配置文件放在安裝目錄下___E__conf/Catalina/
B.conf
C.CATALINA_HOME D.common/lib
E.conf/Catalina/