`
fenglingxuewqk
  • 浏览: 83320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Listener中获取HttpServletRequest

 
阅读更多

要在Listener中获取HttpServletRequest,方法其实很简单:

ServletRequestAttributes rervletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes();
HttpServletRequest request = rervletRequestAttributes.getRequest();

但是有一种情况要特别注意, 就是请求不是来自于DispatcherServlet/DispatcherPortlet,例如filter之类。

这种情况下就必须得在web.xml里加入下面的listener:

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

 不然就会得到以下错误信息:

No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.

 

分享到:
评论

相关推荐

    servlet+filter+listener 详解

    Servlet、Filter 和 Listener 是 JavaEE 中三种重要的组件,它们在 Web 开发中扮演着重要的角色。Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。

    Servlet中获取运行环境信息

    此外,Servlet还可以通过监听器(Listener)获取运行时的环境变化。例如,`ServletContextListener`可以监听到Web应用的启动和停止事件,`ServletRequestListener`可以监听到请求的开始和结束,这些监听器可以用来...

    S07-tomcat之Listener内存马1

    然后在Servlet中通过`HttpServletRequest`或`ServletContext`获取这些属性并进行打印。通过访问Servlet,我们可以观察到Listener成功地在请求创建时插入了属性,并在Servlet中正确读取。 除了`...

    SpringBoot使用AOP注解记录操作日志

    // event.getRequest() 获取HttpServletRequest对象,从中获取IP、请求参数等 } } ``` 在这个监听器中,我们可以捕获到处理失败的HTTP请求,并从中获取请求的详细信息,包括IP地址、请求参数、异常信息等,然后...

    Java或web中解决所有路径问题

    本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、Listener等关键组件的路径获取技巧,以及Spring框架下Web应用根目录的获取策略。 ### 一、理解Java Web中的路径类型 ...

    快速学习JavaWeb中监听器(Listener)的使用方法

    在JavaWeb开发中,监听器(Listener)是一种重要的组件,主要用于监听和响应Web应用程序中的特定事件。通过监听器,开发者可以实现在特定事件触发时执行相应的处理逻辑,例如用户登录、注销、session创建、销毁等。...

    javaweb监听session

    至于如何根据Session ID获取Session,通常在Servlet或Filter中,我们可以直接从HttpServletRequest对象中获取Session。假设我们有一个请求方法,可以这样做: ```java import javax.servlet.http.HttpSession; ...

    springboot 用监听器统计在线人数案例分析

    在Spring Boot中,可以通过在监听器类上添加@WebListener注解来启用监听器,这样就不需要在web.xml文件中进行配置。监听器中需要实现两个方法:sessionCreated和sessionDestroyed,分别用于处理session的创建和销毁...

    SCWCD考前复习笔记!

    6. **过滤器与监听器**:Servlet API还包含了Filter和Listener的概念,Filter可以对请求和响应进行拦截和修改,Listener可以监听Servlet容器中的各种事件。 7. **会话管理**:Servlet提供了HttpSession接口,用于...

    servlet 中文帮助文档

    `HttpServletRequest`提供获取请求参数、头信息、请求URL等的方法;`HttpServletResponse`则用于构建并发送响应,如设置状态码、写入响应体、设置响应头。 七、Filter与Listener Servlet API还包括了Filter和...

    java或wed解决路径问题

    在`WEB-INF/web.xml`中,可以定义一个名为`webAppRootKey`的参数,设置一个默认值(如`webapp.root`)作为键,然后在Listener、Filter或Servlet中获取`ServletContext`的`getRealPath("/")`,并将结果存储到`System ...

    Servletapi.rar_java servlet api_servletAPI

    - `HttpServletRequest`:提供了`getParameter()`、`getParameterValues()`等方法获取请求参数;`getHeader()`获取请求头;`getLocale()`获取客户端语言设置等。 - `HttpServletResponse`:通过`setContentType()`...

    JAVA WEB学习资料

    在实际开发中,还需要学习过滤器(Filter)、监听器(Listener)等其他核心概念,以及MVC框架(如Spring MVC)、持久化技术(如JDBC、Hibernate)等进阶内容,以提升Java Web开发的效率和质量。

    JavaWeb程序设计习题参考答案(第7章).doc

    - `HttpServletRequest`接口的`setAttribute()`方法用于向请求中设置属性。 - `ServletRequestAttributeListener`监听器用于监听请求域内的属性变化。 - 当调用`setAttribute()`方法时,会触发`...

    servlet API zip压缩包

    HttpServletRequest提供了获取请求参数、头信息、请求URL等方法,而HttpServletResponse则用于设置响应状态码、响应头、输出内容等。 五、过滤器(Filter) Servlet API 2.5中,Filter接口允许开发者实现预处理和后...

    Java Servlet API2.1中文文档

    9. **监听器Listener**:Listener是Servlet API中的事件监听接口,如ServletContextListener、ServletRequestListener等,它们可以在特定的Servlet事件发生时接收通知,如Web应用启动、Servlet初始化等。 10. **URL...

    servlet中文帮助文档CHM格式

    9. **监听器**:Servlet Context Listener、Session Listener和Request Listener等,它们在特定事件发生时执行代码,如上下文初始化、会话创建或结束。 10. **MVC模式**:Servlet与Model-View-Controller设计模式的...

    Servlet注解详解.docx

    现在,可以通过`HttpServletRequest`的`getPart()`方法直接获取上传的文件,无需像Servlet 2.x那样依赖第三方库如Apache Commons FileUpload。 Tomcat 7.0.x及更高版本开始支持Servlet 3.0规范,因此,使用这些新...

    JavaWeb中的监听器与过滤器

    - 监听在`ServletContext`、`HttpServletRequest`和`HttpSession`中属性的变化。 - 主要有`HttpSessionAttributeListener`、`ServletRequestAttributeListener`和`ServletContextAttributeListener`。 - **用途**...

    JavaWeb视频教程-day08

    你需要掌握如何从请求对象中获取参数、头信息和请求类型,以及如何通过响应对象设置状态码、发送数据到客户端。 3. **JSP(JavaServer Pages)**: JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码。...

Global site tag (gtag.js) - Google Analytics