代码之家  ›  专栏  ›  技术社区  ›  Deckard

如何获取请求URL?

  •  6
  • Deckard  · 技术社区  · 14 年前

    我是说,某个页面登录某个页面

    我知道这一点;

    登录中

    HttpServletRequest request = ServletActionContext.getRequest();
    String url = request.getServletPath();
    setUrl(url);
    

    在struts.xml

     <action name="LoginPro" method="login" class="LoginAction">
        <result type="redirect">${url}</result>
        <result name="input" type="tiles">login.error</result>
     </action>
    

    请求的url总是“LoginPro”,它正在处理登录过程。

    似乎是这样的; somepage登录loginPro登录操作(请求url为loginPro..)loginPro

    如何将用户重定向到他们尝试登录的页面?

    4 回复  |  直到 4 年前
        1
  •  6
  •   Deckard    14 年前

    谢谢你的回答。

    我找到了这条路,而且很管用!

    url=request.getHeader(“推荐人”);

    此url是调用操作的确切url。

        2
  •  3
  •   Stephen Gerard Darragh    12 年前

    当您单击一个登录链接,然后在java中该请求后面将url存储为静态变量。

    static String url = request.getHeader("referer");</p>
    

    例如:我在我的网站上用过。

    <action name="login" class="actions.Login.LoginAuthenticate" method="input">    
        <!--Cookie functionality done -->
        <result name="input">Login/login.jsp</result>
    </action>
    
    <action name="loginAuthenticate" class="actions.Login.LoginAuthenticate" method="execute">
            <!--Cookie functionality done -->
            <result name="redirect" type="redirect">${redirectUrl}</result>
            <result name="input">Login/login.jsp</result>
    </action>
    
    public String execute() throws Exception {
        if(getCheckCookies()){
                setRedirectUrl("/login");
                return "redirect";
        }
        Cookie un = new Cookie("un" , lemail);
        un.setMaxAge(-1);
        un.setVersion(1);
        servletResponse.addCookie(un);
        System.out.println("------>--------->------> " + redirectUrl);
        return "redirect";
    }
    
    
    public String input() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        setRedirectUrl(request.getHeader("Referer"));
        return INPUT;
    }
    
    public static String redirectUrl;
    
    public void setRedirectUrl(String redirectUrl){
        this.redirectUrl = redirectUrl;
    }
    public String getRedirectUrl(){
        return this.redirectUrl;
    }
    
        3
  •  0
  •   Shawn D.    14 年前

    如何重定向到登录操作?如果只有一个地方(或者是做重定向的公共基础),你能给会话添加一个变量,让你的登录动作成为SessionAware,然后在成功登录后检索/删除源URL,并使用它吗?

        4
  •  0
  •   EstevaoLuis Surani    6 年前
        HttpServletRequest request = ServletActionContext.getRequest(); 
        String url = request.getRequestURI();