日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python监听器_监听器 - python成长中 - 博客园

發布時間:2025/4/5 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python监听器_监听器 - python成长中 - 博客园 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

監聽器介紹

監聽器 - Listener

監聽器(Listener)是J2EE Servlet模塊下的組件

Listener的作用對web應用對象的行為進行監控

通過Listener監聽自動觸發指定的功能代碼

第一個監聽器

packagecom.imooc.listener;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;

@WebListenerpublic class FirstListener implementsServletContextListener {

@Overridepublic voidcontextDestroyed(ServletContextEvent arg0) {//TODO Auto-generated method stub

System.out.println("監聽器銷毀");

}

@Overridepublic voidcontextInitialized(ServletContextEvent arg0) {//TODO Auto-generated method stub

System.out.println("監聽器初始化");

}

}

com.imooc.listener.FirstListener

內置對象監聽器

案例應用

請求流量分析統計

packagecom.imooc.total;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;importjavax.servlet.ServletContext;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importjavax.servlet.ServletRequestEvent;importjavax.servlet.ServletRequestListener;public class RequestTotal implementsServletContextListener,ServletRequestListener {

@Overridepublic voidrequestDestroyed(ServletRequestEvent arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidrequestInitialized(ServletRequestEvent arg0) {/*** 監聽請求,每次請求來臨時,記錄時間段的請求次數

**/

//獲取ServletContext對象

ServletContext context =arg0.getServletContext();//取出屬性對象

List timeArray = (List) context.getAttribute("timeArray");

List valueArray = (List) context.getAttribute("valueArray");//定義一個時間類型的對象

Date date = newDate();//時間格式化

SimpleDateFormat hourMinute = new SimpleDateFormat("HH:mm");//對小時和分鐘格式化

String time =hourMinute.format(date);//判斷當前時間在不在集合里

if(timeArray.indexOf(time) == -1) {//時間集合里增加這個時間段

timeArray.add(time);//在請求記錄集合里,初始化有一次請求

valueArray.add(1);//保存ServletContext對象里

context.setAttribute("timeArray", timeArray);

context.setAttribute("valueArray", valueArray);

}else{//獲取該時間段索引

int index =timeArray.indexOf(time);//根據索引獲取值

int value =valueArray.get(index);//根據索引累加值

valueArray.set(index, value+1);//保存屬性

context.setAttribute("valueArray", valueArray);

}

}

@Overridepublic voidcontextDestroyed(ServletContextEvent arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidcontextInitialized(ServletContextEvent arg0) {//初始化時間集合,累加請求集合

List timeArray= newArrayList();

List valueArray= newArrayList();//獲取ServletContext對象

ServletContext context =arg0.getServletContext();//把timeArray當屬性保存在ServletContext里

context.setAttribute("timeArray", timeArray);

context.setAttribute("valueArray", valueArray);

}

}

xml配置

request-total

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

com.imooc.total.RequestTotal

入門百度Echarts組件

Insert title here

$.ajax(

{

url:"./rt",

type:"get",

dataType:"json",

success : function(json) {//data = jQuery.parseJSON(data);//dataType指明了返回數據為json類型,故不需要再反序列化

console.log(json);

console.log(json.timeArray);

console.log(json.vauleArray);//基于準備好的dom,初始化echarts實例

var myChart = echarts.init(document.getElementById('main'));//指定圖表的配置項和數據

var option ={

title: {

text:'請求流量數據表'},

tooltip: {},

legend: {

data:['訪問量']

},

xAxis: {

data: json.timeArray

},

yAxis: {},

series: [{

name:'次數',

type:'bar',

data: json.valueArray

}]

};//使用剛指定的配置項和數據顯示圖表。

myChart.setOption(option);

},

error:function(){

alert("請求失敗");

}

}

)

}

window.setInterval("showCase()",1000);

packagecom.imooc.total;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;importjavax.servlet.ServletContext;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importjavax.servlet.ServletRequestEvent;importjavax.servlet.ServletRequestListener;importjavax.servlet.http.HttpServletRequest;public class RequestTotal implementsServletContextListener,ServletRequestListener {

@Overridepublic voidrequestDestroyed(ServletRequestEvent arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidrequestInitialized(ServletRequestEvent arg0) {/*** 監聽請求,每次請求來臨時,記錄時間段的請求次數

**/

//獲取HttpServletRequest對象

HttpServletRequest request =(HttpServletRequest)arg0.getServletRequest();//獲取請求的URL

String url =request.getRequestURL().toString();if(url.endsWith("/rt") == true) {return;

}//獲取ServletContext對象

ServletContext context =arg0.getServletContext();//取出屬性對象

List timeArray = (List) context.getAttribute("timeArray");

List valueArray = (List) context.getAttribute("valueArray");//定義一個時間類型的對象

Date date = newDate();//時間格式化

SimpleDateFormat hourMinute = new SimpleDateFormat("HH:mm");//對小時和分鐘格式化

String time =hourMinute.format(date);//判斷當前時間在不在集合里

if(timeArray.indexOf(time) == -1) {//時間集合里增加這個時間段

timeArray.add(time);//在請求記錄集合里,初始化有一次請求

valueArray.add(1);//保存ServletContext對象里

context.setAttribute("timeArray", timeArray);

context.setAttribute("valueArray", valueArray);

}else{//獲取該時間段索引

int index =timeArray.indexOf(time);//根據索引獲取值

int value =valueArray.get(index);//根據索引累加值

valueArray.set(index, value+1);//保存屬性

context.setAttribute("valueArray", valueArray);

}

}

@Overridepublic voidcontextDestroyed(ServletContextEvent arg0) {//TODO Auto-generated method stub

}

@Overridepublic voidcontextInitialized(ServletContextEvent arg0) {//初始化時間集合,累加請求集合

List timeArray= newArrayList();

List valueArray= newArrayList();//獲取ServletContext對象

ServletContext context =arg0.getServletContext();//把timeArray當屬性保存在ServletContext里

context.setAttribute("timeArray", timeArray);

context.setAttribute("valueArray", valueArray);

}

}

packagecom.imooc.total;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.alibaba.fastjson.JSON;/*** Servlet implementation class RequestTotalServlet*/@WebServlet("/rt")public class RequestTotalServlet extendsHttpServlet {private static final long serialVersionUID = 1L;/***@seeHttpServlet#HttpServlet()*/

publicRequestTotalServlet() {super();//TODO Auto-generated constructor stub

}/***@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub

response.setContentType("text/html;charset=UTF-8");

PrintWriter out=response.getWriter();//out.println("

流量統計計算器

");

ServletContext context=request.getServletContext();

List timeArray = (List) context.getAttribute("timeArray");

List valueArray = (List) context.getAttribute("valueArray");//out.println(timeArray.toString()+"\n");//out.println(valueArray.toString());//整合集合,采取map映射表的方式

Map dict = newHashMap();//初始化鍵值對

dict.put("timeArray", timeArray);

dict.put("valueArray", valueArray);//轉化為JSON字符串

String json =JSON.toJSONString(dict);

out.println(json);

}/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//TODO Auto-generated method stub

doGet(request, response);

}

}

總結

以上是生活随笔為你收集整理的python监听器_监听器 - python成长中 - 博客园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。