监听器初始化问题

监听器初始化问题

# 具体遇到的问题
每次启动TomCat监听器初始化都会执行好几次
# 报错信息的截图
http://img1.sycdn.imooc.com//climg/5f929c28097f4fb310090344.jpg# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输

(ServletContextEvent servletContextEvent) {
    System..println()}

(ServletContextEvent servletContextEvent) {
    System..println()}

(HttpSessionEvent httpSessionEvent) {
    HttpSession session=httpSessionEvent.getSession()System..println(+session.getId())}

(HttpSessionEvent httpSessionEvent) {
    System..println()}

(ServletRequestEvent servletRequestEvent) {
    HttpServletRequest request=(HttpServletRequest)servletRequestEvent.getServletRequest()System..println(+request.getRequestURI())}

(ServletRequestEvent servletRequestEvent) {
    System..println()}

入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2020-10-24 19:01:19

同学你好,初始化多次是执行了多次请求。

在配置Tomcat时,将After launch前的勾去掉,这里是指启动项目后自动访问URL,

http://img1.sycdn.imooc.com//climg/5f94090c09ae5e4705400117.jpg

去掉后,启动项目不自动访问url,不会初始化多次。同学可以在地址栏手动的输入url访问,查看监听器执行次数。

祝:学习愉快~

好帮手慕阿满 2020-10-24 15:59:26

同学你好,这边测试只初始化一次,如:

http://img1.sycdn.imooc.com//climg/5f93dd1109a30f9904070062.jpg

问一下同学使用的eclipse吗?默认访问的index.html或index.jsp页面是否有加载js或者css等,造成多次请求的,建议同学检查一下。

祝:学习愉快~

  • 提问者 qq_慕姐0405493 #1
    我使用的IDEA,默认访问页是http://localhost:8080
    2020-10-24 18:16:57
好帮手慕阿满 2020-10-23 18:44:14

同学你好,建议同学将代码贴全一些,我们这边具体测试一下。另外建议同学检查一下是否配置多个监听器。

祝:学习愉快~

  • 提问者 qq_慕姐0405493 #1
    package interface_listener; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class WebListener implements ServletContextListener, HttpSessionListener, ServletRequestListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("ServletContext已初始化"); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { System.out.println("ServletContext已被销毁"); } @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { HttpSession session=httpSessionEvent.getSession(); System.out.println("ServletSession已初始化,SessionId:"+session.getId()); } @Override public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { System.out.println("ServletSession已被销毁"); } @Override public void requestInitialized(ServletRequestEvent servletRequestEvent) { HttpServletRequest request=(HttpServletRequest)servletRequestEvent.getServletRequest(); System.out.println("ServletRequest已初始化,URL:"+request.getRequestURI()); } @Override public void requestDestroyed(ServletRequestEvent servletRequestEvent) { System.out.println("ServletRequest已被销毁"); } } =================================
    2020-10-24 13:43:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师