dom4j 元素對(duì)象獲取指定子元素 element("名字")
ServletConfig:
1.在Servlet運(yùn)行時(shí),需要獲取servlet的配置信息 可以使用servletConfig 來(lái)進(jìn)行獲取 由tomcat創(chuàng)建
在servlet實(shí)例化的時(shí)候,把servlet的一些配置信息放入ServletConfig對(duì)象
2.獲取servletConfig:init(servletConfig config)方法可以使用
其他方法中:this.getServletConfig() ==getServletconfig();
3.設(shè)置servlet的配置信息: 在web.xml <servlet>標(biāo)簽里設(shè)置 init-param
4.獲取getServletConfig.getinitParameter(“鍵”) //單個(gè)
Enumeration<String> e = getServletConfig.getinitParameterNames()//多個(gè)
一個(gè)Servlet對(duì)應(yīng)一個(gè)SevletConfig對(duì)象 只能獲取當(dāng)前servlet的信息
ServletContext:項(xiàng)目在tomcat容器運(yùn)行時(shí)會(huì)創(chuàng)建一個(gè) 唯一全局對(duì)象 ServletContext :主要用于給web項(xiàng)目設(shè)置配置信息 所有servlet都可以獲取
req.getServletContext();//獲取對(duì)象
web.xml設(shè)置屬性: <context-parm> <parm-name> <parm-name> </context-parm>
方法:getInitParameter("鍵") getInitParameterNames();//獲取多個(gè)鍵
作用域?qū)ο?/span>:具有作用域的對(duì)象,在一定范圍內(nèi)可以存值取值 可以使不同的servlet之間進(jìn)行數(shù)據(jù)傳遞。
servlet作用域?qū)ο螅?span style="background-color: rgba(255, 0, 255, 1)">request servletContext
request:在一次請(qǐng)求之后 都可以進(jìn)行數(shù)據(jù)傳遞 范圍小
req.getRequestDispatchar("").forword(req,resq)
servletContext:在整個(gè)項(xiàng)目都可以傳遞數(shù)據(jù) 大
方法:setAttribute("鍵","值")
getAttribute(“”)//通過(guò)鍵獲取
removeAttribute()//刪除值
轉(zhuǎn)發(fā)與重定向:實(shí)現(xiàn)頁(yè)面之間的跳轉(zhuǎn)
1.轉(zhuǎn)發(fā):req.getRequestDispatchar("路徑").forward(req,resq);
路徑:servlet路徑和頁(yè)面路徑 forward(req,resq)
2.重定向:resp.sendRedirect("路徑")
路徑:servlet路徑和頁(yè)面路徑
3.區(qū)別:
轉(zhuǎn)發(fā)原理:一次請(qǐng)求 直接在服務(wù)器內(nèi)部進(jìn)行跳轉(zhuǎn)

重定向原理:

區(qū)別:
轉(zhuǎn)發(fā):在服務(wù)器內(nèi)部 url地址不變 一次請(qǐng)求 可以攜帶參數(shù)書(shū) 只能跳轉(zhuǎn)本站點(diǎn)的網(wǎng)址
查詢
重定向:在瀏覽器 url地址改變 多次請(qǐng)求不適用攜帶參數(shù) 跳轉(zhuǎn)任何站點(diǎn)的網(wǎng)址
增刪改成功之后 使用重定向 改變url地址
servlet3.0注解:
servlet3.0 之后 java1.5
減少xml配置 簡(jiǎn)化代碼
1.注解和xml不能同時(shí)配置一個(gè)servlet
@WebServlet("/userServlet")
@WebServlet(name="" urlpatterns="/訪問(wèn)路徑" loadStartUp=0//加載優(yōu)先級(jí)0最大
initParams={@wenInitParam(name="aa",value="")}
)
@WebServlet(name="servlet02", urlPatterns = "/servlet02",
loadOnStartup = 0, initParams = {
@WebInitParam(name="ddd",value="dddddddddddd"),
@WebInitParam(name="aaa",value = "aaaaaaa"),
})
XML:可擴(kuò)展標(biāo)記語(yǔ)言(英語(yǔ):Extensible Markup Language,簡(jiǎn)稱(chēng):XML)是一種標(biāo)記語(yǔ)言。
xml:可擴(kuò)展語(yǔ)言 可以自定義標(biāo)簽 主要用來(lái)寫(xiě)配置信息 重點(diǎn)xml編寫(xiě)格式 及xml解析方式
1.xml和html區(qū)別
xml:編寫(xiě)配置信息 標(biāo)簽自定義 具有約束(dtd)
html:頁(yè)面展示 標(biāo)簽預(yù)定義
2.xml規(guī)范:
1.根節(jié)點(diǎn)只能有一個(gè)
2.標(biāo)簽成對(duì)出現(xiàn) 由單個(gè)的
3.節(jié)點(diǎn)嚴(yán)格區(qū)分大小寫(xiě)
4.標(biāo)簽命名不能由特殊符號(hào) 純英文
5.標(biāo)簽進(jìn)行正確的嵌套

