最近在学Json,在网上也找过一些资料,觉得有点乱,在这里,我以easy ui的登录界面为例来说一下怎样用Json实现前后台的数据交互

使用Json,首先需要导入一些jar包,这些资源可以在网上下载到,然后导入到项目中即可。

首先我先把代码贴出来,有些地方会着重说明一下:

客户端代码如下:

<%@page pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../jquery-easyui-1.3.5/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../jquery-easyui-1.3.5/jquery.easyui.min.js" charset="utf-8"></script>
<link rel="stylesheet" href="../jquery-easyui-1.3.5/themes/default/easyui.css" type="text/css" ></link>
<link rel="stylesheet" href="../jquery-easyui-1.3.5/themes/icon.css" type="text/css" ></link>
<script type="text/javascript" src="../jquery-easyui-1.3.5/locale/easyui-lang-zh_CN.js" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var loginAndRegDialog;
$(function(){
loginAndRegDialog=$('#loginAndRegDialog').dialog({ closable:false, //隐藏关闭按钮
modal:true, //模式化窗口,只可单击最上层的窗口
buttons:[{text:'登录',
handler:function(){
$.ajax({
url:'../servlet/UserContro', //后台的路径,看具体情况定
                         data :{
name: $('#loginInputForm input[name=name]').val(),//传向服务器的数据
                               password:$('#loginInputForm input[name=password]').val()
},
dataType:'json',//接收的数据为json格式,这里还有其他方法,可以看我关于Json解析的那篇文章
success:function(data){ //Json为返回的Json对象,名字自己起
$.messager.alert('通知',data.msg);
},
error:function(){
$.messager.alert('通知',"错误");
}
}); }},{ //handler:按钮的点击事件
text:'注册',
handler:function(){ }}]
});
});
</script> </head> <body>
<div id="loginAndRegDialog" title="用户登录" style="width:250px;height:150px;">
<form id="loginInputForm" method="post">
<table>
<tr>
<th>用户名</th>
<td><input type="text" name="name"></td>
</tr>
<tr>
<th>密  码</th>
<td><input name="password" type="password"></td>
</tr>
</table> </form>
</div>
</body>
</html>

服务器端代码如下:

package thejavabean;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; public class UserContro extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //接收数据的编码格式
response.setCharacterEncoding("UTF-8"); //返回数据的编码格式为utf-8,防止客户端乱码
response.setContentType("text/json");
PrintWriter out = response.getWriter();
String name=request.getParameter("name");//接收数据
		String password=request.getParameter("password");
String msg="";
JSONObject jobj = new JSONObject();//把要传向客户端的数据转为Json字符串
                jobj.put("msg",login(name,password));
		response.getWriter().write(jobj.toString());//向客户端返回数据
out.flush();
out.close(); }
public String login(String name,String password){
User user=new User();
user.setName(name);
user.setPassword(password);
try {
if(user.login()!=null)
return "登录成功";
else
return "用户名或密码错误";
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
} }

User 类

public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
DBConnection dbc=new DBConnection();
//用户登录
public User login() throws SQLException{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs;
User user=null;
try{
conn=dbc.getConnection();
String sql="select * from [user] where name=? and password=?";
ps=conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
rs=ps.executeQuery();
if(rs.next()){
user=new User();
user.setName(rs.getString("name"));
user.setPassword("password");
}
}finally{
ps.close();
conn.close();
}
return user;
}

简单封装的DB:

public class DBConnection {
private String user="sa";
private String password="aaaaaa";
private String url="jdbc:sqlserver://localhost:1433;DatabaseName=team";
private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Connection conn;
PreparedStatement ps;
ResultSet rs; static{
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
System.out.println("驱动加载失败");
}
} public Connection getConnection() throws SQLException{
conn=DriverManager.getConnection(url,user,password);
return conn;
} }

