1

我是 Java EE 编程的新手。按照我对jsp的理解。如果我错了 ,请纠正我
- JSP 页面首先转换为 servlet,然后转换为 html,结果 html 页面显示在浏览器中。

现在假设jsp页面显示在浏览器中,即现在它是html页面,我有一个java列表,其中包含我想在当前加载的页面上打印的名称或某种数据。我可以使用 ajax 获取 List 对象,但是我将如何在 html 上显示它,因为 html 无法呈现 java 集合。

纠正我误解流程或基本概念的地方。

谢谢。

4

3 回答 3

3

您可以使用 ajax(使用 jQuery 很容易)来调用您的 Servlet

function callMe(){
    $.ajax({
      type: "POST",
      url: "/someServlet",
      data: { param1: "val1" , param2: "val2" }
    }).done(function( data) {
       //TODO
    });
}

现在在 Servlet 中doPost(),使用 Gson 为您的集合生成 JSON 表示

String parameter1 = request.getParameter(param1);
String parameter2 = request.getParameter(param2);
//call to service to generate the collection
//for example List<Employee>
List<Employee> employees  = someService(parameter1, parameter2);
//using google's gson
Gson gson = new Gson();
String json = new Gson().toJson(employees);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);

现在我们在 javascript 函数中有一个 javascript 对象数组的响应,所以将其修改为

    }).done(function( data) {
        //some processing for display
        var len = data.length
        for (var i=0; i<len; ++i) {
               var employeeFirstName =  data[i].firstName;
               var employeeLastName =  data[i].lastName;
               //set it to some DIV, or do the processing you want
        }
      }

    });

另见

于 2012-06-20T07:18:09.900 回答
0

您需要将列表的内容作为文本发送到用户的浏览器(通常会发生这种情况)。

JSON是一种在浏览器和服务器之间传输列表内容的便捷格式,因为它使用 JavaScript 具有简单的可读性并且易于在服务器上生成。

然后,您可以使用 JavaScript 以您喜欢的任何方式显示返回的文本。

于 2012-06-20T07:17:13.313 回答
0

一个 JSP 被编译成一个 java servlet 类,它可以处理 HTTP 请求。当 servlet 部署到应用程序服务器时,HTTP 请求被传递给 servlet 进行处理:生成 HTTP 响应,通常包含一些 HTML、状态代码等。

因此,servlet 中的 java 代码循环遍历您的列表并可能生成适当的 HTML 以在浏览器中呈现该列表。

它是否是 AJAX 请求并不重要。AJAX 请求可能会由不同的 servlet 处理,而不是呈现完整的 HTML 页面,它只生成部分页面 - 可能只是<ul><li>...</li></ul>呈现您的列表。然后,您 HTML 页面中的 javascript 可以通过替换旧版本的列表来更新用户界面。

于 2012-06-20T07:25:29.720 回答