Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript可以从HTML页面中servlet设置的会话属性中获取值_Javascript_Html_Servlets - Fatal编程技术网

使用Javascript可以从HTML页面中servlet设置的会话属性中获取值

使用Javascript可以从HTML页面中servlet设置的会话属性中获取值,javascript,html,servlets,Javascript,Html,Servlets,我有一个servlet,它使用重定向转发到HTML页面。因为我在html页面上使用ajax和php来执行其他功能。可以转换为jsp。是否有一种方法可以获取会话属性中servlet中的名称-“poNumber”。我要得到它并展示它的价值 我是编程新手 可以在jsp中实现这一点 但是,我们需要在html页面中实现这一点。我可以用javascript来做吗 我试过: <script type="text/javascript"> var purchaseOrderN

我有一个servlet,它使用重定向转发到HTML页面。因为我在html页面上使用ajax和php来执行其他功能。可以转换为jsp。是否有一种方法可以获取会话属性中servlet中的名称-“poNumber”。我要得到它并展示它的价值

我是编程新手

可以在jsp中实现这一点

但是,我们需要在html页面中实现这一点。我可以用javascript来做吗

我试过:

      <script type="text/javascript">
      var purchaseOrderNo = session.getAttribrute("pONumb");
      document.write("pONumb");
      </script> [

var purchaseOrderNo=session.getAttribute(“pONumb”);
文件。书写(“pONumb”);
[
这不会在HTML页面上输出任何值

尝试:

       <script type="text/javascript">
       var purchaseOrderNo = (String) session.getAttribrute("pONumb");
           document.write("pONumb");
           </script> 
            <script type="text/javascript">
            String purchaseOrderNo = (String) session.getAttribrute("pONumb");
            document.write("pONumb");
            </script> 

var purchaseOrderNo=(字符串)session.getAttribute(“pONumb”);
文件。书写(“pONumb”);
再次在页面上没有输出

尝试:

       <script type="text/javascript">
       var purchaseOrderNo = (String) session.getAttribrute("pONumb");
           document.write("pONumb");
           </script> 
            <script type="text/javascript">
            String purchaseOrderNo = (String) session.getAttribrute("pONumb");
            document.write("pONumb");
            </script> 

String purchaseOrderNo=(String)session.getAttribute(“pONumb”);
文件。书写(“pONumb”);
是否再次在第页上没有输出


想不出其他方法可以尝试。重定向到此HTML页面的servlet将创建并设置会话属性pONumb。

不可以。JavaScript在客户端(浏览器)上执行,而会话数据存储在服务器上

但是,可以通过以下几种方式公开JavaScript的会话变量:

  • 一个隐藏的输入字段,将变量存储为其值,并通过DOM API读取
  • 可以通过DOM读取的HTML5数据属性
  • 将其存储为cookie并通过JavaScript访问
  • 直接在JS代码中注入它(如果有内联的话)
在JSP中,您将看到如下内容:

<input type="hidden" name="pONumb" value="${sessionScope.pONumb} />
内联示例是最简单的,但如果您希望将JavaScript代码存储为外部资源(),则不可行

<script>
    var pONumb = ${sessionScope.pONumb};
    [...]
</script>

var pONumb=${sessionScope.pONumb};
[...]

var会话_obj=“”;
警报(“会话对象”+会话对象);

下面的代码可以帮助您在java脚本中实现会话属性:

var name = '<%= session.getAttribute("username") %>';
var name='';

var sessionValue='';
if(sessionValue=0){
//模特秀
}

您可以将完整的JSP添加到问题中吗?您看到的HTML输出是什么?如果JSP输出
块,您可能希望尝试
var purchaseOrderNo=
什么是
(String)session.getAttribute(“pONumb”);
?它甚至不是一个正确的JavaScript语法……而且JAVA与JavaScript不一样。在这里阅读更多关于JSP的信息:我知道这是一个旧线程,但我仍然想问为什么要使用内联示例(最后一个)如果JS代码在外部文件中,则不起作用。谢谢!您可以将其放在外部文件中,但该文件需要预处理,您不能再将其作为静态文件使用。这样一来,您就失去了一系列优势—使用
meta
标记(相对于隐藏输入)缓存、CDN等这对我帮助很大。请阅读本文并按照指南提供高质量的答案。这确实对我有帮助-你能告诉我为什么要使用标签中的标签吗?
<%
String session_val = (String)session.getAttribute("sessionval"); 
System.out.println("session_val"+session_val);
%>
<html>
<head>
<script type="text/javascript">
var session_obj= '<%=session_val%>';
alert("session_obj"+session_obj);
</script>
</head>
</html>
var name = '<%= session.getAttribute("username") %>';
<?php 
    $sessionDetails = $this->Session->read('Auth.User');

    if (!empty($sessionDetails)) {


        $loginFlag = 1;
        # code...
    }else{
        $loginFlag =  0;
    }


?>

<script type="text/javascript">

    var sessionValue = '<?php echo $loginFlag; ?>';
    if (sessionValue = 0) {

        //model show
    }
</script>