SpringBoot自定义实现跳转页面

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

@Controller
public class PageController {
    private static ClassLoader classLoader = ClassUtils.getDefaultClassLoader();
    private static final Logger log = LoggerFactory.getLogger(PageController.class);

    @RequestMapping("/")
    public void root(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/index.html").forward(request, response);
    }

    @RequestMapping("**.html")
    public void page(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String servletPath = request.getServletPath();
        log.info(request.getMethod() + " " + servletPath);
        String filePath = "templates" + servletPath;

        InputStream inputStream = classLoader.getResourceAsStream(filePath);
        if (inputStream == null) {
            response.sendError(404);
            return;
        }
        response.setContentType("text/html; charset=utf-8");

        OutputStream outputStream = response.getOutputStream();
        int readChar;
        while ((readChar = inputStream.read()) != -1) {
            outputStream.write(readChar);
        }
        outputStream.flush();
        inputStream.close();
    }
}
原文地址:https://www.cnblogs.com/gjq1126-web/p/12614870.html