SpringBoot项目中普通类获取http相关的类(request/response/sesion)

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

/**
 * @author yangzhilong
 * @date 6/19/2019
 */
public class SessionUtils {
    private SessionUtils() {}

    /**
     * get current login username
     * @return
     */
    public static String getLoginUserName() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        if(null != requestAttributes) {
            HttpServletResponse response = requestAttributes.getResponse();
            HttpServletRequest request = requestAttributes.getRequest();
            HttpSession session = request.getSession();

            String username = request.getHeader("username");
            if (StringUtils.isNotEmpty(username)) {
                return username;
            }
        }
        return "default";
    }
}

原文地址:https://www.cnblogs.com/yangzhilong/p/11425072.html

时间: 2024-10-14 04:07:38

SpringBoot项目中普通类获取http相关的类(request/response/sesion)的相关文章

springboot项目中配置self4j

首先,声明一下,springboot项目中默认情况下已经集成了self4J + LogBack. slf4j作为一个接口定义,底层可以有很多实现框架,同时也可以支持别的日志实现或者框架打到sfl4j上.它的实现是基于不同的桥接包.slf4j作为接口定义,下面有很多种实现.实现原理是获取ILoggerFactory时执行初始化,初始化过程绑定实现对象:load出所有实现StaticLoggerBinder的类,然后获取他的单例,后面执行getLogger的时候都是调用这个单例类的方法获取对应有具体

谈谈MVC项目中的缓存功能设计的相关问题

本文收集一些关于项目中为什么需要使用缓存功能,以及怎么使用等,在实际开发中对缓存的设计的考虑 为什么需要讨论缓存呢? 缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源(例如数据库),我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据.这种机制就是所谓的缓存机制. 根据缓存的位置不同,可以区分为: 1.客户端缓存(缓存在用户的客户端,例如浏览器) 2.服务器断货(缓存在服务器中,可以缓存在内存

在SpringBoot项目中添加logback的MDC

在SpringBoot项目中添加logback的MDC 先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web controller,在同一时间可能收到来自多个客户端的请求,如果一个请求发生了错误,我们要跟踪这个请求从controller开始一步步都执行到了哪些代码.有哪些log的输出.这时我们可以看log文件,但是log文件是多个请求同时记录的,基本无法分辨哪行是哪个请求产生的,虽然我们可以看线程,但线程可能被复

SpringBoot 项目中使用Log4j2

Log4j 系列 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步.等等),使得日志的吞吐量.性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活 slf4j是对所有日志框架制定的一种规范.标准.接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要

项目中需要将获取的数据按照顺序读取并且展示

1 项目中需要将获取的数据按照顺序读取并且展示的时候的实例, 2 下面截图是将获取到的小区的照片.按照获取的顺序同步到ES 搜索服务器上 3 用到的JSON包是alibaba.fastjson包,此包可以将获取的数据存放在指定的集合中,在此项目中就是定义了LinkedHashMap

springBoot项目中的static和templates文件夹

记录是为了更好的成长! 1.static文件中的页面 //这样写不能访问static中index文件夹下的index.html页面 @RequestMapping("index") public String hello() { return "/index/index"; } //这样写才能访问到 @RequestMapping("index") public String hello() { return "/index/index

Java实战之路(1):SpringBoot项目中使用Mybatis打印Sql语句

SpringBoot项目中使用Mybatis打印Sql语句 如题,实际项目中使用很多都会用到SpringBoot+Mybatis的经典搭配进行开发,数据库里明明有数据,可是程序运行就是查不到,此时我们在本地Debug时,需要将Mybatis的实际Sql打印出来,看看Sql与我们期望的是否一致,或者将Sql拿到数据库中直接执行,看看结果.这里简单介绍几种实战中的用法. 方法一 properties:在application.properties配置文件中增加如下配置 logging.level.c

解决Springboot项目中jpa扫描不到实体的问题

在一些情况下Springboot项目中jpa扫描不到实体.比如默认扫描不到引用的其他项目中定义的实体.导致无法自动创建表. 解决方法,在Application中自定义实体扫描的包 @EntityScan(basePackages = {"com.aaa"}) @SpringBootApplication @EnableDiscoveryClient @ComponentScan(basePackages = {"com.aaa.*"}) @EntityScan(ba

背水一战 Windows 10 (122) - 其它: 通过 Windows.System.Profile 命名空间下的类获取信息, 查找指定类或接口的所在程序集的所有子类和子接口

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 其它 通过 Windows.System.Profile 命名空间下的类获取信息 查找指定类或接口的所在程序集的所有子类和子接口 示例1.演示如何通过 Windows.System.Profile 命名空间下的类获取信息Information/ProfileInfo.xaml <Page x:Class="Windows10.Information.ProfileInfo" xmlns="htt