最近在学Json,在网上也找过一些资料,觉得有点乱,在这里,我以easy ui的登录界面为例来说一下怎样用Json实现前后台的数据交互
使用Json,首先需要导入一些jar包,这些资源可以在网上下载到,然后导入到项目中即可。
首先我先把代码贴出来,有些地方会着重说明一下:
客户端代码如下:
<%@page pageEncoding="utf-8"%>
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(){ }}] }); });
服务器端代码如下:
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; } }