zoukankan      html  css  js  c++  java
  • spring HttpServletRequest 简介

    前提:工作遇到controller中通过注解的方式注入

    @Resource
    private HttpServletRequest request;

    我们都知道spring 默认是单例,当遇到并发的时候线程不安全,但是经过测试它安全的。

    综上,确定spring肯定对它做了处理,因此打开我的探索之路.....

    上源码

    public class RequestContextListener implements ServletRequestListener {
    private static final String REQUEST_ATTRIBUTES_ATTRIBUTE = RequestContextListener.class.getName() + ".REQUEST_ATTRIBUTES";

    public RequestContextListener() {
    }

    public void requestInitialized(ServletRequestEvent requestEvent) {
    if(!(requestEvent.getServletRequest() instanceof HttpServletRequest)) {
    throw new IllegalArgumentException("Request is not an HttpServletRequest: " + requestEvent.getServletRequest());
    } else {
    HttpServletRequest request = (HttpServletRequest)requestEvent.getServletRequest();
    ServletRequestAttributes attributes = new ServletRequestAttributes(request);
    request.setAttribute(REQUEST_ATTRIBUTES_ATTRIBUTE, attributes);
    LocaleContextHolder.setLocale(request.getLocale());
            //放到这里了,RequestContextHolder下的requestAttributes让我们跟进去瞅瞅
    RequestContextHolder.setRequestAttributes(attributes);
    }
    }

    ----------------------------------------------------------------------------------------------------------------
    public abstract class RequestContextHolder {
    private static final boolean jsfPresent = ClassUtils.isPresent("javax.faces.context.FacesContext", RequestContextHolder.class.getClassLoader());
      //原来如此啊,是通过threadLocal去保证的
    private static final ThreadLocal<RequestAttributes> requestAttributesHolder = new NamedThreadLocal("Request attributes");
    private static final ThreadLocal<RequestAttributes> inheritableRequestAttributesHolder = new NamedInheritableThreadLocal("Request context");

    public RequestContextHolder() {
    }





    
    
  • 相关阅读:
    Kafka学习笔记(五、Kafka偏移量)
    web-备份是个好习惯
    web-Web5
    web-web4
    web-flag就在index里
    C++日期类、时间类、日期时间类的设计
    蒙提霍尔问题简单粗暴的理解掉
    sql分组操作符与聚集函数
    sql增删改
    sql简单查询
  • 原文地址:https://www.cnblogs.com/xlh91118/p/6132999.html
Copyright © 2011-2022 走看看