当前位置: 首页 > news >正文

javaweb搭配ajax和json

ajax一般用来前端界面与后端界面交互使用。数据格式一般使用json,优点是便于对象与字符串的转化。

1.不适用json对象封装。

jsp:

<script>$.ajax({url: "/LoginServlet",data: {"name":name, "pwd":password},dataType: "json",type: "post",success: function (result) {if (result.code == "200") {alert(result.msg);}}})
</script>

后端:

String json1 = "{\"code\":200, \"message\":\"访问成功\"}";
out.print(json1);
2.使用json对象封装json格式化。

首先导入  fastjson-1.1.13.jar  lib库。

这是json格式化代码,这个方法在我们刚导入的jar包中:

public String toJSONString(){
        JSONObject jsonObject=new JSONObject();
         return  jsonObject.toJSONString(this);
    }

加一层封装,这是一个工具类,用到了泛型:

package com.hz.utils;import com.alibaba.fastjson.JSONObject;public class JsonMessage<E> {private  String code;//状态码private String msg;//状态码描述信息private    E    data;//数据public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public E getData() {return data;}public void setData(E data) {this.data = data;}public JsonMessage(String code, String msg, E data) {this.code = code;this.msg = msg;this.data = data;}public String toJSONString(){JSONObject jsonObject=new JSONObject();return  jsonObject.toJSONString(this);}
}

调用类,把对象传进去,就会返回json格式字符串。

@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//ajax中 相应到页面处理乱码response.setCharacterEncoding("utf-8");String uname=request.getParameter("uname");String upwd=request.getParameter("upwd");//创建out对象PrintWriter out=response.getWriter();String json="";if(uname.equals("张三")&&upwd.equals("123")) {User user1=new User();user1.setId(1111);user1.setUserName("张三");user1.setUserPassword("123");User user2=new User();user2.setId(2222);user2.setUserName("李四");user2.setUserPassword("123");List<User> userList=new ArrayList<>();userList.add(user1);userList.add(user2);json= new JsonMassage<List<User>>("200","请求成功",userList).toJSONString();}out.print(json);}}

相关文章:

  • 数字开关:晶体管饱和和强制 Beta
  • 深入浅出分析kafka客户端程序设计 ----- 生产者篇----万字总结
  • 基于FFmpeg,实现播放器功能
  • 浅谈基于深度学习的手写体纸质文档识别OCR软件
  • 解决GateWay报错:Exceeded limit on max bytes to buffer : 262144
  • matlab操作方法(三)——matlab中的数字图像(读取、显示、保存)
  • 基于微信小程序的校园二手闲置物品交易平台的设计与实现
  • 【期末复习向】常见的激活函数
  • 常见的工作流编排引擎
  • 基于docker容器化部署微服务
  • 云计算大屏,可视化云计算分析平台(云实时数据大屏PSD源文件)
  • 【Linux服务器Java环境搭建】09 在CentOS系统中安装和配置clickhouse数据库
  • Active Objects设计模式
  • Pandas实践_分组
  • 020 OpenCV 轮廓、外接圆、外接矩形
  • CSS实用技巧干货
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 浮动相关
  • 精彩代码 vue.js
  • 前端技术周刊 2019-02-11 Serverless
  • 前端之React实战:创建跨平台的项目架构
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 深入浅出Node.js
  • 小程序开发之路(一)
  • 自制字幕遮挡器
  • gunicorn工作原理
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #13 yum、编译安装与sed命令的使用
  • #微信小程序:微信小程序常见的配置传旨
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (安卓)跳转应用市场APP详情页的方式
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一)VirtualBox安装增强功能
  • (一)认识微服务
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CORE Aws S3 使用
  • .NET Core 中插件式开发实现
  • .Net Winform开发笔记(一)
  • .NET 常见的偏门问题
  • .net 生成二级域名
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • /bin/rm: 参数列表过长"的解决办法
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [C#]DataTable常用操作总结【转】
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [C++]AVL树怎么转
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)
  • [idea]关于idea开发乱码的配置
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup