Web總結(jié)
web開發(fā)為什么考慮采用優(yōu)秀的框架?有什么好處?①提高效率,提高開發(fā)速度②保證質(zhì)量;好處:維護(hù)性好,分層清晰,業(yè)務(wù)邏輯單獨(dú)分離,軟件復(fù)用性好2、MVC模式的原理和結(jié)構(gòu)?可用圖示說(shuō)明V圖:可用JSP頁(yè)面負(fù)責(zé)數(shù)據(jù)顯示M型:可用JavaBean封裝業(yè)務(wù)邏輯實(shí)現(xiàn)C控制器:可用Servlet負(fù)責(zé)接收客戶端請(qǐng)求,然后調(diào)用后端JavaBean3、struts基于MVC模式的開放分為哪些部分?Model部分:由ActionFrom和JavaBean組成,ActionForm用于封裝用戶請(qǐng)求參數(shù),JavaBean實(shí)現(xiàn)底層業(yè)務(wù)邏輯。View部分:由Jsp實(shí)現(xiàn),struts提供豐富的標(biāo)簽庫(kù),實(shí)現(xiàn)與Model交互。Controller部分:系統(tǒng)核心控制器>ActionServlet,負(fù)責(zé)攔截Http請(qǐng)求;業(yè)務(wù)邏輯控制器>Action處理4、struts配置性文件的說(shuō)明,各部分的作用?(給出文件,能說(shuō)明一些配置含義)①struts-config.xml的配置:②struts-config.xml的其他配置::定義控制配置類:消息資源配置:插件配置5、struts框架下實(shí)現(xiàn)驗(yàn)證有哪些方法?重寫ActionForm的validate方法,形式如下:publicActionErrorsvalidate(ActionMapping,HttpServerltRequestrequest{ActionErrors=newActionErrors();②在Action中的execute()中驗(yàn)證代碼編寫③結(jié)合commons-validator.Jar校驗(yàn)可彈出JavaScript提示6、Hibernate框架中的常用接口及作用?①Configuration:用于解析hibernate.cfg.xml和xx.hbm.xml文件,生成SessionFactory對(duì)象。②SessionFactory:初始化Hibernate,充當(dāng)數(shù)據(jù)存儲(chǔ)源代理,創(chuàng)建session對(duì)象。③Session:持久管理器,對(duì)象級(jí)數(shù)據(jù)庫(kù)操作。④Query:執(zhí)行數(shù)據(jù)庫(kù)查詢操作,使用面向?qū)ο驢QL語(yǔ)句。⑤Transaction:用于管理操作事務(wù),對(duì)底層事務(wù)接口封裝。7、Hibernate如何實(shí)現(xiàn)ORM操作,實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的步驟是什么?(1)開發(fā)持久化類,由POJO加映射文件組成(2)獲取Configuration(3)獲取SessionFactory(4)獲取Session打開事務(wù)(5)用面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù)(6)關(guān)閉事務(wù),關(guān)閉Session。
8、Hibernate如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢有哪些方法?increment:對(duì)long,short或int的數(shù)據(jù)列生成自增長(zhǎng);identity:對(duì)SQLserver,MySQL支持自增長(zhǎng)列的數(shù)據(jù)庫(kù);Sequence:對(duì)Oracle,DB2支持sequence的數(shù)據(jù)庫(kù);UUID:對(duì)字符串列用128位UUID算法生成唯一字符串主鍵。9、Hibernate主鍵生成策略有哪些?(1)increment:對(duì)long.short或int的數(shù)據(jù)列生成自增長(zhǎng)列(2)identity:對(duì)SQLServer、MySql支持自增長(zhǎng)列的數(shù)據(jù)庫(kù)(3)Sequence:對(duì)Oracle,DB2支持sequence的數(shù)據(jù)庫(kù)(4)uuid:對(duì)字符串列用128位uuid算法生成唯一字符串主鍵(5)assigned:如果沒有一個(gè)主鍵明確指令生成策略,一般就會(huì)使用這個(gè)默認(rèn)策略,它實(shí)際上可看成是無(wú)策略10、Hibernate表間關(guān)聯(lián)有哪些方式?如果不是一對(duì)一關(guān)系,類中可采用哪些類表示多的一方?(1)、一對(duì)一、一對(duì)多(2)、list、set、map、array、bag、idbag。11、Spring框架由哪些功能模塊組成?SpringAOP、SpringORM、SpringWeb、SpringContext、SpringDAO、SpringWebMVC和SpringCore,而前六種模塊又構(gòu)建在SpringCore之上。12、Spring的核心技術(shù)包括哪兩個(gè)方面?如何理解?①依賴注入與控制反轉(zhuǎn):當(dāng)某個(gè)Java實(shí)例需要其它Java實(shí)例時(shí),系統(tǒng)自動(dòng)提供需要的實(shí)例,無(wú)須顯示獲取。②AOP面向切面編程:從程序運(yùn)行角度考慮程序流程,提供業(yè)務(wù)處理的切面,能處理程序執(zhí)行中的特定點(diǎn)。13、實(shí)際開發(fā)中如何把Sturts,Spring,Hibernate整合在一起?①Spring與Struts整合:1、利用Struts的PugIn啟動(dòng)Spring容器2、使用Spring的DelegationRequestProcessor。3、使用DelegationActionProxy4、使用ActionSupport代替Action②Spring與Hibernate整合:1、通過Spring的配制文件管理SessionFactory2、使用HibernateTemplate和HibernateCallBack。14、Hibernate配置文件的說(shuō)明,映射文件的說(shuō)明?(給出文件,能說(shuō)明一些配置含義)①Hibernate.Cfg.xmltestjdbc:mysql://localhost:3305/testdborg.hibernate.dialect.MySQLDialecttesedbtestcom.mysql.jdbc.Driver②StuBasicInfo.hbm.xml15、Spring(依賴注入整合)配置文件的說(shuō)明(給出文件,能說(shuō)明一些配置含義)world好元素1元素2元素1元素2map值1map值
擴(kuò)展閱讀:web總結(jié)
1.Web資源分為主動(dòng)資源和被動(dòng)資源,Web文檔分為靜態(tài)文檔和被動(dòng)文檔。2.Web應(yīng)用程序通常是主動(dòng)資源與被動(dòng)資源的混合。3.當(dāng)瀏覽器發(fā)送一個(gè)請(qǐng)求,Web服務(wù)器就在myserver.com上將請(qǐng)求轉(zhuǎn)發(fā)給reportServlet,
該Servlet將生成HTML文本并把它發(fā)送給瀏覽器,該Servlet就是一個(gè)主動(dòng)資源。
4.任何Web應(yīng)用程序在其WEB-INF目錄下都應(yīng)該有一個(gè)部署描述文件,它是一個(gè)名為
web.xml的文本文件。該文件是一個(gè)XML文件,它的最外層是,其中包含兩個(gè)子元素和。
5.HTTP請(qǐng)求結(jié)構(gòu):請(qǐng)求行,請(qǐng)求頭,空行,數(shù)據(jù)。6.HTTP請(qǐng)求方法GETPOSTPUTHEADDELETETRACEOPTIONSCONNECT請(qǐng)求讀取一個(gè)Web頁(yè)面請(qǐng)求向服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求存儲(chǔ)一個(gè)Web頁(yè)面請(qǐng)求讀取一個(gè)Web頁(yè)面頭部移除Web頁(yè)面反悔收到的請(qǐng)求查詢特定選項(xiàng)保留做將來(lái)用7.在HttpServlet類中,除定義了service()方法為客戶提供服務(wù)外,還針對(duì)每個(gè)HTTP
方法定義了相應(yīng)的doXxx()方法。8.所有的doXxx方法都有兩個(gè)參數(shù):HttpServletRequest對(duì)象和HttpServletResponse對(duì)象。9.HTTP方法及相應(yīng)的處理方法:HTTP方法GETPOSTHttpServlet方法doGet()doPost()11.為實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā),需要使用RequestDispatcher對(duì)象,通過ServletRequest接口中定義的getRequestDispatcher()方法得到該對(duì)象。
12.HTTP響應(yīng)的狀態(tài)行由三部分組成:狀態(tài)行、響應(yīng)頭、響應(yīng)的數(shù)據(jù)。
13.HTTP響應(yīng)的狀態(tài)行由三部分組成,各部分由空格分隔:HTTP版本、說(shuō)明請(qǐng)求結(jié)果的相應(yīng)狀態(tài)碼以及描述狀態(tài)碼以及描述狀態(tài)碼的短語(yǔ)。
14.HTTP定義了許多狀態(tài)碼,常見的狀態(tài)碼是200,它是表示請(qǐng)求被正常處理。
15.Data響應(yīng)頭表示消息發(fā)送的日期:Content-Type響應(yīng)頭指定響應(yīng)的內(nèi)容類型:Content-Length指示響應(yīng)內(nèi)容的長(zhǎng)度。
16.調(diào)用響應(yīng)對(duì)象的getWriter()方法可以得到PrintWriter對(duì)象,調(diào)用響應(yīng)對(duì)象的getOutputStream()可以得到ServletOutputStream對(duì)象,使用它可以向客戶發(fā)送二進(jìn)制數(shù)據(jù)。
17.Servlet可能決定不直接向?yàn)g覽器發(fā)送響應(yīng),而是將相應(yīng)將重定向到其他資源,這可通過HttpservletResponse接口的sendRedirect()方法實(shí)現(xiàn)。
18.在Servlet中直接使用ServletConfig接口對(duì)象有兩種方法:(1)在servlet中直接使用getServletConfig()方法獲得ServletConfig對(duì)象;(2)覆蓋servlet的Init(ServletConfigconfig)方法,然后把容器創(chuàng)建的ServletConfig對(duì)象保存到一個(gè)成員變量中。19.在Servlet中可以有兩種方法得到ServletContext引用:(1)直接使用Servlet的getServletContext()方法;(2)使用getServletConfig()方法得到ServletConfig引用,再調(diào)用它的getServletContext()方法。20.HttpSession接口中定義常用的方法:(1)publicStringgetId()方法,返回為該會(huì)話指定的唯一標(biāo)識(shí)符;(2)publiclonggetCreationTime()返回會(huì)話創(chuàng)建的時(shí)間(3)publiclonggetLastAccessdTime()返回會(huì)話最后被訪問的時(shí)間(4)publicbooleanisNew()如果會(huì)話對(duì)象還沒有同客戶關(guān)聯(lián),則返回true(5)publicServletContextgetServletContext()返回該會(huì)話所屬的ServletContext對(duì)象。
21.元素中指定的以分鐘為單位的超時(shí)期限,0或小于0的值表示會(huì)話永不過期,默認(rèn)為30分鐘。
22.PublicviodsetMaxInactiveInterval(intinterval)設(shè)置在容器使該會(huì)話失效前客戶的兩個(gè)請(qǐng)求之間最大間隔的秒數(shù),參數(shù)為負(fù)值,表示會(huì)話永不失效。
23.PublicintgetMaxInactiveInterval()返回以秒為單位最大的間隔時(shí)間,在這段時(shí)間內(nèi)容器將在客戶請(qǐng)求之間保持該會(huì)話打開狀態(tài)。
24.Publicvoidinvaliddate()是會(huì)話失效并解除綁定到其上的任何對(duì)象。25.Cookie的常用方法:publicStringgetName()返回cookie名稱;publicStringgetValue()返回cookie的值。26.JSP頁(yè)面元素分類:;;;;;${applicationScope.email}(EL表達(dá)式);.27.指令的三種類型:page指令,include指令,taglib指令。
28.JSP頁(yè)面生命周期階段:頁(yè)面轉(zhuǎn)換、頁(yè)面編譯、加載類、創(chuàng)建實(shí)例、調(diào)用jspInit()方法、調(diào)用_jspService()方法、調(diào)用jspDestroy()方法。
29.Page指令的屬性:import:導(dǎo)入在JSP頁(yè)面中使用的Java類和接口列表,其間用逗號(hào)分隔;contentType:指定輸出的內(nèi)容類型和字符集;pageEncoding:指定JSP文件的字符編碼。30.JSP使用的隱含變量:application、session、request、response、out、page、pageContext、config、exception。
31.Jsp作用域?qū)ο螅簯?yīng)用作用域,application,在整個(gè)web應(yīng)用程序中有效;
會(huì)話作用域,Session,在一個(gè)用戶范圍內(nèi)有效;請(qǐng)求作用域,request,在用戶的請(qǐng)求和轉(zhuǎn)發(fā)的請(qǐng)求內(nèi)有效;頁(yè)面作用域,pageContext,只在當(dāng)前的頁(yè)面內(nèi)有效。
32.Sun公司在推出JSP技術(shù)后提出了簡(jiǎn)歷Web應(yīng)用程序的兩種體系結(jié)構(gòu)方法,這兩種方法分別稱為JSPModel1體系結(jié)構(gòu)和JSPModel2體系結(jié)構(gòu)。
33.Model2體系結(jié)構(gòu)又稱為MVC(Model-View-Controller)體系結(jié)構(gòu)或MVC設(shè)計(jì)模式,這種結(jié)構(gòu)將Web應(yīng)用的組件分為模型,視圖,控制器。、
34.JDBC的基本功能包括:建立與數(shù)據(jù)庫(kù)的連接;發(fā)送SQL語(yǔ)句;處理數(shù)據(jù)庫(kù)操作結(jié)果。35.兩層模型即客戶機(jī)/數(shù)據(jù)庫(kù)服務(wù)器結(jié)構(gòu),也就是通常所說(shuō)的C/S結(jié)構(gòu)。
36.三層模型即客戶機(jī)/應(yīng)用服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器結(jié)構(gòu),即通常所說(shuō)的B/S結(jié)構(gòu)。37.加載JDBC驅(qū)動(dòng)程序最常用的方法是使用Class類的forName()靜態(tài)方法。
38.元素各屬性的含義:name:數(shù)據(jù)源名;driverClassName:使用的JDBC驅(qū)動(dòng)程序的完整類名;url:傳遞給JDBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)URL;username:數(shù)據(jù)庫(kù)用戶名;password:數(shù)據(jù)庫(kù)用戶口令;type:指定該資源的類型,這里為DataSource類型;maxActive:可同時(shí)為該連接池分配的活動(dòng)連接實(shí)例的最大數(shù)。39.監(jiān)聽器可分為三類:ServletContext事件監(jiān)聽器,HttpSession事件監(jiān)聽器,ServletRequest事件監(jiān)聽器。
40.元素只有一個(gè)子元素用來(lái)指定監(jiān)聽器類的完整類名。41.Servlet規(guī)范中過濾器一些常見應(yīng)用:驗(yàn)證過濾器,登錄和審計(jì)過濾器,數(shù)據(jù)壓縮過濾器,加密過濾器,XSLT過濾器。42.Struts框架是基于MVC設(shè)計(jì)模式的Web應(yīng)用開發(fā)框架,它主要包括核心控制器,表單bean,動(dòng)作對(duì)象,JSP頁(yè)面和配置文件等。
1.超文本傳輸協(xié)議(HypertextTransferProtocol,HTTP)是Web使用的協(xié)議,該協(xié)議規(guī)
定了Web客戶與服務(wù)器之間如何通信。
2.靜態(tài)文檔:在Web發(fā)展的早期,Web文檔只是一種以文件的形式存放在服務(wù)器端的文
檔,客戶發(fā)出對(duì)該文檔的請(qǐng)求,服務(wù)器返回這個(gè)文件,這種文檔稱之為靜態(tài)文檔。3.動(dòng)態(tài)文檔:動(dòng)態(tài)文檔是指文檔的內(nèi)容可根據(jù)需要?jiǎng)討B(tài)生成,動(dòng)態(tài)文檔又分為服務(wù)器端動(dòng)
態(tài)技術(shù)和客戶動(dòng)態(tài)文檔技術(shù)。
4.請(qǐng)求參數(shù)是隨著請(qǐng)求一起發(fā)送到服務(wù)器的數(shù)據(jù),它是以名/值對(duì)的形式發(fā)送的。
5.JSP是JavaServletPages的縮寫,含義是Java服務(wù)器頁(yè)面,它與PHP非常相似,只不過頁(yè)面中的動(dòng)態(tài)部分是Java語(yǔ)言編寫的,使用這種技術(shù)的文件的擴(kuò)展名為jsp。
6.當(dāng)瀏覽器發(fā)送一個(gè)請(qǐng)求,Web服務(wù)器就在myserver.com上查找myfile.html文件,然后把它返回給瀏覽器,它是被動(dòng)資源,又稱之為靜態(tài)資源。1.請(qǐng)求響應(yīng)過程:
Web瀏覽器首先建立到Web服務(wù)器的連接并向服務(wù)器發(fā)送HTTP請(qǐng)求消息。服務(wù)器接收到客戶的請(qǐng)求后,對(duì)請(qǐng)求進(jìn)行處理,然后向客戶發(fā)送回響應(yīng)?蛻艚邮辗⻊(wù)器發(fā)送的HTTP響應(yīng)消息,對(duì)消息進(jìn)行處理并關(guān)閉連接。2.Servlet生命周期的四個(gè)階段:
加載和實(shí)例化Servlet;初始化Servlet;為客戶提供服務(wù);銷毀和卸載Servlet。3.GET方法和POST方法的區(qū)別:
GET方法的資源類型可以是主動(dòng)也可以是被動(dòng)的,數(shù)據(jù)類型為文本型,數(shù)據(jù)量一般不超過255個(gè)字,數(shù)據(jù)是URL的一部分,在瀏覽器的URL地址欄中用戶可見,數(shù)據(jù)可以在瀏覽器的URL歷史緩存。POST方法的數(shù)據(jù)類型是主動(dòng)的,數(shù)據(jù)類型是文本或二進(jìn)制數(shù)據(jù),數(shù)據(jù)量沒有限制,數(shù)據(jù)不是URL的一部分而是作為請(qǐng)求的信息體發(fā)送,因此在瀏覽器的URL地址欄中對(duì)用戶不可見,數(shù)據(jù)不能在瀏覽器的URL歷史中緩存。
4.在客戶端如果發(fā)生下面事件之一,瀏覽器就向Web服務(wù)器發(fā)送了一個(gè)HTTP請(qǐng)求:用戶在瀏覽器的地址欄中輸入U(xiǎn)RL并按Enter鍵;用戶單擊了HTML頁(yè)面中的超鏈接;用戶在HTML頁(yè)面中添寫一個(gè)表單并提交。
5.Web服務(wù)器跟蹤客戶的狀態(tài)通常有4種方法;使用servletAPI的session機(jī)制;使用持久的cookie對(duì)象;使用URL重寫機(jī)制;使用隱藏的表單域。
6.使用Httpsession對(duì)象的三個(gè)步驟:為客戶創(chuàng)建或獲得與請(qǐng)求關(guān)聯(lián)的會(huì)話對(duì)象;在會(huì)話對(duì)象中添加或刪除名/值對(duì)屬性;如果需要可使會(huì)話失效。7.向客戶端發(fā)送Cookie的步驟:(1)創(chuàng)建cookie對(duì)象;(2)設(shè)置cookie的最大存活時(shí)間;(3)向客戶發(fā)送cookie對(duì)象。8.理解頁(yè)面轉(zhuǎn)換的過程:(1)所以的JSP都變成產(chǎn)生的servlet類的一部分(2)所有的JSP小腳本都變成jspService()方法的一部分,在Java語(yǔ)言中不能在方法中定義方法(3)所有的Jsp表達(dá)式都成為_jspService()方法的一部分,表達(dá)式的值使用out.print()語(yǔ)句輸出。
9.靜態(tài)包含和動(dòng)態(tài)包含的區(qū)別:靜態(tài)包含是在Jsp頁(yè)面轉(zhuǎn)換階段將另一個(gè)文件的內(nèi)容包含到當(dāng)前的Jsp頁(yè)面中,使用JSP的include指令完成這一功能。語(yǔ)法為:;動(dòng)態(tài)包含是通過JSP標(biāo)準(zhǔn)動(dòng)作實(shí)現(xiàn)的,動(dòng)作的功能是把被包含的頁(yè)面的輸出包含到當(dāng)前頁(yè)面的輸出。該動(dòng)作格式為10.JavaBeans就是使用Java語(yǔ)言定義的類,可以在JSP頁(yè)面中作為JavaBeans使用的情況:(1)JavaBeans應(yīng)該是public類,并且必須具有無(wú)參數(shù)的public構(gòu)造方法(2)JavaBeans類的成員變量一般稱為屬性,對(duì)每個(gè)屬性訪問權(quán)限一般定義為private或protected,而不定義為public的,屬性名必須以小寫字母開頭(3)對(duì)每個(gè)屬性通常定義兩個(gè)public方法,一個(gè)是訪問方法,另一個(gè)是修改方法,他們?cè)试S訪問和修改JavaBean的屬性值。
11.的屬性:id:在JSP中bean名稱的標(biāo)識(shí);scope:bean實(shí)例的作用域(page,request,session或application,默認(rèn)值為page);class:bean的Java完整類名;type:指定用來(lái)引用bean的類型;beanName:從文件裝載的序列化的bean的名稱或創(chuàng)建一個(gè)新實(shí)例的類名。
12.使用MVC色及模式開發(fā)Web應(yīng)用程序可采用如下步驟:定義JavaBean表示數(shù)據(jù);使用Servlet處理請(qǐng)求;填寫JavaBean對(duì)象數(shù)據(jù);結(jié)果存儲(chǔ);轉(zhuǎn)發(fā)請(qǐng)求到JSP頁(yè)面;從JavaBean對(duì)象中提取數(shù)據(jù)。
13.傳統(tǒng)數(shù)據(jù)庫(kù)的連接方法:加載驅(qū)動(dòng)程序;建立連接對(duì)象;創(chuàng)建語(yǔ)句對(duì)象;獲得SQL語(yǔ)句的執(zhí)行結(jié)果;關(guān)閉建立的對(duì)象。
....................................................................Web.xml文件:
loginServlet
com.model.LoginServlet
greeting
goodmorning
2EventTestServlet/eventtest
BookqueryServlet.Javapackagecom.control;importjava.io.*;importjava.sql.*;
importjavax.servlet.*;
importjavax.servlet.http.*;importcom.model.BookBean;
publicclassBookQueryServletextendsHttpServlet{ConnectiondbConnection;publicvoidinit(){Stringdriver="org.postgresql.Driver";Stringdburl="jdbc:postgresql://127.0.0.1:5432/bookstore";Stringusername="bookstore";Stringpassword="bookstore";try{Class.forName(driver);
dbConnection=DriverManager.getConnection(dburl,username,password);}catch(ClassNotFoundExceptione1){}catch(SQLEXCEPTIONe2){}}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
Stringbookid=request.getParameter("bookid");try{
Stringsql="SELECT*FORMbooksWHEREbookid=?";
PreparedStatementpstmt=dbConnection.prepareStatement(sql);pstmt.setString(1,bookid);
ResultSetrst=pstmt.executeQuery();if(rst.next()){
BookBeanbook=newBookBean();
book.setBookid(rst.getString("bookid"));book.setTitle(rst.getString("title"));book.setAuthor(rst.getString("author"));book.setPrice(rst.getDouble("price"));
book.setPublisher(rst.getString("publisher"));request.getSession().setAttribute("book",book);
RequestDispatcherview=request.getRequestDispatcher("/showBook.jsp");view.forward(request,response);}else{
RequestDispatcherview=request.getRequestDispatcher("/error.jsp");view.forward(request,response);}
}catch(SQLExceptione){e.printStackTrace();}}
publicvoiddestroy(){try{
dbConnection.close();}catch(Exceptione){e.printStackTrace();}}}
....................................................................
showBook.jsp
書號(hào):
書名:
作者:
出版社:
友情提示:本文中關(guān)于《Web總結(jié)》給出的范例僅供您參考拓展思維使用,Web總結(jié):該篇文章建議您自主創(chuàng)作。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。