ServletRequestAttributeListener的用法和實例

ServletRequestAttributeListener:
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
ServletRequestAttributeListener能監(jiān)測到有人正在往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>




用下面這個servlet測試:

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");   
   }
}



運行這個Servlet以后,console里的輸出結(jié)果是:


add attribute
增加了name 馬克-to-win
replace attribute
取代了name 馬克-to-win現(xiàn)在的新值是mark-to-win
remove attribute
去除了name mark-to-win