繁体   English   中英

如何在servlet和jsp文件之间共享会话属性?

[英]How do I share session attributes between a servlet and jsp file?

我有一个表单,在提交时将数据从它的字段存储到数据库。 struts-config中的操作向前映射到数据插入数据库的成功/失败的同一页面。 我想在成功完成后提醒用户,因此我在表单的action类的方法中设置了一个session属性(即成功/失败)。 然后,在再次访问jsp页面后,我将获取并打印出此会话属性。

到目前为止,我已经在Action类中完成了这个:

 public static void setJavaScriptNotification(HttpServletRequest request, String notificationText) {

    HttpSession session = request.getSession(true);
    session.setAttribute("notification_javascript", notificationText);

}

在包含我的表单的jsp文件中:

    <% String notificationJavaScript = (String) request.getSession().getAttribute("notification_javascript");
pageContext.setAttribute("notification_javascript", notificationJavaScript);
request.getSession().removeAttribute("notification_javascript"); %>

<html>
<head>
<logic:present name="notification_javascript">
        <script type="text/javascript" language="JavaScript">
            function showAlerts() {
                alert("<bean:write name="notification_javascript"/>");
            }
        </script>
    </logic:present>
</head>       
<body onload="doPreOnload(); showAlerts();">

当我在jsp中打印出会话属性时,我找不到notification_javascript属性。 我是HTTP的新手,所以我可能在那里做错了。

  • setJavaScriptNotification()中的session中设置notification_javascript之后,请求被转发到jsp,其中访问notification_javascript

  • 如果是,则session.getAttribute(“notification_javascript”)将完成该任务。

    request.setAttribute()vs session.setAttribute()

  • request.setAttribute()将使密钥在下一页中可用。

  • session.setAttribute()将使密钥在所有页面中可用。

暂无
暂无

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

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