java session跨域_springsession跨域详解,实践实例

下面的内容要给大家讲到的就是springsession跨域方面的问题,一起来详细的了解一下springsession跨域方面的内容吧。

问题:

在上面的架构当中,客户端发起了一个请求,在这个请求到达了nginx上面之后,就被Nginx转达到了Tomcat A上面,之后,在Tomcat

A上面往Session当中保存了一份数据,之后,再来一个请求,这个请求就被转发到了Tomcat

B上面,这个时候,再去Session当中获取数据,发现,没有之前的数据。

思路:

将各个服务之间需要共享的数据,保存到一个公共的地方,主流方案-Redis。

代码(实践):

1、创建工程-pom.xml文件<?xml  version="1.0" encoding="UTF-8"?>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.2.1.RELEASE

com.tsvv

Spring-Session

0.0.1-SNAPSHOT

war

Spring-Session

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-data-redis

org.springframework.boot

spring-boot-starter-thymeleaf

org.springframework.boot

spring-boot-starter-web

org.springframework.session

spring-session-data-redis

org.springframework.boot

spring-boot-starter-tomcat

provided

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

application.yml中配置Redisspring:

redis:

host: 192.168 .2 .102

port: 6379

配置完成package com.tsvv.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class IndexController

{

@Value("${server.port}")

private Integer port;

@RequestMapping("/set")

public String setPort(HttpSession session)

{

session.setAttribute("tsvv", "Spring Session");

return String.valueOf(port);

}

@RequestMapping("/get")

public String getPort(HttpSession session)

{

return session.getAttribute("tsvv")

.toString() + ":" + port;

}

}

2、项目打包之后,得到两个war(分别以8091、8092端口启动),nohup-当终端关闭的时候,Spring

Boot不要停止运行;&-Spring Boot在后台启动;nohup java - jar SpringSession8091.war--server.port = 8091 &

nohup java - jar SpringSession8092.war--server.port = 8092 &

3、配置,启动Nginxserver

{

listen 80;

server_name 192.168 .2 .102;#

charset koi8 - r;#

access_log logs / host.access.log main;

location /

{

proxy_pass http: //tsvvLinux;

}

}

upstream tsvvLinux

{

server 192.168 .2 .102: 8091;

server 192.168 .2 .102: 8092;

}

4、运行

49b3839bc2711a5e78bced2f4ff7b4b1.png本文源于网络,仅供参考。

你对java有兴趣吗?你想了解和java相关的经典实例吗?java经典实例可以用过奇Q工具网来了解哦。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值