利用淘宝做网站卖货到国外,常德论坛尚一网,微信小程序免300元认证费,天津公司网站怎样制作响应 Http响应的结果可以是数据也可以是静态页面可以针对响应设置状态码 Header信息
返回静态页面注解RestController和Controller
我们创建一个前端页面 package com.example.demo.demos.web.controller;import org.springframework.web.bind.annotation.RequestMapping;
i…响应 Http响应的结果可以是数据也可以是静态页面可以针对响应设置状态码 Header信息
返回静态页面注解RestController和Controller
我们创建一个前端页面 package com.example.demo.demos.web.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class ReturnController {RequestMapping(index)public Object index(){return index.html;}
}当我们发起请求时发现页面返回的是一个字符串而不是刚刚的html静态界面 这时我们需要把注解RestController 改成 注解Controller就能正确返回想要显示的静态界面了 Responsebody返回数据:定义返回的数据格式为⾮视图,返回⼀个text/html信息 Controlle返回试图:定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理 RestControllerControlleResponsebody 但是随着MVC的概念发生变化View不再返回视图而是返回显示试图时需要的数据 我们可以查看RestController的源码
Target({ElementType.TYPE})
Retention(RetentionPolicy.RUNTIME)
Documented
Controller
ResponseBody
public interface RestController {AliasFor(annotation Controller.class)String value() default ;
}其中这三个是元注解 Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented Target这个注解的作用是表示注解修饰的对象 Retention表示注解的生命周期 Documented表示在使用 javadoc 工具为类生成帮助文档时是否要保留其注解信息。 Controller ResponseBody 这表示注解RestController由这两个注解组成
返回数据注解ResponseBody 可以修饰类也可以修饰方法 修饰类的时候表示这个类下的所有方法返回的都是数据 修饰方法时表示该方法返回的是数据
RequestMapping(/return)
Controller
public class ReturnController {RequestMapping(/index)public Object index(){return index.html;}RequestMapping(/returnData)ResponseBodypublic String returnData(){return 返回数据;}}也可以返回Html片段
RequestMapping(/return)
Controller
public class ReturnController {RequestMapping(/index)public Object index(){return index.html;}RequestMapping(/returnData)ResponseBodypublic String returnData(){return 返回数据;}RequestMapping(/returnHtml)ResponseBodypublic String returnHtml(){return h1返回Html代码片段h1;}}返回JSON 当我们返回接口的是String是conten-Type就是text/html 当我们返回接口时对象时这个注解就会自动设置为application/json Map
RequestMapping(/returnJson)ResponseBodypublic Person returnJson(){Person person new Person();person.setAge(18);person.setId(2021);person.setName(张三);return person;}RequestMapping(returnMap)ResponseBodypublic MapString,String returnMap(){MapString,String kv new HashMap();kv.put(k1,k1);kv.put(k2,k2);kv.put(k3,k3);return kv;}可以看到回自动定义为json格式 设置状态码
RequestMapping(setStatus)ResponseBodypublic String setStatus(HttpServletResponse response){response.setStatus(401);return 设置状态码;}通常是200但是这里设置为401 状态码不影响页面显示 设置Header 我们可以通过RequestMapping注解来实现http报头传递一些附加信息 比如
我们查看RequestMapping的源码
Target({ElementType.TYPE, ElementType.METHOD})
Retention(RetentionPolicy.RUNTIME)
Documented
Mapping
public interface RequestMapping {String name() default ;AliasFor(path)String[] value() default {};AliasFor(value)String[] path() default {};RequestMethod[] method() default {};String[] params() default {};String[] headers() default {};String[] consumes() default {};String[] produces() default {};
}value: 指定映射的URL method:指定请求的method类型,如GET,POST等 consumes:指定处理请求(request)的提交内容类型(Content-Type)例如application/json, text/html; produces: 指定返回的内容类型仅当request请求头中的(Accept)类型中包含该指定类型才返回 Params:设置request(响应)中必须包含某些参数值时才让该⽅法处理 headers: 指定request中必须包含某些指定的header值才能让该⽅法处理请求 设置其他Header
RequestMapping(value /r1 , produces application/json;charsetutf-8)ResponseBodypublic String r1(HttpServletResponse response){//设置headerresponse.setHeader(myhead,myhead);return {OK:1};}