Jsp和json实现服务器端分页逻辑示例

时间:2022-09-13 21:39:21

服务器上的数据存储在json文件中,一个评论列表comment_list.json

{"comment_table"[
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
{"userName": "zhangsan", "commentTime": "2012-5-26 12:00:00 UTC", "comment": "hello, wo shi zhansan"}
]}


使用表单来提交数据到jsp页面,没有使用现在流行的ajax技术哦。

<form method="post" action="resbrowse_2.jsp">
<div align="left" style="padding-left:10px; margin-top:10px">
<input id="comment_text" name="comment_text"  type="text"  maxlength="100"  style="width:580px;height:40px ;background-color:#FFFBF0 " />
</div>
<div align="right" style="width:595px;margin-top:5px">
<!--注意这儿要使用submit标签哦,否则不会提交数据-->
<input type="submit" name="comment_button" onclick="addComment()" value="发表评论" style="width:80px;height:25px"  />
</div>
<!-- 用隐藏标签提交“当前页码”给服务器-->
<input type="hidden" name="page_index"/>
<!-- 用隐藏标签提交“每页大小”给服务器-->        
<input type="hidden" name="page_size" />
</form>


现在看看服务器端的jsp逻辑是怎么处理客户提交的这些数据的?

引入json包,可以在之前的文章里面找到json处理的包

http://blog.csdn.net/wuzh1230/article/details/6613033

<%@ page import="import org.json.*" %>

<!--定义了2个全局的java对象来存储评论列表和资源列表,重启服务器会丢失-->
<%! JSONArray cmtTable = new JSONArray();%>

<%! JSONArray resTable = new JSONArray();%>


<%
// 获取参数
String strCmnt = request.getParameter("comment_text");
int nPageIndex = Integer.parseInt(request.getParameter("page_index"));
int nPageSize = Integer.parseInt(request.getParameter("page_size")) ;

// 通过上面2个方法,我们就拿到了客户端通过表单提交的3个参数
// 1, 用户刚刚的评论
// 2, 用户当前所在的页面
// 3, 每个页面显示的评论个数

// 首先,我们把用户提交的评论先附加到评论列表的那个json文件中去
// ----这个例子里,我用了一个JSONObect内存全局对象来存储了,
// ----文件读取的方式,这里暂不介绍了
// ----这样做的坏处是tomcat重新启动以后用户的数据就没有了。
// 其次,读取json,解析成java的linkedlist,
// 最后根据用户的当前页码和每页大小获取列表中的一段返回给浏览器%>