1、XML技術(shù)的作用?
XML技術(shù)用于數(shù)據(jù)存儲(chǔ)、
信息配置、
數(shù)據(jù)交換三方面。
可以將數(shù)據(jù)存儲(chǔ)在XML中,
通過(guò)節(jié)點(diǎn)、
元素內(nèi)容、
屬性標(biāo)示數(shù)據(jù)內(nèi)容及關(guān)系。
可以使用XML很方便的做信息配置,
軟件的各種配置參數(shù)和對(duì)象關(guān)系
都存貯在XML文件中。
在做數(shù)據(jù)交換平臺(tái)時(shí),
將數(shù)據(jù)組裝成XML文件,
然后將XML文件壓縮打包加密后
通過(guò)網(wǎng)絡(luò)傳送給接收者,
接收解密與解壓縮后再同XML文件中
還原相關(guān)信息進(jìn)行處理。
2.XML文檔約束有哪幾種?有什么區(qū)別?
有兩種定義形式,
dtd文檔類型定義和SchemaXML模式;
XMLSchema和DTD都用于文檔驗(yàn)證,
但二者還有一定的區(qū)別,
本質(zhì)區(qū)別是:Scheme本身是xml的,
可以被XML解析器解析,
這也是從DTD上發(fā)展Schema的根本目的。
另外,
XMLSchema是內(nèi)容開放模型,
可擴(kuò)展,功能性強(qiáng),
而DTD可擴(kuò)展性差。
XMLSchema支持豐富的數(shù)據(jù)類型,
而DTD不支持元素的數(shù)據(jù)類型,
對(duì)屬性的類型定義也很有限。
XMLSchema支持命名空間機(jī)制,
而DTD不支持。
XMLSchema可針對(duì)不同情況
對(duì)整個(gè)XML文檔或文檔局部進(jìn)行驗(yàn)證;
而DTD缺乏這種靈活性。
XMLSchema完全遵循XML規(guī)范,
符合XML語(yǔ)法,
可以和DOM結(jié)合使用,
功能強(qiáng)大;
而DTD語(yǔ)法本身有自身的語(yǔ)法和要求,
難以學(xué)習(xí)。
3.XML的解析方式有哪幾種?有什么區(qū)別?
1.DOM解析:
DOM的全稱是documentObjectModel,
也即文檔對(duì)象模型。
在應(yīng)用程序中,
基于DOM的XML分析器
將一個(gè)XML文檔轉(zhuǎn)換成
一個(gè)對(duì)象模型的集合(通常稱DOM樹),
應(yīng)用程序正是通過(guò)對(duì)
這個(gè)對(duì)象模型的操作,
來(lái)實(shí)現(xiàn)對(duì)XML文檔數(shù)據(jù)的操作。
通過(guò)DOM接口,
應(yīng)用程序可以在任何時(shí)候
訪問(wèn)XML文檔中的任何一部分?jǐn)?shù)據(jù),
因此,這種利用DOM接口的機(jī)制
也被稱作隨機(jī)訪問(wèn)機(jī)制。
2.SAX解析:
SAX的全稱是SimpleAPIsforXML,
也即XML簡(jiǎn)單應(yīng)用程序接口。
與DOM不同,
SAX提供的訪問(wèn)模式是一種順序模式,
這是一種快速讀寫XML數(shù)據(jù)的方式。
當(dāng)使用SAX分析器對(duì)XML文檔進(jìn)行分析時(shí),
會(huì)觸發(fā)一系列事件,
并激活相應(yīng)的事件處理函數(shù),
應(yīng)用程序通過(guò)這些事件處理函數(shù)
實(shí)現(xiàn)對(duì)XML文檔的訪問(wèn),
因而SAX接口也被稱作事件驅(qū)動(dòng)接口。
3.JDOM解析:
JDOM采用了Java中的Collection架構(gòu)來(lái)封裝集合,
是Java愛好者更加熟悉的模式
4.DOM4J解析:
xml解析器一次性把整個(gè)xml文檔加載進(jìn)內(nèi)存,
然后在內(nèi)存中構(gòu)建一顆document的對(duì)象樹,
通過(guò)document對(duì)象,
得到樹上的節(jié)點(diǎn)對(duì)象,
通過(guò)節(jié)點(diǎn)對(duì)象訪問(wèn)(操作)到xml文檔的內(nèi)容
4.Http請(qǐng)求的Get和Post的區(qū)別?
1.get從地址欄以明文的方式提交請(qǐng)求
信息內(nèi)容
?username=admin&password=123,
用戶可見,
而post從請(qǐng)求正文提交請(qǐng)求信息內(nèi)容,
用戶不可見。
2.get提交因?yàn)槭菑牡刂窓趥鬟f,
而瀏覽器的地址欄長(zhǎng)度有限制,
不能提交大數(shù)據(jù)
post從請(qǐng)求正文傳遞信息內(nèi)容,
對(duì)文件大小無(wú)限制,
文件上傳只能選擇post
3.request對(duì)象是服務(wù)器獲取請(qǐng)求信息
從請(qǐng)求頭,請(qǐng)求正文中獲取
我們可以使用request.setCharacterEncoding方法
修改請(qǐng)求對(duì)象字符編碼信息,
但是不能修改地址欄字符編碼。
get從地址欄傳遞信息,
不能使用request.setCharacterEncoding這個(gè)方法
去修改字符編碼。
post從請(qǐng)求正文以form表單形式提交,
所以可以使用request.setCharacterEncoding
這個(gè)方法去修改字符編碼。
4.總結(jié):能夠使用post提交盡量使用post提交。
5.ServletConfig對(duì)象和ServletContext對(duì)象有什么區(qū)別?
一個(gè)Servlet對(duì)應(yīng)有一個(gè)ServletConfig對(duì)象,
可以用來(lái)讀取初始化參數(shù)。
一個(gè)webapp對(duì)應(yīng)一個(gè)ServletContext對(duì)象。
ServletContext對(duì)象
獲取初始化定義的參數(shù)。
ServletContext對(duì)象可以通過(guò)
context.getResourceAsStream("/PATH");
或者context.getRealPath("/")。
去獲取webapp的資源文件。
ServletContext對(duì)象的
setAttribute(Stringname,Objecto)方法
可以將對(duì)象存儲(chǔ)在Context作用范圍域
又稱為全局作用范圍域,
在整個(gè)web應(yīng)用當(dāng)中可以共享.
ServletContext對(duì)象
可以和服務(wù)器進(jìn)行通訊,
比如寫信息到服務(wù)器的日志信息當(dāng)中。。
以上就是長(zhǎng)沙一度軟件培訓(xùn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020年五道Java高級(jí)程序員面試題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。