繁体   English   中英

将会话 ID 传递给 Struts 2 中的 URL JSP 页面

[英]Pass session id to URL JSP page in Struts 2

我有一个登录页面和欢迎页面,

这是struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

<constant name="struts.devMode" value="true" /> 
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />  

<package name="Authentiate" extends="struts-default">

<global-results>

<result name="error">/error.jsp</result>

</global-results>

<action name="loginAuthenticate*" class="com.authenticate.actions.LoginAuthenticate" method="{1}">

<result name="success">/welcome.jsp</result>
<result name="redirectRegister" type="redirect">/registration.jsp</result>

</action>

</package>

</struts>

当我从struts.xml中的操作类返回成功结果时,如何将sessionid附加到welcome.jsp如下

http://myopenidhost.com/openid/welcome.jsp?sessionid=swe234323xghf346rrg34r4

在这种情况下,当您提交页面时,请在您的 javascript 函数中使用以下内容:

您将在页面中声明隐藏字段,并将您的操作中的 jsessionId 分配给此隐藏字段。

function abc(){

  var jsessionId=document.<hiddenFieldName>.value;
  document.action="welcomePage.jsp?sessionId="+jsessionId;
  document.submit();

}

我不知道你想实现什么,但它是一种 Get 请求,你可以在你的 URL 中看到这个生成的 id

如果我没有错,这是在 URL 中附加值的方法..请让我知道这是否有帮助......如果不是我需要你想要实现的确切标准。

您应该配置返回参数的结果

<result>
  <param name="location">/welcome.jsp</param>
  <param name="sessionId">${sessionId}</param>
</result>

在操作中,您应该在返回结果之前初始化参数

public class LoginAuthenticate extends ActionSupport {

  private String sessionId;

  public String getSessionId() {
    return sessionId;
  }

  public String execute() {

    //action code ...
 
    sessionId =  ServletActionContext.getRequest().getSession().getId();
    return SUCCESS;
  }
}

您可以阅读有关结果配置动态结果的更多信息。

如果您尝试将登录详细信息放入 Session,请使用 SessionAware 接口,如果没有,请告诉我..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM