1、前台发送数据到服务端,以及接受后台数据

前台发送数据到服务端,有两种方法:

(1)使用

表单发送同步请求

参数inputStr:

参数intputInt:

(2)使用ajax发送异步请求,发送的数据为json对象

参数username:

参数password:

functiontest(){

$.ajax({

url:"test.do",

type:"POST",

cache:false,

data:{"username":username,"password":password

},

dataType:"json",

success:function(data){

console.log(data);

},

error:function(){

}

});

}

2、服务端后台接受数据

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。

(1)继承HttpServlet类,使用request.getParameter("name")方法获取请求参数

@RequestMapping("testRequestParam")publicString test( HttpServletRequest request,HttpServletResponseresponse) {

String inputStr=request.getParameter("inputStr")int inputInt = Integer.valueOf(request.getParameter("inputInt"));

System.out.println(inputStr+","+inputInt);return "index";

}

(2)使用注解@RequestParam直接获取

@RequestMapping("testRequestParam")publicString filesUpload(@RequestParam String inputStr, HttpServletRequest request) {

System.out.println(inputStr);int inputInt = Integer.valueOf(request.getParameter("inputInt"));

System.out.println(inputInt);return "index";

}

(3)使用@ResponseBody注解来解析json对象

@RequestMapping("/testRequestParam")

@ResponseBodypublic String filesUpload(String inputStr,StringinputInt)throwsException{

System.out.println(inputStr+","inputInt);return "index";

}

3、服务端给客户端返回数据

(1)可以继承HttpServlet类,获取请求参数,同时将数据通过流的形式发送到前台。返回的可以是字符串,也可以是json对象。

@RequestMapping(value="/test.do")public void doPost(HttpServletRequest request,HttpServletResponse response)throwsException {

String username= request.getParameter("username");

String password=request.getParameter("password");

response.setContentType("text/html; charset=utf-8"); //设置响应头

response.setHeader("pragma", "no-cache"); //无缓存

response.setHeader("cache-control", "no-cache"); //无缓存

PrintWriter out =response.getWriter();

out.println(username+","+password); //发送的是字符串

out.flush();

out.close();

}

(2)返回页面,Controller中方法返回JSON对象,如果需要携带数据通过ModelAndView(相当于一个Map)传递到view, view中使用jstl的EL表达式来绑定ModelAndView带来的数据。

@RequestMapping(value="/getView",method=RequestMethod.GET)

@ResponseBodypublic ModelAndViewgetView(String username,String password)throwsException{

ModelAndView mav=newModelAndView();

mav.addObject("Object",obj);

mav.setViewName("index");returnmav;

}

(3)返回Json对象,利用@ResponseBody来实现。spring MVC自动将java对象转化成了json对象传回了客户端,返回对象可以是Pojo也可以是List直接操作Response自己实现想要的效果。

@RequestMapping(value="/getPojoJson",method=RequestMethod.GET)

@ResponseBodypublicPojogetPojoJson(){

Pojo pojo= newPojo();

pojo.setPojoName("testName");

pojo.setPojoValue("testValue");returnpojo;

}

(4)将对象(或数组)转换成json对象(或json数组),发送到前台

@RequestMapping("/test.do")public void doPost(HttpServletRequestrequest, HttpServletResponse response) throwsException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

response.setHeader("Access-Control-Allow-Origin","*");

List objs=baseService.findForList();//查询出来的是对象集合

JSONArray jsonArray=JSONArray.fromObject(objs);//转化成json对象,将对象集合之间转换成了json数组

PrintWriter out=response.getWriter();

out.println(jsonArray);

out.flush();

out.close();

}

