zoukankan      html  css  js  c++  java
  • 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker

      项目中,想实现一个功能。

        直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html。

       登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录之前的操作。

       思路很简单:

       登录拦截器,获得backurl,
        String backUrl=request.getRequestURI();

      //返回到原来的页面,而不是系统配置的首页,更友好

      response.sendRedirect(loginUrl + "?backurl=" + backUrl); 

       重定向登录页面:http://localhost:8080/login.html?backurl=/add
     
      登录页面保存backurl,登录的时候,把backurl也发送到后端。
      登录成功之后,再跳转到/add 这个页面。

       --------------------------------
      遇到一个比较麻烦的问题,怎么在Freemarker中login.ftl中获得backurl这个参数呢?

      在jsp中可以使用,request.getParameter("backurl") 

      因此,我想在Freemarker中用${request.backurl} ,结果死活不出来。

      最后找到了2种方法,传递backurl这个参数到后端:

    方法1:
    <input type="hidden" name="backurl" value="${RequestParameters.backurl}"/>
    把参数值,放在隐藏域中,${RequestParameters.backurl}

    Freemarker中获得request中的值,找了好久才找到。
    http://blog.csdn.net/feiyu8607/article/details/6557159这篇文章总结得比较全面。

    方法2:
     <form action="/auth/dologin.json?${request.queryString}" method="post">
    获得request中的queryString参数,自动加到登录请求url后面。 

    关键的几点:
    a.当前${request}是org.springframework.web.servlet.support.RequestContext。
    我想是因为SpringMVC与Freemarker结合的原因,不是JSP中的javax.servlet.HttpServletRequest(具体不确定)。

    b. request.queryString,实际调用的是request.getQueryString方法。
    request有哪些方法,可以参考 org.springframework.web.servlet.support.RequestContext的源码。

    想看源码,体现出Maven的好处了,download source很方便。
    ------------------------------------------------------------------
    妈个蛋啊,从创业开始,就遇到TMD的一大堆问题,仅仅是技术问题就一大堆。
    从北京回到武汉工作,又遇到一大堆问题。
    还好,绝大多数的问题,都被我解决了。
    照目前遇到问题和解决问题的速度,再过2年,我可以秒杀应届毕业生了。
    呼呼~

    小喽啰们,不好意思哦,小雷要秒杀你们喽~
     
    小雷FansUnion-博学的互联网技术工作者,提供付费的IT咨询服务
    2014年12月10日
    湖北-武汉-循礼门 

  • 相关阅读:
    博客园样式
    nginx
    Django-environ 加载 .env 配置文件
    uwsgi 常见命令
    ActionScript3.0(AS3)中的泛型数组Vector
    ADDED、ADDED_TO_STAGE、REMOVED、REMOVED_FROM_STAGE这几个事件的区别
    Sprite/MovieClip的Enter_Frame事件,不受addChild/removeChild影响
    “AS3.0高级动画编程”学习:第二章转向行为(下)
    “AS3.0高级动画编程”学习:第二章转向行为(上)
    [转载]等角(斜45度)游戏与数学
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463049.html
Copyright © 2011-2022 走看看