第一篇:java web總結
Java Web 總結
1.JSP運行原理
(1)用戶通過客戶端瀏覽器向服務器發送請求。
(2)JSP文件將JSP引擎編譯成Java的class文件,即servlet。
(3)將產生的servlet加載到內存執行。
(4)Servlet的運行結果以HTML(或XML)形式通過web服務器返回客戶端的瀏覽器。
2.web項目設計
(1)公開目錄(2)web_INF目錄(3)Class目錄
3.JSP的基本語法
(1)腳本元素:聲明、腳本段、表達式。
(2)腳本段:<%%>
(3)聲明:<%!%>不會產生任何輸出內容→聲明全局變量。
(4)表達式:<%= %>
(5)EL表達式:${ }
(6)指令元素:<% @ %>不在客戶端可見
(7)page指令、include指令、taglib指令
page指令:language屬性、contentType(text/html)、text/plain application/msword、application/x-msexecl、PageEncoding、info、import屬性.include指令:在JSP頁面中靜態包含一個文件 <@include file=“"%>taglib指令: <%@taglib uri=”標記庫的uri地址“ prefix=”前綴名“%> 指令元素翻譯階段執行,動作元素執行階段被執行。
用
考點:
4.指令與動作的區別(include)
1.執行時間不同
指令<%@ include file=” “%>是偏譯時包含靜態文件
動作
2.引入內容不同
指令<%@include file=”relatirveURI“%>引入靜態文本(html.jsp)。
動作
5.JSP內置對象
Out,request,response,session,application,page,pageContext,exception,config
request客戶端向服務端發送請求。
response用于服務器端封裝JSP處理請求后產生的結果。
response對象的send Redirect(url)方法相當于兩次請求。
而
6.session和cookie的區別
1.存放地點不同
Session存放在服務器端,cookie存放在客戶端的硬盤里
2.存活時間
session隨用戶訪問服務器而產生,隨客戶下線或超時而消失
3.安全性
session存放在服務器端,不能被修改,且隨客戶端瀏覽器的關閉而消失,安全性較好。Cookie存放在客戶端,安全性較差。
7.數據庫
java.sql.Driver
java.sql.DriverManager——加載驅動程序
java.sql.Connetion——表示數據庫連接對象,對數據庫一切操作都在這個基礎上
java.sql.Statement——執行SQL語句和返回結果
java.sql.ResultSet——結果集用來暫時存放數據庫查詢操作結果
8.編寫程序的步驟
1.裝載驅動程序
class.forName(”com.mySQL.jdbc.Driver“)
2.定義所需連接數據庫的地址
String mysqlURL=”jdbc.mysql://host:port/dbName“
3.建立與數據庫的連接
Connection conn=DriverMannager.get Connection(url,”登錄數據庫用戶名“,”
密碼“)
4.聲明并執行SQL語句
5.處理返回的結果
6.關閉對象
String driverStr=”com.mysql.jdbc.Driver“
String connstr=”jdbc:mysql://localhost:3306/book“;
Class forName(driver Str)
Connection conn=DriverManager.getConnection(connstr.”root“.”123“)第4步:建立語句對象
Statement stmt=conn.createStatement()
第5步:聲明并執行SQL語句
String sql=”select*from book“;
ResultSet rs=stmt.executeQuery(sql);
第6步:
Statement接口的3個方法:
1、ResultSet executeQuery(String sql)
2、int execute Update(String sql)
3、boolean execute(String sql)
ResultSet的方法:
1、boolean next()
2、get xxx()
第7歩:rs.close()stmt.close()con.close()
注:關閉資源的順序與打開資源順序恰好相反。
第8步:異常處理
try{.........}catch(SQLExecption ex){.........}
9.Java Bean 組件(可重用)
組件:是一個獨立的模塊,外界可以不了解內部如何實現,只需通過其提供的接口對組件進行訪問即可,組件可重用。
特點:
1、實現代碼重復使用;
2、易編寫,易維護,易使用。
10.Java Bean類的編碼約定
1、類實現了java.io.Serializable接口
2、必須放在某個Package(包)中
3、類中如果有構造方法,那么這個方法是共有的,并且無參數
4、所有屬性都是私有的(private修飾)
5、get XXX:用來獲取屬性,此方法是共有的6、set XXX:用來設置屬性,此方法是共有的7、對于boolean類型的成員變量允許使用“is”代替“get”和“set”
8、類中的普通方法不適合上面的命名規則,但這個方法必是public的。
3個標記:
11.servlet的生命周期
(1)當客戶第一次請求servlet時,servlet被加載到內存 容器會創建servlet實例,并調用其init()方法進行初始化工作。
(2)容器創建請求對象,然后調用servlet的service()方法為客戶提供服務。
(3)當servlet不再被需求時,容器調用servlet的destory()方法將servlet實例銷毀。
12.Servlet開發
引入import.javax.servlet.* 和import.javax,servlet.http.*包
13.Servlet過濾器
Servlet過濾器是一種java組件,它位于客戶端和處理程序之間
Servlet過濾器工作原理
14.Model1和model2
Model1:JSP+JavaBean
Model2:JSP+Servlet+JavaBean
Model1中,jsp頁面實現頁面顯示、業務邏輯和流程控制,數據處理由JavaBean完成。
優點:進行快速和小規模的應用開發時優勢非常明顯。
缺點:不利于web應用的擴展和更新;調試和排錯困難。
Model2中,MVC模式--->模型-視圖-控制器.即把web應用的輸入輸出和處理流程按照Model.View和Controller分成三層。
Model1和Model2的區別:
Model1和Model2實際上就是對采用JSP技術開發的web應用的不同模型的描述。Model1采用JSP+JavaBean技術開發web應用,它比較適合小規模應用的開發,效率較高,易于實現,但由于在JSP頁面中內嵌了大量的Java代碼,以至于當業務邏輯復雜時,代碼可維護性、可擴展性和可重用性就會下降;Model2采用JSP+Servlet+JavaBean技術開發web應用,該模型基于MVC模式,完全實現了頁面顯示和邏輯的分離,它充分利用了JSP和Servlet兩種技術的優點,JSP更適合前臺頁面的開發,而Servlet更擅長服務器端程序的編寫,Model2分工明確,更適合大型項目的開發和管理。
視圖(view)用于與用戶交互,可以用HTML.JSP實現。
15.模型(model)用于表示業務數據和實現業務邏輯,可以用JavaBean實現 控制器(controller)完成流程控制,它接收來自視圖層用戶輸入的數據,并調用相應的模型進行處理,最后選擇合適的視圖去響應用戶。控制層可以用Servlet實現。
優點:MVC模式完全實現了頁面表示和業務邏輯的分離;
MVC優勢之一在于三層各司其職,互不干涉。
缺點:沒有明確的定義。
模型層為JavaBean,實現了數據的表示和業務邏輯,視圖層為JSP頁面,只負責顯示功能。
控制器為Servlet,負責接收用戶的請求,設置JavaBean屬性,調用JavaBean完成業務處理,最后將處理結果交給JSP頁面顯示。
16.自定義標簽
對隱式對象的操作、處理表單、訪問數據庫及其他企業級服務。
自定義標簽種類:
1.不帶有屬性和標簽體:
2.帶有屬性沒有標簽體的標簽:
3.帶有屬性帶有標簽體:
17.EL表達式
基本語法${expr}
功能:對屬性對象的簡明訪問:${user}
對屬性對象的屬性訪問:${customer.firstname}
對屬性集合元素的訪問:對數組和list:${variable[index]}對map:${variable[key]}
對請求參數cookie等的簡單訪問.請求參數${param.custID}
Cookie對象:${cookie.userCookie}
18.”.“操作符和”[ ]“操作符
${user.address}=${user[address]}
訪問數組和集合元素,需使用[ ]
${class[0].name}=${class[0][name]}
${param.username}={%=request.getparameter(”userName“)%}
19.”.“與”[ ]“使用存在差異
1.當訪問的數據中包含一個特殊字符(如:”.“或”_“時),就必須用”[ ]“操作符
2.當動態取值時必須使用”[ ]“操作符,”.“操作符只能取到靜態的值
注:當”[ ]"操作符中的屬性名為常量時必須用''''引起,否則將會當做變量來處理.20.SQL標簽
1.
2.
3.
4.
5.
21.Tomcat的目錄結構及描述:
bin放置啟動和關閉Tomcat的可執行文件和批處理文件
common放置在此目錄中的jar、class文件,可以被此服務器下所有的web應用使用
conf放置Tomcat的主要配置文件
logs放置Tomcat的日志文件
server放置Tomcat管理接口的應用
src放置Tomcat相關的源代碼
temp放置Tomcat臨時文件
webapps 放置Tomcat應用的目錄
work放置JSP頁面翻譯成對應的Servlet類的目錄
第二篇:javaWeb總結+小結
JavaWeb B/S與C/S的區別
1,從安裝上來講,B/S只需要在服務器端安裝即可,而C/S卻需要每一個客戶端進行安裝。2,從部署上來說,B/S只需要服務器能夠支持即可,而C/S卻對每一個客戶端的電腦提出了要求。
3,從升級,維護角度來說,B/S只需要在服務器端升級維護即可,像網易的郵箱,而C/S卻是服務器更新維護一次,客戶端就要下載相關的補丁才能使用 4,從安全性來講,B/S是基于服務器的,較之C/S安全性好
5,從本質上來說,B/S是基于請求驅動的,即客戶端發送一個Http請求,然后服務器進行處理之后,響應給客戶端,而C/S卻是基于事件驅動的,像騰訊的QQ。
6,從耦合度來講,B/S與服務器端耦合,而C/S卻是與客戶端的操作系統進行耦合。但是Client/Server(從游戲的角度來講)較之Brows/Server具有優質的畫面。
Servlet的使用步驟:
1,創建一個JAVA類,存放在com.fit.servlet包中,并且此類extends HttpServlet類,才能成為一個Servlet 2,覆寫doGet()和doPost()方法
3,最后,在web.xml文件中進行Servlet配置。具體的配置如下:
就是指Servlet從創建出實例對象到銷毀的過程。它是一個容器,負責創建實例來接受客戶端的請求,并且以多線程的方式響應給客戶。具體過程如下:
Servlet被服務器實例化之后,容器運行其init方法進行初始化,請求到達時運行其service方法,在此過程中僅創建一個對象,然后service方法自動調用與請求相應的doXxx方法,當服務器決定將實例進行銷毀時,再調用其destroy方法。
與CGI(通用網關接口)的區別在于,Servlet處于服務器進程中,它通過多線程的方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每一個請求都產生新的進程,服務完成后就銷毀,所以效率低于Servlet 作用:可以用來進行接收客戶端的請求,也可以進行請求流的控制。
Http協議:(了解)
首先它是(Hypertext Transfer Protocol)超文本傳輸協議。
HTTP報文由從客戶機到服務器的請求和從服務器到客戶機的響應構成。請求報文格式如下:
請求行 - 通用信息頭 - 請求頭 - 實體頭 - 報文主體
請求行以方法字段開始,后面分別是 URL 字段和 HTTP 協議版本字段,并以 CRLF 結尾。
應答報文格式如下:
狀態行 - 通用信息頭 - 響應頭 - 實體頭 - 報文主體
狀態碼元由3位數字組成,表示請求是否被理解或被滿足。原因分析是對原文的狀態碼作簡短的描述,狀態碼用來支持自動操作,而原因分析用來供用戶使用。客戶機無需用來檢查或顯示語法。工作流程:
一次HTTP操作稱為一個事務,其工作過程可分為四步:
首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作就開始了。
建立連接后,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。
服務器接到請求后,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內容。
客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客 戶機與服務器斷開連接。
Javascript的作用:
1,進行驗證(通過正則表達式,在css+HTML的部分特性進行瀏覽器端的格式驗證工作)
2,進行交互(將客戶端的一個請求通過JavaScript可以發送到服務器端,也可以在瀏覽器端進行人機的交互,突破了以前靜態頁面的交互性限制)3,進行特效的處理,如走馬燈,時間時鐘。
Servlet生命周期:(詳細)是指Servlet實例從被創建到其消失(對象銷毀,回收)中間的時間及各個階段,稱之為Servlet生命周期。
前提:web服務器加載類。之后執行以下過程:
1,實例化:Servlet容器創建Servlet實例,具體就是當接收到客戶端的第一次請求時,Servlet容器負責創建Servlet的一個實例。且在此過程中僅創建一個實例,通過多線程的方式響應客戶端的請求
2,初始化:該容器調用init()方法。
3,服務:當請求到達時,該Servlet容器自動調用server()方法,根據客戶端發送請求的方式,選擇doXxx()方法執行
4,銷毀:當web服務器被卸載的時候,調用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方法執行”);} 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方法執行
2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 對象被銷毀!
分析原因:
1,實例化對象發生在客戶端請求第一次到達的時候,而不是類被加載的時候。2,對象只被實例化一次.3,如果service()被覆寫的話,則調用的時候加入super.service(arg0, arg1);這句話時候才可以清楚的調用的doXxx()方法,如果不加入此句話,那么將不會執行doGet()方法。所以一般不要覆寫service()方法。只需要覆寫doGet()和doPost()方法。
4,當web服務器被卸載的時候,將執行destroy()方法。進行對象的銷毀!
Jsp頁面構成元素,Jsp跟Html的區別,優勢
Jsp定義:(Java Server Page)Java服務器端語言,組成如下: 1,靜態模板:由HTML,css,JavaScript等元素構成。
2,指令:設定網頁元素的屬性,用于提供這個歌JSP網頁的相關信息。
3,腳本元素--聲明:<%!...%>,在此之中可以進行變量,常量的定義,類,方法都可以聲明,但是一般不用。
4,腳本元素--Java腳本:<%...%>,在此期間可以進行Java代碼的拼寫。5,腳本元素--表達式:<%=..%>,用于表達式輸出時使用。
6,動作:利用JSP動作可以重用JavaBean組件,可以動態的包含頁面,也可以進行服務器端的跳轉(即將用戶的請求轉發給其他的頁面)。7,注釋:
--HTML注釋:,此種注釋可以在頁面中看到,成為客戶端注釋。--Jsp注釋:<%----%>,此種注釋在頁面中看不到,也成為服務器端注釋。--Java注釋:
?單行注釋:// ?多行注釋:/*???*/ Jsp優點:使用HTML,CSS等技術構建頁面的模板部分,用Java語言根據用戶的輸入動態生成可變的內容部分。既可以實現HTML控制頁面布局,也亦可以實現Servlet的功能,實現了內容與表示分離。Jsp的常見指令,并說出靜態包含和動態包含的區別
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”%> 靜態包含跟動態包含的區別:
<%@ include file=”文件名%>,此包含屬于靜態包含,是指先將文件包含進來然后在進行編譯,編譯后生成的class文件中,被包含的文件在靜態塊中。且此種包含不允許帶參數。
Jsp常見的動作,?調用JavaBean相關:
?
?
?
?
?
?輸入/輸出對象
?request:表示客戶端對網頁的請求
?response:用于處理Jsp生成的響應,使用Http協議將響應發送給客戶端。
?out:表示從response中取得的輸出流。常用的方法有write(),print(),println()等,用于在頁面中輸出文本形式的響應內容 ?作用域通信對象
?pageContext:此通信對象的作用域僅在當前頁面有效,一旦跳轉則不可用
?request:此通信對象的作用域針對的同一個客戶的請求,如果不是同一個請求則不可以使用
?session:此通信對象的作用域適用于一次會話,即打開的同一個瀏覽器的所有頁面都可以適用
?application:此通信對象的作用域適用于基于WEB服務器的所有會話,適用于監聽器 ?Servlet對象
?page:指向當前Jsp頁面經過轉譯(jsp?.java文件),編譯(.java文件?.class文件)后的對象本身,即編譯后的Servlet對象本身
?config:是在一個Servlet初始化時,服務器向它傳遞的初始化信息。初始化信息可以在web.xml中找到。?錯誤對象
?execption:表示Jsp頁面運行時拋出的異常對象,可以在專門準備的錯誤處理頁面中訪問這個異常對象。
Jsp執行過程:
?jsp文件轉譯:當客戶端請求一個正確的Jsp文件時,將Jsp—>.java文件(即將Jsp文件翻譯成相應的Servlet類的源文件)?編譯:.java文件?.class文件,即將Servlet類的源文件進行編譯成為.class的Servlet文件。?調用Servlet的service()方法響應用戶的請求。
描述Jsp和Servlet的區別,共同點,各自的應用范圍:
1,從發展上來看,Jsp可以避開Servlet的輸出頁面的繁瑣步驟,它集合了HTML和Servlet的優點。
2,從本質上來說,Jsp是Servlet的擴展,它是Servlet的簡易形式。Jsp經過轉譯之后就成為了類Servlet。
3,從創建方式上來說:Jsp由HTML代碼和JSP標簽構成,而Servlet則完全是由程序代碼構成擅長于流程控制和事務處理的類
4,從使用角度來說:在MVC中,Jsp擔任的是VIEW層,側重于視圖,而Servlet則充當的控制層,側重于控制邏輯。請求轉發和重定向
? response.sendRedirect():利用response對象向客戶端發回一個響應指示其訪問其他URL資源,或者說是一個web組件向另一個web組件發送一個新的請求,屬于重定向,地址欄有變化。且不可以傳遞屬性request參數,當所有的代碼執行完之后才進行重定向。
?request.getRequestDispatcher().forword(req,resp):web組件將一個請求轉發給另一個web組件,他們始終是同一個請求,在此期間可以傳遞request屬性參數,地址欄沒有變化。且一執行到此代碼處,后邊的將不再執行
JavaBean的組成:
?類必須是具體的,公共的。?提供無參數的構造方法
?提供getter()和setter()方法訪問它的屬性。版權所有@楊肖飛yangxf159371@126.com
第三篇:javaweb課程設計
課程設計:基于Java Web的討論區BBS系統的設計與實現
本系統要求實現以下主要功能:
(1)登錄:提供用戶登錄系統的功能,需要輸入用戶名和密碼
(2)注冊:提供用戶注冊的功能,需要輸入用戶名、密碼、密碼確認、Email、QQ
(3)修改注冊信息:提供用戶修改注冊信息的功能,可以修改密碼、Email、QQ
(4)瀏覽討論區:用戶登錄后就可以瀏覽系統中已存在的討論區,用戶可以查看某討論
區的詳細信息,也可以進入該討論區瀏覽已發表的帖子,以及回帖
(5)創建討論區:用戶可以創建討論區,每個討論區包含一個名稱和順序號,每個討論
區的名稱在系統中是唯一的,順序號表示討論區在列表中的排序
(6)修改討論區:提供討論區名稱和順序號的修改功能
(7)刪除討論區:提供討論區刪除的功能,方便管理員進行討論區管理
(8)瀏覽帖子:用戶進入一個討論區后,可以看到帖子列表,包含帖子主題、作者、創
建時間、回復次數,點擊一個帖子,可以查看該帖子的內容和回帖
(9)創建帖子:用戶進入一個討論區后,可以選擇創建一個新帖子,需要輸入帖子標題
和內容
(10)修改帖子:提供給管理員使用,修改帖子標題和內容
(11)刪除帖子:提供給管理員使用,方便管理員進行帖子整理
(12)回復帖子:用戶在瀏覽帖子信息的時候,可以進行回復
第四篇:javaweb學習心得
學習心得
在寫心得之前總結下中級部分學習的內容,我們的中級部分主要學習了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,過濾器,監聽器,JSTL,EL,jQuery,Ajax。
下面就各個模塊進行總結:在學習html時,我是對這個沒太在意的,因為里面全部是標簽,沒有需要理解的內容,全部是屬于識記的,所以在學習時相對輕松,對于html常用的標簽都是非常清楚的form中的十一種類型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的標簽如div,table,span,select都是重要的標簽.Css的學習:雖然說在標簽中也可以定義樣式,但是這么做看起來不是那么明智,我在學CSS時還是比較努力的,所有的樣式效果都測試過,并且寫了相應的案例,只是過了不到3個月就忘了一大半,很多時候都是查文檔才能寫出來的,雖然CSS對于我們來說不必要非常精通,但是我覺得掌握的東西越多,以后的工作就越輕松,所以在中級結束后也會去看看前面的筆記和案例。
Javascript:js 我認為是最重要的,甚至于超過servlet,jsp,在上課期間,講的內容還是比較少的,就javascript中創建對象來說吧,應該只講過3中方法,雖然在一般的情況下是用不上的,但是我覺得還是有必要學習的,這樣有助于看懂別人寫的框架,在javascript這部分學習中講的最多的還是dom操作,不過我覺得用dom操作太繁瑣了,寫的代碼太多,而且效率看起來也不高,后面就是講的事件,事件也算是簡單的,只是對觸發的事件進行相應的響應。除了這些就是javascript流程控制,對象一些基本語法,這些和java類似,所以在上課時沒有講得太多。
Xml: Markup Language可擴展標記語言。它是由SGML(Standard Gerneralized Markup language)發展而來的,允許開發者自定標簽,可以將標簽和內容有效的分離。在XML技術里,可以編寫一個文檔來約束XML文檔的書寫規范,稱之為XML約束。本文主要介紹DTD與Schema兩種約束,在這里學習了dtd,scheama,定義XML約束,這部分的學習是我感覺最累的一部分,DTD還算好,SCheama里面的內容,現在都忘了,沒有任何記憶,只知道在XML約束中有著兩中方式,還好這些在剛開始工作時是用不上的,因此我也沒有用很多時間來學習。
Servlet:我覺得是比較簡單的,可能是因為它是java代碼,容易理解。首先講的是開發環境的配置,安裝tomcat,了解tomcat下的目錄,以及web工程下的目錄。后來是講了servlet的訪問方式,post和get的區別,處理中文亂碼是servlet中一個重要的知識點,幾乎每個項目都會遇到這個問題。主要亂碼有get,post亂碼,是通過設置request或者response的編碼方式來實現的。Servlet間的跳轉方式有重定向和轉發,對于重定向和轉發的區別,現在理解的很透徹了,重定向是不能獲取request中參數,是客戶端的兩次請求,而轉發是服務器內部跳轉,不過,兩種在設置過濾器的情況下,都要通過過濾器才能跳轉。Servlet的生命周期是筆試的必考題,其實這是很簡單的,只需要理解,沒必要死記硬背的,session算是重要的知識點,很多數據都是存儲在內存中,如購物車,用戶信息等,還可以對session設置生存時間。說到session就必須說說四種會話跟蹤技術,cookie,URL重寫,表單域隱藏和session。
JSP:JSP實際上和servlet是一樣的,只不過兩者側重點不同,JSP的內置對象和作用域大致是一樣的,JSP中還有動作,常用的有操作JavaBean的動作,頁面跳轉的動作,以及包含的動作。這里重點提到兩種包含的區別。在JSP還講過jstl和EL表達式,都是基礎的應用,不過寫自定義的標簽還是要有一定的java基礎的,我開始不太理解標簽的解析過程,后來看了幾個例子,發現自定義的已不是那么難。
jQuery:jQuery可以說是中級部分學的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學習jQuery后,就再也不想用javascript來獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡單,不需要自己封裝一個類,$.get和$.post 能夠省去很多麻煩,jQuery的監聽事件也是很簡單,不需要在標簽中添加對應事件,可以動態的綁定事件。還有就是dom操作更是方便。我在學習完Ajax,json后就發現,即使是沒有JSP,也能做出一個動態頁面出來,只是會存在效率問題。
總結:雖然說這上面的知識大部分都掌握了,但是能否靈活運用才是重點,所以在今后的學習中多思考問題是否有多種解決方法。
第五篇:Javaweb期末試卷總結版2
Java Web試題 JAVA WEB部分: 1.基于HTTP協議的Servlet通常繼承__C______, 也可以繼承__B______。這些類型都實現了接口___A_____。
A.javax.servlet.Servlet
B.javax.servlet.GenericServlet C.javax.servlet.http.HttpServlet 2.我們實現的基于HTTP協議的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方法自動實現; GenericServlet的調用方法: 容器
-->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中要輸出內容,使用HttpServletResponse的方法_setContentType 設置內容,對于文本類型調用方法__ getWriter _獲得一個___ PrintWriter ___的輸出流,對于二進制類型調用_ getOutputStream 獲得_ ServeltOutputStream _的輸出流。調用HttpServletRequest的方法_ getParameter 解析有名參數,調用_ getInputStream 獲得一個_ ServletInputStream _的輸入流。在Servlet中也可以調用_ 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_____在所有的請求到來之前調用,____A____在撤消應用或關閉web container時調用。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______屬性可反復出現,___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)內容類型的設置(4)頁面會話的設置(5)頁面緩沖的設置
(6)錯誤頁面的設置(7)控制線程行為
page屬性(attribute)值的兩邊的雙引號也可以用單引號代替,單引號不能省略,若屬性值本身含有引號,則在它們之前加上反斜杠來轉義。
page 的幾個重要的指令:1.import 唯一的一個允許多次出現的attirbute.默認情況下有以下幾個是自動導入的包,java.lang.*;java.servelt.*;javax.servlet.jsp.*;javax.servlet.http.*!2.pageEncoding用來單獨設置頁面的字符集。%@page pageEncoding=“GB2312”% 3.contentType設置響應報頭標明發送到客戶端的MIME類型和頁面字符集!<%@ page contentType=“text/html;charset=gb2312”%> 4.session 屬性控制頁面的會話特性!%@page session=“true|false”%
默認值為true.5.buffer 和 autoFlush 屬性
buffer 設置緩沖區的大小 <%@ page buffer=“sizekb|none”%>
autoFlush 當緩沖區滿后自動清空!%@page autoFlush=“true|false”% 默認值為true,為false時會拋出一個異常。
6.errorPage 和isErrorPage(attribute)<%@page errorPage=“RelativeURL ”%>指定一個頁面處理當前頁面拋出但未捕獲的異常對象。
%@page isErrorPage=“true|false”% 表明當前頁面是否可以作為其他jsp頁面的錯誤頁面。可以將此頁面放在WEB-INF目錄中,有助于提高程序的安全性。
1、<%@ page buffer=“25kb” autoFlush=“true” %>
2、buffer=“none | 8kb | sizekb” buffer的大小被out對象用于處理執行后的JSP對客戶瀏覽器的輸出。缺省值是8kb
3、autoFlush=“true | false” 設置如果buffer溢出,是否需要強制輸出,如果其值被定義為true(缺省值),輸出正常,如果它被設置為false,如果這個buffer溢出,就會導致一個意外錯誤的發生.如果你把buffer設置為none,那么你就不能把autoFlush設置為false.12.有一個JavaBean com.briup.Student, 在JSP中用action在session作用域里創建一個對象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
調出一個編譯后的JSP文件給學生看
D:JAVATomcat-5.5.25workCatalinalocalhostRunCommunityorgapachejsppages
17.在web應用webdev的WEB-INF的目錄下有一個標簽庫描述文件sample.tld, 其內容部分如下:
在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要實現接口__C______;如果某個標簽有body, 但標簽不與body交互,tag handler要實現接口___E_____, 如果要與body交互,tag handler要實現接口____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_____可以訪問瀏覽器輸入的參數,通過____G____可以訪問請求頭中的參數,通過____E____可以訪問web應用的參數,通過____F____可以訪問cookie。A.sessionScope
B.applicationScope
C.requestScope D.param
E.initParam
F.cookie G.header 22.在EL中能夠訪問的函數(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的一個實現,是Java Web應用的一個框架(Framework).它主要采用了____D____模式。瀏覽器請求被控制器servlet ___A_____截取,控制器將瀏覽器表單的輸入封裝到____F____類型的JavaBean對象中,如果應用需要作合法性檢測,該類型的____G____方法會被調用,該方法的返回類型是_____B___。如果合法性檢測正確,控制器會將調用類型為____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,我們通常會設置環境變量_C_ CATALINA_HOME_指向安裝目錄;web應用的卻省部署目錄在安裝目錄下的___A__webapps___子目錄;如果有多個web應用共享的包如數據庫驅動程序,我們應該將其放置在安裝目錄的__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/