springmvc怎么设置相应头信息
发布网友
发布时间:2022-05-26 11:44
我来回答
共1个回答
热心网友
时间:2023-10-15 13:20
我们知道response 的content type主要有:
text/html
text/plain
application/json;charset=UTF-8
application/octet-stream
等
先举一个例子,spring mvc中可以通过如下方式返回json字符串:
Java代码
@ResponseBody
@RequestMapping(value = "/upload")
public String upload(HttpServletRequest request, HttpServletResponse response,String contentType2)
throws IOException {
String content = null;
Map map = new HashMap();
ObjectMapper mapper = new ObjectMapper();
map.put("fileName", "a.txt");
try {
content = mapper.writeValueAsString(map);
System.out.println(content);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}
虽然访问时返回的确实是json字符串,但是response 的content type是"
text/html
"这不是我们期望的,我们期望的response content type是"application/json"或者"application/json;charset=UTF-8",那么如何实现呢?
通过注解@RequestMapping 中的proces
用法如下:
Java代码
@RequestMapping(value = "/upload",proces="application/json;charset=UTF-8")
spring MVC官方文档:
Procible Media Types
You can narrow the primary mapping by specifying a list of procible media types. The request will be matched only if the Accept request header matches one of these values. Furthermore, use of the proces condition ensures the actual content type used to generate the response respects the media types specified in the procescondition. For example:
@Controller@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, proces="application/json")@ResponseBodypublic Pet getPet(@PathVariable String petId, Model model) { // implementation omitted}
Just like with consumes, procible media type expressions can be negated as in !text/plain to match to all requests other than those with an Accept header value oftext/plain.
Tip
The proces condition is supported on the type and on the method level. Unlike most other conditions, when used at the type level, method-level procible types override rather than extend type-level procible types.
springmvc实现文件的上传和下载
1、设置 response 响应头 2、读取文件 -- InputStream 3、写出文件 -- OutputStream 4、执行操作 5、关闭流 (先开后关)代码实现:RequestMapping(value="/download")public?String?downloads(HttpServletResponse?response?,HttpServletRequest?request)?throws?Exception{???//要下载的图片地址???Stri...
SSM系列——SpringMVC请求数据day3-3
表示服务器成功的表示服务器成功处理了客户端的请求。客户端的请求成功,响应消息返回正常的请求结果。(2)302 表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。例如,在请求重定向中,临时URI应该是响应的Location头字段所指向的资源。(3)304 状态码304表示客户端...
请简述Spring MVC方法返回值3中不同类型的区别?
1.View类型:表示返回一个视图,通常是一个JSP页面或Thymeleaf模板。在方法中可以设置模型数据,并且返回一个逻辑视图名,Spring MVC会根据逻辑视图名查找相应的物理视图,并将模型数据传递给它。例如:GetMapping("/user")public ModelAndView getUser() { User user = userService.getUser();ModelAndView...
java后端怎么发送json文件给客户端?
```2. 将字符串设置为响应体,设置响应头为JSON格式,例如:```response.setContentType("application/json");response.setCharacterEncoding("UTF-8");response.getWriter().write(jsonString);```3. 发送响应,例如:```response.flushBuffer();```另外还可以使用一些框架,如Spring MVC的`@Respons...
Spring Boot 开发工具的使用
Spring Boot 中的一些库会通过缓存来提升性能。比如:模块引擎缓存已编译的模板,已避免重复解析模板文件;Spring MVC 在响应静态资源时设置 HTTP 缓存头。 启用缓存在开发环境中非常有用,但是在生产环境下却适得其反。因此 spring-boot-devtools 默认会为我们禁用掉缓存,而不用再去手动禁用了。
烧脑巨作,Spring Boot请求处理(常用参数注解使用)
该注解主要用于获取请求头header中的数据,客户端请求之后可以拿到一些头部携带的参数。支持传统的SpringMVC,也支持WebFlux响应式。如果方法参数是一个Map<String, String>将会包含所有的请求头与值 测试:主要用于获取请求参数名称,设置参数是否可有可无以及默认值。RequestParam注解详解地址: blog.csdn.net/...
如何优雅的写 Controller 层代码?
玩你个头啊完美,这么呆瓜的操作springboot不知道吗?spring mvc当然知道拉,所以给我们提供了一个@RestControllerAdvice来增强所有@RestController,然后使用@ExceptionHandler注解,就可以拦截到对应的异常。这里我们就拦截BindException.class就好了。最后在返回之前,我们对异常信息进行包装一下,包装成ResultVo,...
springboot怎么用(springboot怎么用在web上又用在微信小程序上)_百 ...
比如:模块引擎缓存已编译的模板,已避免重复解析模板文件;SpringMVC在响应静态资源时设置HTTP缓存头。 启用缓存在开发环境中非常有用,但是在生产环境下却适得其反。因此spring-boot-devtools默认会为我们禁用掉缓存,而不用再去手动禁用了。 同时,开发工具还会将Web日志的等级设置为DEBUG,这样就可以看到更加详细的请求和...
spring mvc 的详细流程
Spring MVC 的运行流程 ①. 在整个 Spring MVC 框架中, DispatcherServlet 处于核心位置,负责协调和组织不同组件以完成请求处理并返回响应的工作 ②. SpringMVC 处理请求过程:> 若一个请求匹配 DispatcherServlet 的请求映射路径(在 web.xml 中指定),WEB 容器将该请求转交给 DispatcherServlet 处理 > ...
springbootcloud组件
基于SpringBoot的logback输出,默认debug级别 设置项:feign.client.config.微服务id.loggerLevel 微服务id:default代表全局默认配置 2.通信日志输出格式 NONE:不输出任何通信日志 BASIC:只包含URL、请求方法、状态码、执行时间 HEADERS:在BASIC基础上,额外包含请求与响应头 FULL:包含请求与响应内容最完整的信息 3.OpenFeign...