Не удается получить объект запроса сервлета и сеанс

#session-variables #servlets

#переменные сеанса #сервлеты

Вопрос:

я пытаюсь получить данные сеанса, но я не могу их получить, потому что я не могу получить объект запроса … код есть…

 package secondary.util;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;




public class GetUserData extends ActionSupport implements ServletRequestAware 
{

private static final long serialVersionUID = 1L;
private HttpServletRequest request;
private HttpSession session;
@Override
public void setServletRequest(HttpServletRequest arg0) {
    this.setServletRequest(arg0);
    session = request.getSession();
}
public HttpServletRequest getRequest() {
    return request;
}
public void setRequest(HttpServletRequest request) {
    this.request = request;
}

public GetUserData()
{

}

public String getUserLocation()
{


    session = request.getSession(); // <- here

String []usr_dtl = session.getAttribute("USERDETAIL").toString().split("@");
System.out.println("User name = "   usr_dtl[6]);
return "DONE";
}

}
  

это выдает исключение nullpointerexception, когда я получаю сеанс, который я отмечаю…

Ответ №1:

 session = request.getSession( true );
  

если текущего сеанса нет и значение create равно true, возвращает новый сеанс.

Обновить:

ваш request является null причиной того, что вы никогда не устанавливаете HttpServletRequest in setServletRequest() .
Попробуй

 this.setRequest(arg0);
  

вместо

 this.setServletRequest(arg0);
  

Комментарии:

1. я пробовал это, но не работает, и я не хочу создавать новый сеанс.. session = request.getSession( true);