servlet注解 @WebListener

简介: servlet注解 @WebListener

Servlet3.0中的监听器相比于2.5的差别在于3.0增加了对注解的支持。


作用


JavaWeb中Listener是Servlet规范定义的一种特殊类,主要用于监听3个作用域的创建、销毁,以及其属性变更


Servlet中的三个作用域分别为:


HttpServletRequest,HttpSession,ServletContext。

注意pageContext表示jsp整个页面,不属于Servlet中的作用域


应用场景:


统计在线人数

页面访问量

应用启动时做一些初始化工作等等


监听器类应该实现下面接口之一:


1.对Request的监听有ServletRequestListener和ServletRequestAttributeListener。


前者可见监听Request的创建和销毁;


而后者可以对Request的属性进行监听。


2.对Session的监听有HttpSessionListener和HttpSessionAttributeListener。


HttpSessionListener可以监听HttpSession的创建跟销毁,


而HttpSessionAttributeListener则是对session中属性的监听,它可以监听到session新增属性、移除属性和属性值被替换时。


3.对于ServletContext的监听器有ServletContextListener和ServletContextAttributeListener。


ServletContextListener可以监听到ServletContext的创建和销毁,


而ServletContextAttributeListener可以监听到ServletContext中属性的新增、移除和属性值的替换。


解决路径问题:


import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class AppListener implements ServletContextListener{
   @Override
   public void contextDestroyed(ServletContextEvent arg0) {
      System.out.println("contextDestroyed 方法被调用");
   }
   @Override
   public void contextInitialized(ServletContextEvent arg0) {
      //取到ServletContext
      ServletContext context=arg0.getServletContext();
      context.setAttribute("qijian", context.getContextPath());
      System.err.println("---------Servlet容器创建成功 ctx被放到ServletContext作用域-------");
   }
}


前端页面就可以这样使用:


<form class="layui-form" id="loginFrm" method="post" action="${qijian}/login/login.action">
</form>
相关文章
|
3月前
|
前端开发 JavaScript
这篇文章介绍了如何使用form表单结合Bootstrap格式将前端数据通过action属性提交到后端的servlet,包括前端表单的创建、数据的一级和二级验证,以及后端servlet的注解和参数获取。
这篇文章介绍了使用AJAX技术将前端页面中表单接收的多个参数快速便捷地传输到后端servlet的方法,并通过示例代码展示了前端JavaScript中的AJAX调用和后端servlet的接收处理。
这篇文章介绍了如何使用form表单结合Bootstrap格式将前端数据通过action属性提交到后端的servlet,包括前端表单的创建、数据的一级和二级验证,以及后端servlet的注解和参数获取。
|
3月前
|
存储 前端开发 Java
servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)
该文章展示了如何使用Servlet过滤器(Filter)通过注解方式创建一个网站访问人数统计功能,通过`@WebFilter`注解定义过滤器及其URL模式,并在`doFilter`方法中实现计数逻辑,将访问次数存储在`ServletContext`中,最后在JSP页面展示访问人数。
servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)
|
3月前
|
前端开发 Java 开发工具
servlet技术--使用注解模拟用户登录实现页面跳转
该文章介绍了Servlet技术的使用,通过注解方式开发Servlet来模拟用户登录功能,并在登录成功后实现页面跳转,展示用户的用户名和密码。
servlet技术--使用注解模拟用户登录实现页面跳转
|
5月前
|
XML 数据格式
XML配置Servlet文件,不使用注解配置路径的方法
XML配置Servlet文件,不使用注解配置路径的方法
|
5月前
|
Java 应用服务中间件 开发工具
基于Servlet的3.1以上注解方式完成上传功能。
基于Servlet的3.1以上注解方式完成上传功能。
24 0
|
应用服务中间件
Servlet - 匹配模式加注解源码分析
Servlet - 匹配模式加注解源码分析
76 0
|
6月前
Servlet3.0+环境下使用注解注册Servlet、Filter和Listener组件
Servlet3.0+环境下使用注解注册Servlet、Filter和Listener组件
70 2
|
6月前
|
XML Java 应用服务中间件
SpringMVC与Servlet3.0整合 - ServletContainerInitializer注解配置项目
SpringMVC与Servlet3.0整合 - ServletContainerInitializer注解配置项目
54 1
|
6月前
|
前端开发 Java 容器
SpringBoot中注册Servlet、Filter和Listener(代码和注解两种方式)
SpringBoot中注册Servlet、Filter和Listener(代码和注解两种方式)
126 0
|
XML 数据格式
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发
告别web.xml映射Servlet、Filter、Listener,解锁注解新方式开发