java前后端交互_Java之前后端数据交互
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之前后端数据交互相关推荐
- java开发后端框架_java开发后端框架
1 java开发后端框架 java从推出到现在技术不断发展,语言也优化的越来越好,对于java工程师来说技术的不断发展,他们需要不断学习java进阶,而对于新手来说就能从基础到核心.那么新手该怎么学习 ...
- Java框架-SpringMVC的应用(json数据交互、控制器方法返回值、文件上传)
1. 搭建SpringMVC开发环境 1.1 创建项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> &l ...
- java list 替换 多线程_Java多线程处理List数据
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.ArrayUtils; public ...
- java 读取数据库输出_java 读取数据库数据转化输出XML输出在jsp页面
因为老师实验报告要求,搭建服务端解析XML 下面代码实现转化XML格式也是在网上找的转化代码 输出在jsp页面以便于客户端解析是自己写的 一个类就解决了Test package tests; //三只 ...
- java导出excel 序号_java web将数据导出为Excel格式文件代码片段
本文实例为大家分享了java web将数据导出为Excel格式文件的具体代码,供大家参考,具体内容如下 1.jsp代码 2.js代码 function getVerExcel() { window.l ...
- Java后台与微信小程序的数据交互
想把自己写的一个小项目转成微信小程序,主要是因为小程序比较火,而且自己想学一下小程序的东西,所以抱着初学者的心态开始了这个痛苦的旅程.看过小程序的一点视频,个人感觉和HTML,css,js差不多,甚至 ...
- java mysql自动备份_java定时备份数据之二_MySQL
以mysql为例: BackupDb.java数据库备份类: public class BackupDb { public static boolean sqlDump(String cmd,Stri ...
- java定时刷新界面_Java定时更新数据---定时器
在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.这次,在我们的开发中,就有这么一个需求.某个功能执行需要的时间比较长,则决定采用定时器的方式,每隔一段时间系统自动执行此功能,当界面 ...
- java 返回json乱码_java返回json数据中文乱码解决方案
最近做报表功能时,从后台取的json数据出现中文乱吗,如下图: Paste_Image.png 然后进行了一些列的设置,比如 response.setContentType("text/ht ...
最新文章
- 面试官一个线程池问题把我问懵逼了。
- 北斗导航 | Select Satellite 选星算法
- 七、MyBatis教程之四多表关系的实现
- Hibernate如何存储二级缓存条目
- POE交换机技术及优势介绍
- skywalking 安装_SkyWalking全链路追踪利器
- cnn stride and padding_彻底搞懂CNN中的卷积和反卷积
- js 取得input绑定的datalist中的值_javascript基础修炼(9)——MVVM中双向数据绑定的基本原理...
- MPC实现自动驾驶轨迹跟踪
- 基于内容的视频标注——物体层视频标注
- 外观模式又叫门面模式?
- 项目二:2020年华为软件精英挑战赛
- 电子技术课设------交通灯信号控制器
- DeepFM 参数理解(二)
- P1434 [SHOI2002]滑雪 【记忆化搜索】
- 如何让横坐标倾斜(Matlab画直方图)
- mysql list database_Navicat Premium 操作MySQL数据库
- 【K210】Maixpy 人脸识别
- Vue 计算属性缓存和方法的区别:从另一段代码来看【vue3学习笔记】
- WinSnap中文版v5.3.6-屏幕截图工具