登录成功后跳转回登录前的页面,实现思路
首先,我的网站都是动态跳转的。
整体思路:
1、拦截:在拦截到用于session过期,或用户未登录的情况下,将登录前requestUrl,post请求的参数组成paramMap存放到session中
String requestURL = request.getRequestURL().toString(); Map<Integer, String> paramMap = new HashMap<Integer, String>(); Enumeration e = req.getParameterNames(); int i = 1; while (e.hasMoreElements()) { String param = e.nextElement().toString(); String value = req.getParameter(param); log.info("##账户:" + loginname + "##(" + i + ")(地址: " + requestURL + ")(属性: " + param + ")(参数: " + value + ")##"); paramMap.put(param, value);
req.getSession.setAttribute("paramMap", paramMap); i++; }
2、登录:若发现用户可以成功登录,取出requestUrl和paramMap,然后将paramMap放到request的paramter中,并使用Action转发到requestUrl
Map<String, String> paramMap = (Map<String, String>) ServletActionContext.getRequest().getSession().getAttribute("paramMap"); Set<String> params= paramMap.keySet(); for(String param : params){ ServletActionContext.getRequest().setAttribute(param, paramMap.get(param)); }
3、跳转到登录前页面