jsp里面实现asp.net的Global文件内容。
Global.java文件:

1 import javax.servlet.ServletContext; 2 import javax.servlet.ServletContextEvent; 3 import javax.servlet.ServletContextListener; 4 import javax.servlet.ServletRequest; 5 import javax.servlet.ServletRequestEvent; 6 import javax.servlet.ServletRequestListener; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpSession; 9 import javax.servlet.http.HttpSessionEvent; 10 import javax.servlet.http.HttpSessionListener; 11 12 public class Global implements ServletContextListener, HttpSessionListener, 13 ServletRequestListener { 14 15 @Override 16 public void contextInitialized(ServletContextEvent sce) { 17 // TODO Auto-generated method stub 18 System.out.println("网站启动"); 19 ServletContext application = sce.getServletContext(); 20 application.setAttribute("count", 10); 21 } 22 23 @Override 24 public void contextDestroyed(ServletContextEvent sce) { 25 // TODO Auto-generated method stub 26 ServletContext application = sce.getServletContext(); 27 application.setAttribute("count", 0); 28 System.out.println("网站停止"); 29 } 30 31 @Override 32 public void requestInitialized(ServletRequestEvent arg0) { 33 // TODO Auto-generated method stub 34 System.out.println("服务器接收一个请求"); 35 ServletRequest request = arg0.getServletRequest(); 36 if (request instanceof HttpServletRequest) { 37 HttpServletRequest httpRequest = (HttpServletRequest) request; 38 String url = httpRequest.getRequestURI(); 39 System.out.println(url); 40 } 41 } 42 43 @Override 44 public void requestDestroyed(ServletRequestEvent arg0) { 45 // TODO Auto-generated method stub 46 System.out.println("服务器销毁一个请求"); 47 } 48 49 @Override 50 public void sessionCreated(HttpSessionEvent arg0) { 51 // TODO Auto-generated method stub 52 System.out.println("服务器创建一个会话"); 53 HttpSession session = arg0.getSession(); 54 session.setAttribute("count", 10); 55 56 ServletContext application = session.getServletContext(); 57 Object obj = application.getAttribute("count"); 58 if (obj instanceof Integer) { 59 Integer appCount = (Integer) obj; 60 appCount += 1; 61 application.setAttribute("count", appCount); 62 } 63 } 64 65 @Override 66 public void sessionDestroyed(HttpSessionEvent arg0) { 67 // TODO Auto-generated method stub 68 System.out.println("服务器销毁一个会话"); 69 HttpSession session = arg0.getSession(); 70 ServletContext application = session.getServletContext(); 71 Object obj = application.getAttribute("count"); 72 if (obj instanceof Integer) { 73 Integer appCount = (Integer) obj; 74 appCount -= 1; 75 application.setAttribute("count", appCount); 76 } 77 } 78 }
web.xml文件:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 4 <listener> 5 <listener-class>Global</listener-class> 6 </listener> 7 </web-app>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现