У меня есть проект, основанный на Spring Boot и Java, с файлами WebController и jsp, которые подключаются к этому контроллеру для обмена данными. Я реализовал значение HTTPSession на этом контроллере и класс Java с именем «Login» для управления несколькими пользователями в приложении, которое развернуто на сервере с Tomcat 9.
Цель приложения состоит в том, чтобыэнергичное исследование, и проблема в том, что когда подключаются 2 разных пользователя, данные обоих сеансов смешиваются, и в конце оба пользователя заканчивают работу над одним и тем же исследованием и с одинаковыми данными.
Технология приложениязаключается в следующем: в Spring Controller у меня есть службы, которые подключаются к базе данных SQL, а в Интернете файлы jsp представляют собой формы в HTML для отправки данных на контроллер.
Я попытался изменить конфигурациюTomcat, добавляющий память, но это не было решением, также как и проблема с базой данных, потому что идентификаторы и хранилище данных правильно.
Я попытался синхронизировать методы контроллера Java и "@EnableASync""аннотация
Существует только один контроллер для представлений JSP,который имеет глобальные переменные службы для подключения к SQL и ViewModel, чтобы получить его в представлениях jsp
//Here, I get the user who do the login and store it in the HttpSession
@RequestMapping(value = "/", method = RequestMethod.POST)
public synchronized String loginPost(HttpSession session, @RequestParam("email") String email,
@RequestParam("login") String passwd) {
Login login = loginService.buscarPorUsuario(email);
session.setAttribute("usuario", login);
}
//A sample method in the controller, calls a jsp named "NuevoAutoconsumo"
@RequestMapping(value = "/Solar/NuevoAutoconsumo", method = RequestMethod.GET)
public synchronized String NuevoEstudioSolAutoconsumo(HttpSession session, Model model) {
return "/Solar/NuevoAutoconsumo";
}
//In the controller, I have the following variables created:
//services for the Database
private final ConsumosManualesService consumosManualesService;
private final OfertaGeneradaService ofertasGeneradasService;
private final MaterialPresupuestoService materialesPresupuestoService;
//Global variable to store the data which is sent to the jsp views
private final EstudioSolarViewModel estudioViewModel;
Я ожидал, что, когда я сохраню пользователя в сеансе, программа будет работать отдельно в зависимости отsession.get ("пользователь"), но данные смешиваются.
Я думаю, что большая ошибка здесь в том, что данные смешиваются, когда файл jsp отправляет данные в контроллер Java, но я незнаю точно, и я не получаю никаких сообщений об ошибках на консоли.