最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC 響應(yīng)機(jī)制綜合實(shí)踐之頁面、數(shù)據(jù)、JSON 與響應(yīng)配置處理方法

 更新時(shí)間:2026年01月28日 08:59:49   作者:yangminlei  
SpringMVC的響應(yīng)機(jī)制包括返回視圖、純文本/HTML、JSON、響應(yīng)頭與狀態(tài)碼控制、重定向與轉(zhuǎn)發(fā)、全局響應(yīng)配置、CORS跨域配置、異常處理與錯(cuò)誤響應(yīng),這篇文章給大家介紹Spring MVC 響應(yīng)機(jī)制綜合實(shí)踐:頁面、數(shù)據(jù)、JSON 與響應(yīng)配置,感興趣的朋友跟隨小編一起看看吧

Spring MVC 響應(yīng)機(jī)制的核心方式

返回視圖(頁面渲染)
通過返回視圖名稱(如 return "home"),配合視圖解析器(InternalResourceViewResolver)定位到 /WEB-INF/views/home.jsp 等具體頁面。需在配置中定義視圖前綴和后綴:

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    return resolver;
}

返回純文本或HTML
使用 @ResponseBody 注解直接返回字符串內(nèi)容,適用于簡單文本或HTML片段:

@GetMapping("/text")
@ResponseBody
public String rawText() {
    return "<h1>Hello World</h1>";
}

JSON 響應(yīng)處理

自動(dòng)序列化對象為JSON
結(jié)合 @RestController@ResponseBody,Spring 默認(rèn)使用 Jackson 將對象序列化為 JSON:

@GetMapping("/user")
public User getUser() {
    return new User("Alice", 25);
}

需添加 Jackson 依賴(如 spring-boot-starter-json)。

定制JSON字段
通過 @JsonIgnore 忽略字段,@JsonProperty 重命名字段:

public class User {
    @JsonProperty("username")
    private String name;
    @JsonIgnore
    private String password;
}

響應(yīng)頭與狀態(tài)碼控制

手動(dòng)設(shè)置狀態(tài)碼
使用 ResponseEntity 自定義狀態(tài)碼和響應(yīng)頭:

@GetMapping("/custom")
public ResponseEntity<String> customResponse() {
    HttpHeaders headers = new HttpHeaders();
    headers.add("X-Custom-Header", "value");
    return new ResponseEntity<>("Custom Body", headers, HttpStatus.CREATED);
}

重定向與轉(zhuǎn)發(fā)
通過 redirect: 前綴實(shí)現(xiàn)重定向,或返回 ModelAndView 進(jìn)行轉(zhuǎn)發(fā):

@GetMapping("/redirect")
public String redirect() {
    return "redirect:/new-url";
}

全局響應(yīng)配置

統(tǒng)一響應(yīng)格式
使用 @ControllerAdvice 定義全局響應(yīng)封裝:

@ControllerAdvice
public class GlobalResponseHandler implements ResponseBodyAdvice<Object> {
    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        return true;
    }
    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, 
                                  Class<? extends HttpMessageConverter<?>> selectedConverterType, 
                                  ServerHttpRequest request, ServerHttpResponse response) {
        return new ResponseWrapper<>(200, "success", body);
    }
}

CORS 跨域配置
在配置類中全局啟用 CORS:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST");
    }
}

異常處理與錯(cuò)誤響應(yīng)

統(tǒng)一異常處理
通過 @ExceptionHandler 捕獲異常并返回結(jié)構(gòu)化錯(cuò)誤信息:

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleException(Exception ex) {
        ErrorResponse error = new ErrorResponse(500, ex.getMessage());
        return ResponseEntity.status(500).body(error);
    }
}

自定義錯(cuò)誤頁面
配置 ErrorViewResolver 或定義 /error 映射:

@Controller
public class ErrorController implements ErrorController {
    @RequestMapping("/error")
    public String handleError(HttpServletRequest request) {
        Integer status = (Integer) request.getAttribute("javax.servlet.error.status_code");
        return status == 404 ? "error-404" : "error-general";
    }
}

到此這篇關(guān)于Spring MVC 響應(yīng)機(jī)制綜合實(shí)踐之頁面、數(shù)據(jù)、JSON 與響應(yīng)配置處理方法的文章就介紹到這了,更多相關(guān)Spring MVC 響應(yīng)機(jī)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

上杭县| 新邵县| 潜江市| 青岛市| 密云县| 临海市| 海兴县| 峨边| 含山县| 扶沟县| 密云县| 松滋市| 襄垣县| 开原市| 信阳市| 杭锦后旗| 台东县| 翁牛特旗| 普洱| 海林市| 池州市| 读书| 白水县| 神木县| 伊金霍洛旗| 乳山市| 苍梧县| 驻马店市| 宜章县| 东丰县| 浦县| 榆树市| 湖北省| 阜平县| 阳春市| 黄大仙区| 宜良县| 新邵县| 江孜县| 蕲春县| 宁强县|