玩转Web之Json(二)----jquery easy ui + Ajax +Json+SQL实现前后台数据交互的更多相关文章

  1. 玩转Web之Json(一)-----easy ui+ajax + json 中关于Json的解析问题

    在easy ui中使用Ajax+Json实现前后的数据交互时,当后台数据传输到客户端是需对Json数据进行解析,这里将对Json数据解析做简单总结. (一) 对于服务器返回的数据若没有做类型说明,需要 ...

  2. Jquery Easy UI Datagrid 上下移动批量保存数据

    DataGrid with 上下移动批量保存数据 通过前端变量保存修改数据集合,一次性提交后台执行 本想结合easyui 自带的$('#dg').datagrid('getChanges'); 方法来 ...

  3. JQuery Easy Ui dataGrid 数据表格 ---制作查询下拉菜单

    JQuery Easy Ui dataGrid 数据表格 数据表格 - DataGrid 继承$.fn.panel.defaults,使用$.fn.datagrid.defaults重载默认值.. 数 ...

  4. jQuery Easy UI 开发笔记

    1.jQuery Easy UI主要的运行原理是通过核心的代码调用插件来实现UI效果的 2.jQuery Easy UI插件与插件之间的关系是: 一.独立式插件: 独立式插件是指:不与其他的插件具有相 ...

  5. JQuery Easy Ui (Tree树)详解(转)

    第一讲:JQuery Easy Ui到底是什么呢? 首先咱们知道JQuery是对Java Script的封装,是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等.. JQuery ui是在j ...

  6. 7个jquery easy ui 基本组件图解

    以下给出7个jquery easy ui 基本组件: 1 基本面板 <!DOCTYPE html> <html> <head> <meta charset=& ...

  7. JQuery Easy UI 简介

    [什么是JQuery Easy UI?] jQuery EasyUI 是一组基于 jQuery 的 UI 插件集合,而 jQuery EasyUI 的目标就是帮助Web 开发者更轻松的打造出功能丰富并 ...

  8. Jquery easy UI 上中下三栏布局 分类: ASP.NET 2015-02-06 09:19 368人阅读 评论(0) 收藏

    效果图: 源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  9. jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)

    一.jQuery Easy UI (适应屏幕分辨率大小)布局(Layout) 1.首先应用的是jquery-easyui-1.4 版本(版本不同,兼容性不同) 2.实现整个页面的布局( layout: ...

随机推荐

  1. Centos 6安装完美搭建mysql、php、apache之旅

    安装apache [root@centos share]# yum -y install httpd Loaded plugins: fastestmirror, refresh-packagekit ...

  2. TMS320F28335项目开发记录5_28335之CCS编程基础

    CCS开发环境已经为我们封装好了很多片内外设寄存器的结构体,我们仅仅须要包括对应的官方的头文件就能够使用了,那么它的内部详细是怎样实现的呢? 以下来一个典型的样例: 1.使用结构体和联合体 A.用st ...

  3. spring集成 JedisCluster 连接 redis3.0 集群

    最近在公司做了 jedisCluster整合spring 的配置, 分享如下 客户端采用最新的jedis 2.7 1. maven依赖: <dependency> <groupId& ...

  4. Cygwin下vim按方向键出现ABCD;

    1:乱码解决Option->Text设置编码 2:vim按方向键出现A.B.C.D 解决:--$ cd /usr/share/vim/vim73 (ps:看你的版本号.假设没有这个文件可能是/u ...

  5. Unobtrusive Ajax

    ASP.NET MVC之Unobtrusive Ajax(五)   前言 这一节我们来讲讲Unobtrusive中的Ajax提交,大部分情况下我们是利用JQuery来进行Ajax请求,当然利用JQue ...

  6. Java反射机制小例子

    package com.wjy.main; import java.io.Console; import java.lang.reflect.Constructor; import java.lang ...

  7. hdu3555(数位dp)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意:求区间[a,b]内包含有'49'的数的总个数. 分析:dp[pos][0]表示到第pos位 ...

  8. cocos2dx A* + tiledMap

    本文转自:http://blog.csdn.net/w18767104183/article/category/1757765 前面一章讲了cocos2dx 中使用A星算法 这章中讲 A*结合tile ...

  9. 从零开始学Xamarin.Forms(三) Android 制作启动画面

    原文:从零开始学Xamarin.Forms(三) Android 制作启动画面     Xamarin.Forms 在启动的时候相当慢,必须添加一个启动界面,步骤如下: 1.将启动画面的图片命名为:s ...

  10. ecshop加广告出现广告位的宽度值必须在1到1024之间的解决方法

    ecshop加广告出现广告位的宽度值必须在1到1024之间,这点是非常郁闷的,因为现在宽屏网站逐渐成为主流,越来越多的宽屏网站进入了我们的视线,比如京东啊,一号店啊. 但是ecshop的广告位却不能超 ...