java前后端交互_Java之前后端数据交互相关推荐

  1. java开发后端框架_java开发后端框架

    1 java开发后端框架 java从推出到现在技术不断发展,语言也优化的越来越好,对于java工程师来说技术的不断发展,他们需要不断学习java进阶,而对于新手来说就能从基础到核心.那么新手该怎么学习 ...

  2. Java框架-SpringMVC的应用(json数据交互、控制器方法返回值、文件上传)

    1. 搭建SpringMVC开发环境 1.1 创建项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> &l ...

  3. java list 替换 多线程_Java多线程处理List数据

    import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.ArrayUtils; public ...

  4. java 读取数据库输出_java 读取数据库数据转化输出XML输出在jsp页面

    因为老师实验报告要求,搭建服务端解析XML 下面代码实现转化XML格式也是在网上找的转化代码 输出在jsp页面以便于客户端解析是自己写的 一个类就解决了Test package tests; //三只 ...

  5. java导出excel 序号_java web将数据导出为Excel格式文件代码片段

    本文实例为大家分享了java web将数据导出为Excel格式文件的具体代码,供大家参考,具体内容如下 1.jsp代码 2.js代码 function getVerExcel() { window.l ...

  6. Java后台与微信小程序的数据交互

    想把自己写的一个小项目转成微信小程序,主要是因为小程序比较火,而且自己想学一下小程序的东西,所以抱着初学者的心态开始了这个痛苦的旅程.看过小程序的一点视频,个人感觉和HTML,css,js差不多,甚至 ...

  7. java mysql自动备份_java定时备份数据之二_MySQL

    以mysql为例: BackupDb.java数据库备份类: public class BackupDb { public static boolean sqlDump(String cmd,Stri ...

  8. java定时刷新界面_Java定时更新数据---定时器

    在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.这次,在我们的开发中,就有这么一个需求.某个功能执行需要的时间比较长,则决定采用定时器的方式,每隔一段时间系统自动执行此功能,当界面 ...

  9. java 返回json乱码_java返回json数据中文乱码解决方案

    最近做报表功能时,从后台取的json数据出现中文乱吗,如下图: Paste_Image.png 然后进行了一些列的设置,比如 response.setContentType("text/ht ...

最新文章

  1. 面试官一个线程池问题把我问懵逼了。
  2. 北斗导航 | Select Satellite 选星算法
  3. 七、MyBatis教程之四多表关系的实现
  4. Hibernate如何存储二级缓存条目
  5. POE交换机技术及优势介绍
  6. skywalking 安装_SkyWalking全链路追踪利器
  7. cnn stride and padding_彻底搞懂CNN中的卷积和反卷积
  8. js 取得input绑定的datalist中的值_javascript基础修炼(9)——MVVM中双向数据绑定的基本原理...
  9. MPC实现自动驾驶轨迹跟踪
  10. 基于内容的视频标注——物体层视频标注
  11. 外观模式又叫门面模式?
  12. 项目二:2020年华为软件精英挑战赛
  13. 电子技术课设------交通灯信号控制器
  14. DeepFM 参数理解(二)
  15. P1434 [SHOI2002]滑雪 【记忆化搜索】
  16. 如何让横坐标倾斜(Matlab画直方图)
  17. mysql list database_Navicat Premium 操作MySQL数据库
  18. 【K210】Maixpy 人脸识别
  19. Vue 计算属性缓存和方法的区别:从另一段代码来看【vue3学习笔记】
  20. WinSnap中文版v5.3.6-屏幕截图工具

热门文章

  1. Win10 离线安装OpenSSH Server
  2. ios 有java虚拟机_最新iPhone 12配置盘点,安卓用户笑出声……
  3. 怎样更改计算机网络密码怎么办,怎么修改wifi密码_wifi密码电脑修改的方法-168路由网...
  4. 使用酸性溶液对硅晶片进行异常各向异性蚀刻
  5. Vue跳转到一个新的页面的多种方法
  6. uni-app相关的框架资料
  7. (附源码)计算机毕业设计ssm党员学习管理系统
  8. vivado下ila使用手记
  9. 面试之雇佣员工与员工过生日问题
  10. 《半小时漫画预防常见病》读书摘记