3.xml特殊符號(hào):
<;大于 >;小于 ";雙引號(hào) &apos;單引號(hào) &qmp;和號(hào)
解析xml:
1.解析方式:dom
2.xml轉(zhuǎn)換成dom
3.dom解析方式:
1.得到doucument對(duì)象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new File("收藏信息.xml"));
2.doc對(duì)象到node節(jié)點(diǎn)List集合
NodeList nodeList= doc.getElementsByTagName("Brand");
3.遍歷集合獲取到每一個(gè)node節(jié)點(diǎn) 方法:item();
for(int i=0;i<nodeList.getLength();i++){ Node nodeBrand =nodeList.item(i); Element e = (Element)nodeBrand; System.out.println(e.getAttribute("name")); //獲取子節(jié)點(diǎn) NodeList nodeListType=e.getChildNodes(); for(int j=0;j<nodeListType.getLength();j++){ //獲取node節(jié)點(diǎn) Node nodeType= nodeListType.item(j); //判斷node節(jié)點(diǎn)是否為元素節(jié)點(diǎn) if(nodeType.getNodeType()==Element.ELEMENT_NODE){ //轉(zhuǎn)換成元素節(jié)點(diǎn) Element elementType =(Element)nodeType; System.out.println(elementType.getAttribute("name")); } } }
4.將node節(jié)點(diǎn)強(qiáng)制轉(zhuǎn)換為Element(元素)節(jié)點(diǎn)
5.調(diào)用getAttribute("")方法獲取值
4.增加節(jié)點(diǎn):
1 Element eleBrand =doc.createElement("Brand"); 2 //設(shè)置屬性 3 eleBrand.setAttribute("name","oppo"); 4 //創(chuàng)建子節(jié)點(diǎn) 5 Element eleType= doc.createElement("Type"); 6 //設(shè)置屬性 7 eleType.setAttribute("name","r20"); 8 //添加父子關(guān)系 9 eleBrand.appendChild(eleType); 10 doc.getElementsByTagName("PhoneInfo").item(0).appendChild(eleBrand);
5.刪除節(jié)點(diǎn):
1.獲取節(jié)點(diǎn)集合:getElementsByTagName("Brand")
2.遍歷集合獲得node節(jié)點(diǎn) 強(qiáng)轉(zhuǎn)為Element節(jié)點(diǎn)
3.節(jié)點(diǎn)調(diào)用getParentNode()獲取父節(jié)點(diǎn)調(diào)用removeChild(Child);
6.增加節(jié)點(diǎn)屬性:
Dom4j對(duì)xml進(jìn)行解析:
1.將xml解析為dom對(duì)象
SAXReader sr =new SAXReader(); Document doc= sr.read(new File("收藏信息.xml"));
2.獲取根節(jié)點(diǎn)
Element elementRoot = doc.getRootElement();
3.獲取子節(jié)點(diǎn):迭代器
Iterator<Element> iter = elementRoot.elementIterator();
4.寫(xiě)入文件
OutputStream ops = new FileOutputStream(path);
OutputFormat out = OutputFormat.createPrettyPrint();
out.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(ops,out);
Dom4j中的重要方法:
元素對(duì)象增加子節(jié)點(diǎn)addElement()
元素對(duì)象設(shè)置屬性addAttribute()
得到父節(jié)點(diǎn)getParent().remove(節(jié)點(diǎn))刪除節(jié)點(diǎn)
浙公網(wǎng)安備 33010602011771號(hào)