#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);