整合Freemarker视图层和整合jsp视图层和全局捕获异常

SpringBoot静态资源访问

1.静态资源:访问 js / css /图片,传统web工程,webapps

springboot 要求:静态资源存放在resource目录下(可以自定义文件存放)

2.整合Freemarker视图层

使用Freemarker模板引擎渲染web视图

pom文件引入

          <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-freemarker</artifactId>
         </dependency>

 3.创建SpringBoot整合jsp,一定要为war类型

不要把jsp页面存放在resource目录下    ,可能产生被别人访问到,jsp不能被别人访问

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <!-- springboot 外部tomcat支持 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>test</scope>
        </dependency>

4.SpringBoot整合全局捕获异常

相当于整个web请求项目全局捕获异常  ,错误记得存放在日志中

使用Aop技术,采用异常通知

//全局捕获异常案例
//@ExceptionHandler--拦截错误
//1.捕获返回json格式
//@ResponseBody--返回json格式
//@modeAndView--返回视图页面
//2.捕获返回页面

应用场景:

 //如果每个方法都可能会发生异常,每个方法都加上try不好  采用全局捕获异常
    @RequestMapping("/hello")
    public String hello(int i) {
       try {
           int j=1/i; 
       }catch (Exception e) {
        return "系统错误";
    }
       
       return "success";
      
   }
package com.example.demo.controller.error;


import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice(basePackages="com.example.demo.controller")
public class ErrorHandler {
  @ExceptionHandler(RuntimeException.class)
  @ResponseBody//返回json格式
  public Map<String, Object> errorResult(){
      Map<String, Object> error=new HashMap<String, Object>();
      error.put("errorcode", "500");
      error.put("errormsg", "全局捕获异常系统错误");
      return error;
     
  }
}
原文地址:https://www.cnblogs.com/tanlei-sxs/p/9624426.html