session的问题
堕落的唐僧 2014-08-19 11:19:44 机顶盒上我要记录不同页面访问我的业务页面时的returnURL用于遥控器返回,下面是过滤器的代码,在走SSO之前记录returnURL保存进SESSION,为什么在JSP里<%=session.getAttribute("returnURL") %>取出来的值都是NULL
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class OnlineFilter implements HandlerInterceptor {
Logger MyLogger = Logger.getLogger("MyLogger");
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2) throws Exception {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) arg0;
HttpServletResponse res = (HttpServletResponse) arg1;
HttpSession session = req.getSession();
//记录session
String returnURL = arg0.getParameter("returnURL");
arg0.getSession().setAttribute("returnURL",returnURL);
String userId = arg0.getParameter("UserID");
String result = arg0.getParameter("Result");
String spId = arg0.getParameter("SPID");
String UserToken = arg0.getParameter("UserToken");
String uri = ((HttpServletRequest) arg0).getRequestURI();
String url = req.getServletPath();
if ("0".equals(result) && null != userId) {
User user = new User();
user.setUserId(userId);
session.setAttribute("user", user);
req.getSession().setAttribute("user", user);
req.getSession().setAttribute("UserID", userId);
req.getSession().setAttribute("UserToken", UserToken);
req.getSession().setAttribute("SPID", spId);
}
if (session.getAttribute("user") == null) {
res.sendRedirect("http://124.75.29.164:7001/iptv3a/VASGetUserinfoAction.do?SPID=12341122&Action=UserTokenRequest&ReturnInfo="
+ "&ReturnURL=http://"
+ arg0.getLocalAddr()
+ ":"
+ arg0.getLocalPort() + req.getContextPath() + "/index.do");
return false;
} else {
// 记录LOG4J
MyLogger.info(session.getId() + ","
+ session.getAttribute("UserID") + ","
+ arg0.getRemoteAddr() + ","
+ ((HttpServletRequest) arg0).getRequestURL() + ","
+ ((HttpServletRequest) arg0).getHeader("REFERER") + ","
+ ((HttpServletRequest) arg0).getHeader("User-Agent"));
}
return true;
}
public void afterCompletion(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
Object arg2, ModelAndView arg3) throws Exception {
// TODO Auto-generated method stub
}
}