登录成功后,跳转到登录前的页⾯
由于页⾯长时间未操作,出现登录超时,⽤户再次刷新页⾯,系统会⾃动跳转到登录页⾯。当⽤户重新登录后,怎么才能跳转到原来的页⾯呢?解决的⽅法如下:
/**
* 获取request请求中的参数html怎么实现登录验证功能
* @param sb
* @param req
* @return
*/
@SuppressWarnings("all")
private StringBuffer getRequestParameters(StringBuffer sb, HttpServletRequest req){
Map map = ParameterMap();
String str = "?";
if(!map.isEmpty()){
for(Object key : map.keySet()){
String[] values = (String[])(key);
for(String value:values){
str+=key+"="+value+"&";
}
}
str = str.substring(0, str.length()-1);
}
return sb.append(str);
}
/**
* 在调⽤Controller处理⽅法前,执⾏是否登录验证操作,
* 如果没有登录直接跳转到登录页⾯
*/
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp,
Object arg2) throws Exception {
HttpSession session = Session();
// 获取管理员账户信息
CatalogManager user = (Attribute("userinfo");
// 如果⽤户信息为null,则判断当前⽤户未登录,跳转到登录页⾯先登录
if(null == user){
//获取当前浏览器访问地址
StringBuffer urlBuff = RequestURL();
getRequestParameters(urlBuff,req);
//对要跳转的url经⾏编码
String path = ContextPath();
int port = ServerPort();
String portStr = 80 == port ? "" : (":"+ServerPort());
String basePath = Scheme()+"://"+ServerName()+portStr+path+"/";
//对要跳转的url经⾏编码
String url = String(), HttpHelperCommon.CHARSET_ENCODING);
resp.sendRedirect(basePath+"ht/login/toHtLogin.do?url="+url);
return false;
} else {
//如果登录成功,则直接执⾏下⼀步操作
//Context().getSession().put("userid", Id());
session.setAttribute("userinfo", user);
session.setAttribute("userid", Id());
session.setAttribute("loginname", Username());
return true;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。