在servlet和jsp页面之间通过json数据格式传递数据
来源:互联网 发布:巴基斯坦工作知乎 编辑:程序博客网 时间:2024/06/14 22:11
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。
在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。例如:
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
在了解json基本格式的基础上,接下来通过一个实例来说明应用:一个验证我们输入的字符是否和随机产生的验证码是否一样。用到了jquery中封装好的ajax异步请求方法。
首先通过图片来说明实例
请求的初始页面:
验证码输入不一致:
验证码一致:
servlet:
产生随机数的servlet网上很容易找到,这里就不贴代码了。
另一个判断输入的验证码是否和图片上的验证码时候相同,并且将判断的结果封装成json的数据格式。
package com.web.servlet.verificationCode;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.json.JSONObject;
/**
* Servlet implementation class ResultServlet
*/
public class ResultServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ResultServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
JSONObject object =new JSONObject();//定义一个json对象
HttpSession session = request.getSession();
String code=request.getParameter("veryCode");//获取页面中用户输入的验证码
System.out.println(code);
String sysCode=(String)session.getAttribute("validateCode");//获取随机产生验证码servlet中的验证码
if(sysCode.equals(code)){//判断连个是否一致
object.put("rightOrNot", "right");
}else{
object.put("rightOrNot", "error");
}
out.write(object.toString());//将数据以json的格式输出到ajax的回调函数。
}
}
jsp:提供一个输入text框,并且给出提示比较结果
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="js/verifyCode.js"></script>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/login.js"></script>
</head>
<body>
<INPUT size="7" id=veryCode onkeyup="checkVeryCode();" type=text name=veryCode>
<span style="color:red" id="msg"></span><br>
<p></p>
<img id="imgObj" src="VerifyCodeServlet" onclick="changeImg()">
</body>
</html>
js:脚本:verifyCode.js如下:
function checkVeryCode() {
var veryCode = $.trim($('#veryCode').attr('value'));
//alert(veryCode);
if(veryCode.length == 4)
{
$.ajax({
type : 'post',
dataType:'json',
url : 'ResultServlet?veryCode=' + veryCode,
success : function(msg){
if('right' == msg.rightOrNot){
$('#msg').html("congratulation!");
}else{
$('#msg').html(msg.rightOrNot);
}
},
error:function (msg){
alert("The server occur an exception!");
}
});
}
if(veryCode.length != 4){
$('#msg').html("");
}
}
这里面需要注意的就是在verifyCode.js脚本中,那个jquery的ajax方法,刚开始一直没有加dataType:‘json’,导致在火狐浏览器一直无法解析msg参数。
- 在servlet和jsp页面之间通过json数据格式传递数据
- JavaBean 在Servlet 和JSP页面传递
- jsp 通过 Ajax 和servlet之间的连接及数据传递示例
- 页面之间json数据传递
- json的使用以及在页面之间数据的传递
- 怎么在JSP和Servlet之间传递对象
- Struts2与Json 在JSP页面数据交互传递
- JSP、JAVASCRIPT、SERVLET之间数据的传递
- jsp与servlet之间的数据传递
- Servlet与JSP之间的数据传递
- JSP、servlet、SQL之间的数据传递
- jsp,servlet,sql之间的数据传递
- js和servlet之间用json的数据格式进行交互
- JS 页面之间传递json数据。
- 关于使用EL语句来接收servlet给jsp传递及jsp页面之间传递的数据
- Servlet和JSP之间的参数传递
- Jsp和Servlet之间的数据共享(数据传递和数据调用
- Jsp和Servlet之间的数据共享(数据传递和数据调用)
- iOS系统Crash文件分析方法
- 判断单链表是否存在环,判断两个链表是否相交问题详解
- 数据对齐
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
- JSP基础语法之五:内置对象和四种属性范围
- 在servlet和jsp页面之间通过json数据格式传递数据
- C++实现不可继承的类
- 02 设计模式之--模版设计模式
- POSIX线程指南
- 搬家声明
- UIWebView使用本地资源
- 常量的强制转换的疑惑const_cast<类型>(表达式)
- CF 229C Triangles
- c语言的一些小细节