您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
08-案例-新增品牌(java端处理前端请求的application json内容(请求体整个读取一行))
发布时间:2024-12-12 11:33:07编辑:雪饮阅读()
-
继上篇实现了查询所有品牌以ajax结合java与json的实现,这次对于品牌新增也实现做成ajax的与java与json的实现。
那我也单独建立addBrandAjax.jsp并结合vue与axios则实现如:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加品牌</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
window.onload=function(){
const { createApp, ref } = Vue
createApp({
setup() {
const data = ref({
brandName:"",
companyName:"",
ordered:0,
description:"",
status:0
})
function submit(){
axios({
method:'post',
url:'/zeroEightUserLoginCaseModule/AddBrandAjaxServlet',
data:data.value
}) .then(function (response) {
console.log(response);
if(response.data=="success"){
alert("添加成功");
}
})
.catch(function (error) {
console.log(error);
});
}
return {
data,
submit
}
}
}).mount('#app');
};
</script>
</head>
<body>
<div id="app">
<h3>添加品牌</h3>
<form>
品牌名称:<input v-model="data.brandName" ><br>
企业名称:<input v-model="data.companyName"><br>
排序:<input v-model="data.ordered"><br>
描述信息:<textarea rows="5" cols="20" v-model="data.description"></textarea><br>
状态:
<input type="radio" value="0" v-model="data.status">禁用
<input type="radio" value="1" v-model="data.status">启用<br>
<input type="button" value="提交" @click="submit()">
</form>
</div>
</body>
</html>
那么最主要的就是servlet的实现,这里请求提交的数据不在是传统form表单那种post提交的,而是json提交的,此时请求头的内容类型其实就是application/json,而请求内容就是json。
那么此时servlet中就不能用传统的HttpServletRequest的getParameter去取值了,而是可以取整个请求体,此时整个请求体就是一行字符串,无论多少内容都是读取这个请求体这一行内容即可,然后由于是json内容,所以转为java对象即可。
则该servlet实现如:
package com.web;
import com.alibaba.fastjson.JSON;
import com.pojo.Brand;
import com.service.BrandService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/AddBrandAjaxServlet")
public class AddBrandAjaxServlet extends HttpServlet {
BrandService brandService=new BrandService();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//这种并非传统form表单的请求,则可以直接读取请求体,请求体无论多少参数都只是一行,所以只需要读取一行即可
String JsonString=req.getReader().readLine();
Brand javaObject= JSON.parseObject(JsonString,Brand.class);
brandService.Add(javaObject);
resp.getWriter().write("success");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
this.doGet(req,resp);
}
}
关键字词:java,json,application
相关文章
- 07-案例-查询所有(处理java的fastjson转json缺少字段
- 06-JSON-JSON数据和Java对象转换
- 05-JSON-概述和基础语法
- 11-案例-验证码-展示&校验(javaee、javaweb、java实现
- 09-Tomcat-Idea集成本地Tomcat(Application Context浏
- 04-HTTP-响应数据格式(java7的try-with-resources及实
- ios端网页JavaScript唤醒google地图并查询指定经纬度
- androdid studio中将kotlin语言转换为java语言
- websql也很犀利啊,可惜了一个被冷落的技术
- 30天精通JavaWeb(IDEA版)学习笔记