使用Javascript可以从HTML页面中servlet设置的会话属性中获取值
我有一个servlet,它使用重定向转发到HTML页面。因为我在html页面上使用ajax和php来执行其他功能。可以转换为jsp。是否有一种方法可以获取会话属性中servlet中的名称-“poNumber”。我要得到它并展示它的价值 我是编程新手 可以在jsp中实现这一点 但是,我们需要在html页面中实现这一点。我可以用javascript来做吗 我试过:使用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
<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代码中注入它(如果有内联的话)
<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>