javascript - 在jsp中访问javascript中的 session 变量

标签 javascript jsp session-variables

我需要为 google API 表提供数据...所以我会将它从 servlet 发送到 JSP

但是我如何在“googles”javascript 中访问这些数据?

我将提供另一个 JS 的示例 - 非常简单的一个 - 只是为了让我学习如何制作主题所说的内容

    <script>
        function showTable()
        {
            <%
                Object obj = session.getAttribute("list");
                List<String> list = new ArrayList<String>();
                int size = 0; 

                if (obj != null) {
                    list = (ArrayList<String>) obj;
                    size = (Integer) session.getAttribute("size");
                }

                for (int i = 0 ; i < size ; i++) {
                    String value = list.get(i);

            %>
                    alert('<%= i %> = <%= value %> ');
            <%
                }

            %>                
        }
    </script>

它必须打印给定列表的元素...但现在它只是一个带有警报的大 scriplet...重构它?我不喜欢在 JSP 中使用太多 java,因为 servlet 才是它应该放的地方

编辑:总结一下——我更喜欢“普通”的 JS for 循环……通常我更喜欢最小化 Java 代码,最大化 JS

最佳答案

将其转换为 JSONdoGet()一个预处理servlet。您可以使用 Google Gson为了这。假设你有一个 List<Person> :

List<Person> persons = createItSomehow();
String personsJson = new Gson().toJson(persons);
request.setAttribute("personsJson", personsJson);
request.getRequestDispatcher("/WEB-INF/persons.jsp").forward(request, response);

(请注意,我将其设为请求属性而不是 session 属性,您可以随意更改它,但我认为它不一定需要是 session 属性,因为它不代表 session 范围的数据)

将其赋值给JSP中的一个JS变量如下:

<script>
    var persons = ${personsJson};
    // ...
</script>

这样它就可以作为一个完全有值(value)的 JS 对象使用。您可以将其直接提供给 Google API。

现在调用 servlet 的 URL 而不是 JSP。例如,当它映射到 /persons 的 URL 模式时, 通过 http://localhost:8080/contextname/persons 调用它.

关于javascript - 在jsp中访问javascript中的 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241442/

相关文章:

javascript - 如何在 JavaScript 中创建随机字符串?

spring - 使用 HibernateValidator 进行跨字段验证不显示错误消息

php - Laravel 用户登录时如何设置 session 变量

c# - IIS 7.5 在 ASP.Net 中获取一个 session 变量,但不是第二个

javascript - 在Panorama GUI中找到三个JS坐标?

javascript - 在 Canvas 上绘制一个充满辐射的 Angular/弧线?

java - 无法使用 Struts 2.5 运行简单的登录应用程序

java - 使用 Ajax 将数据添加到表行

php - 如何在 PHP 和 MySql 中保存和管理 session ID 和用户 ID

javascript - 我的 mouseup 代码有什么问题吗?