Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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之前,如何将属性文件中的系统信息加载到JSP中?_Javascript_Java_Ajax_Jsp_Servlets - Fatal编程技术网

在加载Javascript之前,如何将属性文件中的系统信息加载到JSP中?

在加载Javascript之前,如何将属性文件中的系统信息加载到JSP中?,javascript,java,ajax,jsp,servlets,Javascript,Java,Ajax,Jsp,Servlets,假设我对JSP基本上是全新的,并且是可能的。我正在开发一套4个webapp仪表盘,每个仪表盘都是独立的,有单独的url和索引(jsp | html)页面。仪表板的后端是用Java编写的,可以以各种风格构建,并且可以部署到各种环境中。通过一些向导,在WEB-INF/classes中正好有一个.properties文件,我可以使用它来获取系统信息,如构建风格和部署环境,这是UI需要知道的 将系统信息获取到UI的当前解决方案 在共享UI Javascript中,我们在主线程上对JSP进行阻塞、同步AJ

假设我对JSP基本上是全新的,并且是可能的。我正在开发一套4个webapp仪表盘,每个仪表盘都是独立的,有单独的url和
索引(jsp | html)
页面。仪表板的后端是用Java编写的,可以以各种风格构建,并且可以部署到各种环境中。通过一些向导,在
WEB-INF/classes
中正好有一个
.properties
文件,我可以使用它来获取系统信息,如构建风格和部署环境,这是UI需要知道的

将系统信息获取到UI的当前解决方案

在共享UI Javascript中,我们在主线程上对JSP进行阻塞、同步AJAX调用,JSP读取属性文件,并将JSON格式的信息返回给调用者(下面的文件)我试图消除主线程上的这种同步AJAX调用,取而代之的是,在Javascript运行时,在没有AJAX的情况下,这些信息已经可供Javascript使用

问题

如何使用JSP和Servlet在页面上提供这些信息供Javascript访问,而不必通过AJAX调用获取这些信息?我如何使解决方案在我的所有仪表板上共享,理想情况下不必在所有index.JSP文件上复制JSP代码

作为参考,我们当前使用的JSP如下所示。再次,我们对这个JSP进行AJAX调用,然后将JSON响应中的信息存储在全局状态变量中,以便仪表板访问

<%@page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="java.io.InputStream" %>
<%@page import="java.util.*" %>
<%@page import="com.google.gson.Gson" %>

<%
    // Read properties file
    Properties p = new Properties();
    p.load(application.getResourceAsStream("/WEB-INF/classes/system.properties"));

    Map<String, String> m = new HashMap<~>();
    m.put("id", p.getProperty("system.id", "unknown"));
    m.put("type", p.getProperty("system.type", "unknown"));

    // Write JSON response
    out.write(new Gson().toJson(m));
    out.flush();
%>


非常感谢!对我放松点。。。我是新来的。

您可以将java属性值分配给java脚本变量并使用该java脚本变量

在jsp文件中尝试下面的代码,您希望在其中使用您的属性值

在Jsp中,Java代码总是先运行,然后再运行javascript代码,因为Java代码在浏览器上运行javascript的服务器上执行

<%@page language="java" contentType="application/json; charset=UTF-8"    pageEncoding="UTF-8" %>
<%@page import="java.io.InputStream" %>
<%@page import="java.util.*" %>


// javascript block
<script language="javascript">
 <%
   // Read properties file
   Properties p = new Properties();
   p.load(application.getResourceAsStream("/WEB-INF/classes/system.properties"));
 %>
  var sysId="<%=p.getProperty("system.id", "unknown")%>";
  var sysType="<%=p.getProperty("system.type", "unknown")%>";
  // user javascript variable sysId, sysType where you want 
</script>

//javascript块
var sysId=“”;
var-sysType=“”;
//用户javascript变量sysId,sysType在需要的位置