博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
登录成功后,跳转到登录前的页面
阅读量:5061 次
发布时间:2019-06-12

本文共 2115 字,大约阅读时间需要 7 分钟。

由于页面长时间未操作,出现登录超时,用户再次刷新页面,系统会自动跳转到登录页面。当用户重新登录后,怎么才能跳转到原来的页面呢?解决的方法如下:

/**     * 获取request请求中的参数     * @param sb     * @param req     * @return     */    @SuppressWarnings("all")    private StringBuffer getRequestParameters(StringBuffer sb, HttpServletRequest req){        Map map = req.getParameterMap();        String str = "?";        if(!map.isEmpty()){            for(Object key : map.keySet()){                String[] values = (String[])map.get(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 = req.getSession();     // 获取管理员账户信息        CatalogManager user = (CatalogManager)session.getAttribute("userinfo");        // 如果用户信息为null,则判断当前用户未登录,跳转到登录页面先登录        if(null == user){            //获取当前浏览器访问地址            StringBuffer urlBuff = req.getRequestURL();            getRequestParameters(urlBuff,req);            //对要跳转的url经行编码                     String path = req.getContextPath();            int port = req.getServerPort();            String portStr = 80 == port ? "" : (":"+req.getServerPort());            String basePath = req.getScheme()+"://"+req.getServerName()+portStr+path+"/";            //对要跳转的url经行编码            String url = URLEncoder.encode(urlBuff.toString(), HttpHelperCommon.CHARSET_ENCODING);                        resp.sendRedirect(basePath+"ht/login/toHtLogin.do?url="+url);            return false;        } else {            //如果登录成功,则直接执行下一步操作            //ActionContext.getContext().getSession().put("userid", user.getId());            session.setAttribute("userinfo", user);            session.setAttribute("userid", user.getId());            session.setAttribute("loginname", user.getUsername());            return true;        }    }

 

转载于:https://www.cnblogs.com/jassy/p/9328528.html

你可能感兴趣的文章
FreeBSD方式安装 MAC OSX
查看>>
Linux 根文件系统制作
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
更改git仓库地址
查看>>
有标号DAG计数 [容斥原理 子集反演 组合数学 fft]
查看>>
Recipe 1.4. Reversing a String by Words or Characters
查看>>
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>
【转】JS生成 UUID的四种方法
查看>>