Я пытался найти причину, почему моя сессия будет потеряна, когда я сделаю POST.Потеря сессии на POST
Я проверяю свою сессию на всем протяжении своего приложения, но сеанс будет падать, когда я вызову конкретный сервлет, и он будет только на этом конкретном. Проблема прерывистая, поэтому она очень расстраивает. Я не уверен, что нужно, поэтому я поставлю столько информации, сколько смогу.
Доступ к странице осуществляется через сервлет. Я могу проверить, что сеанс все тот же.
Поскольку пользователь выполняет маршрутизацию через приложение, я вижу, что сеанс все тот же.
Проверка сеанса: HTTP Session CEHKIIMEKHMH Calling Получить подробную информацию Проверка сеанса: HTTP Session CEHKIIMEKHMH Вызов Детали проекта Проверка сеанса: HTTP Session CEHKIIMEKHMH Вызов Attachment Controller Проверка сеанса: HTTP Session CEHKIIMEKHMH
public class Attachments extends HttpServlet {
\t private static final long serialVersionUID = 1L;
\t protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
\t
\t \t System.out.println("Calling Attachment Controller");
\t \t HttpSession session = request.getSession(false);
\t \t System.out.println("Checking Session:"+session);
\t \t
\t \t if(session != null){
\t \t \t Object projectId = session.getAttribute("projectId");
\t \t \t request.getRequestDispatcher(response.encodeURL("views/attachments.jsp")).forward(request, response);
\t \t }else{
\t \t \t System.err.println("Invalid session");
\t \t \t response.sendRedirect("/");
\t \t }
\t \t \t \t
\t }
}
Вот моя форма публикации. Форма фактически передается через javascript после выполнения проверки, я просто просто вызываю $ ('# files) .submit(); не уверен, действительно ли это имеет значение или нет.
<form id="files" name="files" method="POST" action="FileUpload" enctype="multipart/form-data">
В тот момент они вывешивают, сеанс теряется
Вызов файла Загрузить Проверка сессии: нуль нуль
Вот начало сервлета
\t protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
\t \t
\t \t System.out.println("Calling File Upload");
\t \t HttpSession session = request.getSession(false);
\t \t System.out.println("Checking Session:"+session);
\t \t
\t \t if(session != null){
\t \t \t Object projectId = session.getAttribute("projectId"); \t \t
\t \t \t System.out.println("Accessing File Upload: Session is valid");
Это тот же метод по всей доске. Я понятия не имею, в чем проблема.
Возможно, это связано с запросом на получение множественной формы. Можете ли вы попробовать другой сервлет doPost без многократного запроса и проверить, все ли видите сеанс. – amitmah
Является ли эта проблема возникающей при разработке или обоим (разработка и производство)? –
В настоящее время это происходит только в процессе разработки. Из-за этой проблемы я не перешел в производство. Я дам ваше предложение попробовать и посмотреть, все ли это происходит. – user3183411