Не уверен, как решить эту проблему, нужна помощь здесь.
Вызов Ajax переносит информацию о пользователе в сервлет, я сохраняю объект пользователя в HttpSession, и управление возвращается в Ajax, откуда я перенаправляю управление на следующую страницу JSP через сервлет контроллера.Тем не менее, если я пытаюсь получить объект из HttpSession, это ноль .. не знаю, как решить эту проблему.
вот мой код для firstservlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// get values from http request
// persist "user" object to database
HttpSession session = request.getSession(); //
session.setAttribute("user", user); //setting session variable
Gson gson = new Gson();
JsonElement jsonElement = null;
jsonElement = gson.toJsonTree("/nextservlet");
response.setContentType("text/plain");
PrintWriter out=response.getWriter();
}
вот мой код Javascript / AJAX для перенаправления запроса на следующий сервлет
$.ajax({
type: 'POST',
url: ‘firstservlet’,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(quiz),
success: function(result) {
//result = /nextservlet
window.location.href = result;
},
error:function(data,status,er) {
console.log("Error:",er);
}
});
и, наконец, управление переходит к следующему сервлету -где я хотел бы обработать данные и затем показать новую страницу JSP.
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession();
User user = session.getAttribute(“user”); //<--- this is NULL
LOG.warning("User id is : " + user.getId()); //<--- hence error here
RequestDispatcher dispatcher = request.getRequestDispatcher
("/anotherpage.jsp");
dispatcher.forward(request, response);
}
проблема, потому что я использую -> window.location.href = result для отправки запроса в следующий сервлет.. и это идет, чтобы сделать Get ??