Привет. У тебя тут все равно ответов нет, так что предложу свою версию:
>>request.getSession().setAttribute("logged", "true"); - сомневаюсь по-поводу true в кавычках. Я делаю так:
java.sql.Connection con;
....
request.getSession().setAttribute("connection",con);
...
т.е. "засавываю" сам объект. Соответсвенно извдекаю:
con=(java.sql.Connection)request.getSession().getAttribute("connection");
Если я правильно понял твою проблему, то ты "засунул" объект String("true"), а проверяешь на предмет чего то другого:
if ((HttpServletRequest)request.getSession().getAttribute("logged") != null).
Если я прав, то у тебя два выхода:
1) Затолкать boolean и его же проверить. request.getSession().setAttribute("logged", true);
2) Проверяей как if((String(request.getSession().getAttribute("logged"))).compareTo("true")==0).
Хотя могу и ошибаться....
в общем, что знал, то сказал.