Springboot读取templates文件html代码实例
SpringBoot里面没有我们之前常规web开发的WebContent(WebApp),它只有src目录
在src/main/resources下面有两个文件夹,static和templates springboot默认 static中放静态页面,而templates中放动态页面
在不使用第三方jar包的情况下, Springboot不能直接访问templates下的静态页面, 需要加其他jar包依赖。
代码如下
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 { InputStreamReader streamReader = null; try { 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; } streamReader = new InputStreamReader(inputStream); PrintWriter printWriter = response.getWriter(); response.setContentType("text/html"); int readChar; while ((readChar = streamReader.read()) != -1) { printWriter.write(readChar); } printWriter.flush(); } finally { if (streamReader != null) streamReader.close(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
详解SpringMVC加载配置Properties文件的几种方式
这篇文章主要介绍了详解SpringMVC加载配置Properties文件的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-02-02MybatisPlus QueryWrapper常用方法实例
MyBatis-Plus(opens new window)是一个MyBatis(opens new window)的增强工具,在 MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生,下面这篇文章主要给大家介绍了关于MybatisPlus QueryWrapper常用方法的相关资料,需要的朋友可以参考下2022-04-04解决springmvc使用@PathVariable路径匹配问题
这篇文章主要介绍了解决springmvc使用@PathVariable路径匹配问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02利用 SpringBoot 在 ES 中实现类似连表查询功能
这篇文章主要介绍了如何利用 SpringBoot 在 ES 中实现类似连表的查询功能,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-07-07JavaWeb实战之用Servlet+JDBC实现用户登录与注册
这篇文章主要介绍了JavaWeb实战之用Servlet+JDBC实现用户登录与注册,文中有非常详细的代码示例,对正在学习java的小伙伴们有很大的帮助,需要的朋友可以参考下2021-04-04
最新评论