【JavaWeb】如何越过SpringMVC直接返回内容
来自前同事问的一个问题,因为项目里面的SpringMVC会封装好一个固定的JSON响应规范:

可以看见,data属性下面,又会有一层data,
数据的消费方提出要求,只需要里面data的数据,外面的JSON规范不需要发过来
说实话我也不太清楚每个项目是怎么配置这个响应JSON的,
可能有个拦截器,在某一个jar包里面配置好了,你也不太可能取改JAR包来实现
所以相对简单的办法是采取最原生的JavaWeb的响应API来实现
一般项目会提供一个BaseController,写Web接口会要求你直接继承这个类,也可以不继承
@RestController
@RequestMapping("${sys.path}/room/service")
public class EServiceController extends BaseController
我这个项目的类的内容就这些:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
// package cn.ymcd.comm.base; import cn.ymcd.comm.base.log.LogFactory;
import cn.ymcd.comm.base.log.YmcdLogger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; public abstract class BaseController {
protected YmcdLogger _logger = LogFactory.getLogger(this.getClass());
@Autowired
protected HttpServletRequest request;
@Autowired
protected HttpServletResponse response; public BaseController() {
}
}
根据类的成员可以看出来,提供了一个日志打印
请求对象和响应对象,要越过配置好的JSON规范,可以直接使用这个响应对象进行字符输出
如果不继承这个类也很简单,直接在自己的Controller类里面配置就好了
@Autowired
protected HttpServletResponse response;
然后使用Response的Writer写String数据即可,JSON数据可以由Fastjson转换
https://www.cnblogs.com/shuilangyizu/p/9750428.html
【JavaWeb】如何越过SpringMVC直接返回内容的更多相关文章
- [手把手教程][JavaWeb]优雅的SpringMvc+Mybatis整合之路
来源于:http://www.jianshu.com/p/5124eef40bf0 [手把手教程][JavaWeb]优雅的SpringMvc+Mybatis整合之路 手把手教你整合最优雅SSM框架:S ...
- Fiddler 修改返回内容 OnBeforeResponse 无效 没用
Fiddler自定义脚本可以实现很强大的内容替换,包括很有意义的——修改返回内容. 具体的方法可以参考官网:http://docs.telerik.com/fiddler/KnowledgeBase/ ...
- SpringMVC Controller 返回值几种类型
SpringMVC Controller 返回值几种类型 2016年06月21日 19:31:14 为who而生 阅读数:4189 标签: Controller 返回值类型spring mvc 更多 ...
- [转]使用自定义HttpMessageConverter对返回内容进行加密
今天上午技术群里的一个人问” 如何在 Spring MVC 中统一对返回的 Json 进行加密?”. 大部分人的第一反应是通过 Spring 拦截器(Interceptor)中的postHandler ...
- Spring mvc 注解@ResponseBody 返回内容编码问题
@ResponseBody 在@Controller 类方法中能够让字符串直接返回内容. 其返回处理的类是org.springframework.http.converter.StringHttpMe ...
- 14、SpringBoot------定制错误返回内容json格式
开发工具:STS 前言: 在前后端分离的项目中,当前端向后端请求资源失败时,想知道具体的错误原因,给用户予以提示. 但是,在springboot中返回内容是固定的.并不适合我们前端进行分析. 所以,就 ...
- SpringMVC中返回JSON时乱码的解决方案
springMVC中返回JSON会出现乱码,解决如下: produces = "text/html;charset=UTF-8" @ResponseBody @RequestMap ...
- anyproxy学习3-修改返回内容(beforeSendResponse)
前言 fiddler可以抓包打断点后,修改返回的内容,便于模拟各种返回结果.anyproxy也可以通过写rule模块规则,模拟返回状态码.头部.body beforeSendResponse befo ...
- 关于Swagger @ApiModel 返回内容注释不显示问题
今天做了一天@ApiModel希望Swagger生成的文档出现返回的内容注释,发现需要用到@ApiModel注解到你需要返回的类上 @ApiModelProperty作为字段的描述 例如 之后文档还 ...
- Charles抓包工具断点修改返回内容
在测试过程中,往往需要让服务器返回指定的内容,测试一些特殊情况.例如列表内容为空.数据异常的情况等.如果通过操作服务器配合构造相应的数据会比较麻烦,甚至不好构造数据.此时,可以使用Charles的断点 ...
随机推荐
- JavaScript语法形式1行内式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- koishi机器docker搭建
硬件要求: 可用内存:1G以上 存储空间:1G以上 cpu:不限制 配置: 在docker的存储空间目录建立koishi文件夹 下载docker镜像 koishijs/koishi 建立容器,具体设置 ...
- Vue学习:14.工程化开发&脚手架
0基础如何进入IT行业? 简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标? 方向一:学习路径 1.明确兴趣和目标:首先确定你对IT ...
- 【干货分享】.NET人脸识别解决方案
前言 前段时间有同学在DotNetGuide技术社区交流群提问:.NET做人脸识别功能有什么好的解决方案推荐的吗?今天大姚给大家推荐2款.NET开源.免费.跨平台.使用简单的人脸识别库,希望可以帮助到 ...
- mongodb安装及启动配置文件,允许远程访问连接
windows安装https://www.runoob.com/mongodb/mongodb-window-install.html https://www.runoob.com/mongodb/m ...
- Python 潮流周刊#57:Python 该采用日历版本吗?
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 防止unordered_map 被卡方法
codeforces 上看到的,mark 一下代码.原作者:neal,原链接:https://codeforces.com/blog/entry/62393 struct custom_hash { ...
- 【论文阅读】VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data
Type: Sensors Year: 2022 tag: Mapping 组织: Bonn 参考与前言 论文链接:https://www.ncbi.nlm.nih.gov/pmc/articles/ ...
- unp.h的安装以及第一个程序的运行
unp.h的安装以及第一个程序的运行 源代码下载以及编译 点击此处下载源代码 解压到本地文件夹,如果访问不了GitHub的话就用我搬到gitee的仓库吧 git clone https://gitee ...
- 阿里云Centos7 安装mysql5.7 报错:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
在阿里云服务器Centos7中安装mysql5.7,解压数据库初始化后,报错 ./mysqld: error while loading shared libraries: libaio.so.1: ...