当前位置: 首页 > 知识库问答 >
问题:

如何使用no-xml配置添加请求内容监听器?

严琨
2023-03-14

我需要在我的Spring Boot应用程序中添加一个侦听器,在web中。看起来像是xml

<listener>
 <listener-class>
    org.springframework.web.context.request.RequestContextListener
 </listener-class>
</listener>

我不用网络。xml配置,所以我有一个类

public class AppFilterConfig extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Filter[] getServletFilters() {
    CharacterEncodingFilter filter = new CharacterEncodingFilter();
    filter.setEncoding("UTF8");
    filter.setForceEncoding(true);
    Filter[] filters = new Filter[1];
    filters[0] = filter;
    return filters;
}

private int maxUploadSizeInMb = 5 * 1024 * 1024; // 5 MB

@Override
protected Class<?>[] getRootConfigClasses() {
    return null;
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return null;
}

@Override
protected String[] getServletMappings() {
    return new String[]{"/"};
}

@Override
protected void registerDispatcherServlet(ServletContext servletContext) {
    super.registerDispatcherServlet(servletContext);
    servletContext.addListener(new HttpSessionEventPublisher());

}

@Override
public void onStartup(ServletContext servletContext) throws ServletException     {

    super.onStartup(servletContext);
    servletContext.addListener(new RequestContextListener());
}

}

从上面的代码中可以看出,我已经向onStartup(ServletContext servletContext)方法添加了一个侦听器,但是它没有帮助,因为我仍然得到

In this case, use RequestContextListener or RequestContextFilter to expose the current request.

这条消息。如何将侦听器正确添加到Spring Boot Application?

共有2个答案

步胜
2023-03-14

编写自己的侦听器类,该类从Request estContextListener扩展,并通过注释注册它。像这样的东西:

@WebListener
public class MyRequestContextListener extends RequestContextListener {
}
孟子墨
2023-03-14

我创建了这个类,解决了我的问题。

@Configuration
@WebListener
public class MyRequestContextListener extends RequestContextListener {
}
 类似资料:
  • 我试图在请求中添加客户端进度条。理想的做法是获取请求头大小并接收 我对了解不多,但据我所知,必须启动请求才能实现这一点(请参见此处) PS1.虽然主要的范围为这,是一个文件上传进度条,我希望能够申请的全部请求大小。PS2.我知道有几个图书馆免费提供这一点,但ATM我不想使用任何。

  • Routes类只是一个扩展RouteBuilder的空类。 问题是,当我实际调用testCamel方法时,我的生产者是null。我知道我可以在xml配置文件中处理上下文,我只是想知道不使用xml时我做错了什么。

  • 问题内容: 我在componentdidmount中有一个ajax调用。然后在ajax promise中设置setState。 代码是这样的 当我导航到其他路线时,这会导致错误“无法在未安装的组件上设置状态”。 所以我认为我应该做的是在componentwillunmount中删除axios监听器。你会怎么做? 问题答案: 一个非常简单的解决方案是在unmount上设置一个标志,并在promise

  • 我有一个支持json和XML的REST api。我想测试XML方面,但自从升级到2.4.0版本后,我得到了一个错误: 预期的内容类型“xml”与实际的内容类型“application/json”不匹配。

  • 我试图用我的键控制火箭动画,并尝试使用KeyListener方法,然而,我的程序对我的按键没有反应。我尝试将keylistener添加到我的JFrame,但它没有调用它,因为JFrame是一个单独的静态方法。如果你运行它,你将没有图像,但是,如果你运行,请替换为矩形。你能说出我的错误吗。提前谢了。 下面是我的代码:

  • 本文向大家介绍Javascript添加监听与删除监听用法详解,包括了Javascript添加监听与删除监听用法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Javascript添加监听与删除监听的用法。分享给大家供大家参考。具体分析如下: js中事件监听就是利用addEventListener来绑定一个事件,这个用法在jquery中非常常用并且简单,但在原生js中比较复杂,这里整理了