idea创建SpringBoot、MybaitsPlus、Lombok、Shiro集成(二)【访问静态文件、异常捕获、集成thymleaf并展示数据】

一、访问静态文件

1、在SpringBoot中,系统默认扫描静态文件在static或者public文件夹下。因为Idea开发工具已经帮我们创建了static文件夹,我们直接复制一张图片到static目录下,将图片命名为shaoqunchao.jpeg,我们启动项目并通过浏览器进行访问这张图片。

2、直接启动项目访问该图片

 

二、SpringBoot异常捕获

1、以前写异常捕获都需要写切面去捕获,现在不用了。SpringBoot已经封装好了,我们可以直接用就行。下面介绍几个的异常捕获注解:

  1)@ExceptionHandler 该注解表示拦截异常

  2)@ControllerAdvice 该注解是Controller的一个辅助类,最常用的就是作为全局异常处理的切面类。

  3)@ControllerAdvice 该注解可以指定扫描范围。

  4)@ControllerAdvice 该注解约定了几种可行的返回值,如果是直接返回model类的话,使用@ResponseBody进行JSON转换。

2、我们在项目下创建一个包com.shaoqunchao.exception,然后新建一个异常拦截类InterceptExceptionHandler,对Controller跑出的异常进行拦截,我举例拦截一个RuntimeException运行时异常,只需要在Controller里边制造一个异常,在Hello请求里边增加 int a=10/0;即可被捕获。

1)项目结构

2)InterceptExceptionHandler异常处理类代码

package com.shaoqunchao.exception;

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

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

@ControllerAdvice
public class InterceptExceptionHandler {


    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public Map<String,Object> exceptionHandler(){
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("errorCode","404");
        map.put("errorMsg","内部程序错误!");
        return  map;
    }

}

3)HelloController抛出异常类代码

package com.shaoqunchao.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String sayHello(){
        //程序错误,这里举例RuntimeException异常
        int a=10/0;
        return "Hello Word!!";
    }
}

4)直接启动服务器访问hello方法,可以得知RuntimeException异常已被程序拦截并处理!

三、集成thymleaf模版语言

在之前的示例中,都是通过@RestController来处理请求,所以返回的内容为JSON对象。那么如果渲染到html页面的时候,如何实现呢?在SSM框架中我们一般使用JSP作为前端展示页面,因为JSP在运行的时候要编译成一个Servlet,这样对服务器是一个很大的消耗。而今天,我们使用前台模版引擎,这种方式就好比静态页面,不需要占用服务器太多的资源。

接下来介绍几种前端模版引擎:Thymeleaf、FreeMarker、Groovy。

这三种都是SpringBoot 官方推荐使用的模版,而且特别说出了避免使用JSP,目前用的最多的就是前两种,我这里使用Thymeleaf。当我们使用上述模板引擎中的任何一个,SpringBoot默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径。所以需要在templates文件夹下存放我们的前台模版页面。当使用模版的时候需要在配置文件中添加几条配置,SpringBoot自动会读取默认的配置文件路径是在resources下的application.properties文件,这里需要在配置文件中配置下面的参数(切记:一定要注意是否书写有误,不能多空格否则有可能会报错

1、整体目录结构

2、application.properties配置属性 

spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html

3、在pom.xml中引入相关的jar包

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

4、创建PageController类,并编写index方法,展示页面。

package com.shaoqunchao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class PageController {

    @RequestMapping("/index")
    public String index() {
        return "index";
    }
}

5、编写index.html页面,并放在src/main/resources/templates/目录下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>Welcome To shaoqunchao For Blog</h2>
</body>
</html>

6、配置完成了基本的页面和跳转,就可以通过浏览器进行访问了,输入127.0.0.1:8080/index就可以跳转到的index.html页面了。

四、thymleaf模版语言展示数据

要将服务端的数据在页面上进行一个展示了,前台模版引擎一般有自己的规则,使用不同的模版引擎就有不同的规则需要去遵循才能正确的显示数据。这里我随便列举几个展示例子,如果自己用到什么模版引擎就自己下去简单搜索一下就好了,这个相对比较简单。

1、编写PageController类

package com.shaoqunchao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class PageController {

    @RequestMapping("/index")
    public String index(Model model) {
        model.addAttribute("name","邵群超");
        return "index";
    }
}

2、编写index.html页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>Welcome To shaoqunchao For Blog</h2>
    <h1 th:text="${name}"></h1>
</body>
</html>

3、访问页面,展示数据

注:具体更多的显示格式请参看相关API,太多了,我就不一一演示了。

安装Docker安装插件,可以按照以下步骤进行操作: 1. 首先,安装Docker。可以按照官方文档提供的步骤进行安装,或者使用适合您操作系统的包管理器进行安装。 2. 安装Docker Compose插件。可以使用以下方法安装: 2.1 下载指定版本的docker-compose文件: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.2 赋予docker-compose文件执行权限: chmod +x /usr/local/bin/docker-compose 2.3 验证安装是否成功: docker-compose --version 3. 在安装插件之前,可以测试端口是否已被占用,以避免编排过程中出错。可以使用以下命令安装netstat并查看端口号是否被占用: yum -y install net-tools netstat -npl | grep 3306 现在,您已经安装Docker安装Docker Compose插件,可以继续进行其他操作,例如上传docker-compose.yml文件到服务器,并在服务器上安装MySQL容器。可以参考Docker的官方文档或其他资源来了解如何使用DockerDocker Compose进行容器的安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装docker-compose插件](https://blog.youkuaiyun.com/qq_50661854/article/details/124453329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker安装MySQL docker安装mysql 完整详细教程](https://blog.youkuaiyun.com/qq_40739917/article/details/130891879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵群超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值