百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

springboot+thymeleaf+nginx实现页面静态化

off999 2025-01-17 12:34 27 浏览 0 评论

适用场景

  • 在高并发的情况下,为了缓解服务器动态解析的压力,利用nginx处理静态文件的优点,可将系统中修改次数较少的页面进行静态化处理。

自定义工具类

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
public class ThymelafUtils {
    /**
     * 生成页面的方法
     * @param variables 传入参数
     * @param dirPath   文件目录地址
     * @param filePath  文件地址路径
     * @param templatePage 模板页面
     * @param templateEngine 模板引擎
     */
    public static void createHtmlPage(HashMap variables, String dirPath, String filePath, String templatePage,TemplateEngine templateEngine){

        // 创建上下文,
        Context context = new Context();
        // 把数据加入上下文
        context.setVariables(variables);
        if (!new File(dirPath).exists()){
            new File(dirPath).mkdirs();
        }
        // 创建输出流,关联到一个临时文件
        File temp = new File(filePath);
        try (PrintWriter writer = new PrintWriter(temp, "UTF-8")) {
            // 利用thymeleaf模板引擎生成 静态页面
            templateEngine.process(templatePage, context, writer);
        } catch (IOException e) {
            System.out.println("页面静态化出错:{}"+e.getMessage());
        }
    }
}

nginx环境配置

server {
        listen       80;
        server_name  location;
		#区分大小写匹配.html结尾的请求
		location ~ \.html{
			root html;   #本人将静态化的页面放入nginx的html目录下,可根据需求自行修改
			if (!-f $request_filename) { #请求的文件不存在,就反向代理
				proxy_pass http://127.0.0.1:8092;    #地址路径为要生成页面的请求路径(自行修改)
				break;
			}
		}
	}

配置文件(application.properties)

#为nginx安装目录中html下
htmlPath=E:/nginx/nginx-1.16.0/nginx-1.16.0/html/   

调用方法


    @Autowired
    private TemplateEngine templateEngine;//模板引擎

    @Value("${htmlPath}")
    String htmlPath;  //生成文件路径的地址

    @RequestMapping(value = "/{skuId}.html",method = RequestMethod.GET)
    public String getItemInfo(@PathVariable("skuId") String skuId, Model model){

        //配置传入参数
        HashMap<String,Object> variables=new HashMap();
      //自行根据业务需求将数据以kv键值对的形式将参数进行传入
        //variables.put("skuInfo",skuInfo);

        //设置路径
        String filePath=htmlPath+skuId+".html";

        //生成页面的模板页面地址
        String templatePage="item";

        //本人自己新增静态化页面的功能
        ThymelafUtils.createHtmlPage(variables,htmlPath,filePath,templatePage,templateEngine);

        return "redirect:"+skuId+".html";  //将服务重定向,若存在静态页面,就直接有nginx转发
    }

实现思路

  • 利用thymeleaf模板引擎进行页面静态化,将生成的页面放入nginx安装目录的html文件夹下。页面生成后请求重定向给nginx进行转发。
  • 用户访问时,先有nginx判断是否有该页面,若无,则将请求发送给controller层进行页面的创建。

相关推荐

微软官网做的u盘是启动盘吗(微软官网的u盘启动好不好)

微软官方u盘制作工具是最靠谱的微软官方工具,制作安装纯净正版win10系统的启动U盘,没有任何捆绑软件。WindowsUSB/DVDDownloadTool是微软官方提供的Win10正式版ISO...

ghostxp系统之家(系统之家xp纯净版)

Ghost系统意思是通过赛门铁克公司(SymantecCorporation)开发的Ghost软件在装好的操作系统中进行镜像克隆的版本。跟普通系统区别如下:一、安装时间不同1、ghost系统:GHO...

安装win10系统需要什么条件(安装window10需要什么配置)

装WIN10系统需要的条件是具备兼容的操作系统和硬件配置。首先,要安装Windows10,您需要有一个兼容的操作系统,例如Windows7或更高版本。其次,您的计算机需要具备足够的硬件配置来运行W...

忘记开机密码怎么办教你3秒解决

开机密码忘记解锁方法如下:重新启动电脑,启动到系统登录界面时,同时按住Ctrl+Alt键,然后连击Del键两次,会出现新的登录界面,用户名处输入“Administrator”密码为空,回车即可登录,登...

win7开机需要激活密钥怎么办

最简单的方法是使用密钥管理工具进行激活在Windows7发布时期,微软曾经提供了免费密钥管理工具,使用该工具可以轻松激活Windows7操作系统但是该工具现在已经无法下载了,需要在其他网站上下载,...

如何进入wifi管理界面网址(如何进入wifi管理界面网址)
如何进入wifi管理界面网址(如何进入wifi管理界面网址)

1打开浏览器,在路由器背面找到网址,打开,输入密码,点击确定2进去页面后,点击设备管理3如图所示,就进去无线网管理页面了。要用手机进入路由器的wifi界面可以按照下面步骤操作。步骤一、手机连接路由器发射出来的wifi信号。步骤二、点击手机中...

2026-01-03 17:51 off999

磁盘被写保护是什么原因(磁盘被写保护是怎么回事)

U盘有写保护:1、U盘本身的原因:U盘上有写保护的小开关,只需要拨一下就行了。如果没有,把U盘拆开,找到铜片,其中有个铜片是陷下去的,将他拨起来,使他和上面的铜片全部接触就行了。如果是内存卡的话,一般...

电脑系统怎么还原win10(电脑系统怎么还原 电脑系统还原步骤)
  • 电脑系统怎么还原win10(电脑系统怎么还原 电脑系统还原步骤)
  • 电脑系统怎么还原win10(电脑系统怎么还原 电脑系统还原步骤)
  • 电脑系统怎么还原win10(电脑系统怎么还原 电脑系统还原步骤)
  • 电脑系统怎么还原win10(电脑系统怎么还原 电脑系统还原步骤)
iso是啥(ISO是啥文件)

是国际标准化组织的简称,它是一个全球性的非政府组织,是国际标准化领域中一个十分重要的组织。  2、ISO指符合ISO9660标准的光盘镜像文件格式。  3、在篮球运动中,球员叫队友将进攻阵型拉开,自...

电脑一直进入bios怎么办(电脑一直进入bios是硬盘坏了吗)

1.重启电脑,在屏幕出现电脑品牌logo时确认好进入BIOS的快捷键是哪个先,然后快速断续的按下启动快捷键进入BIOS。2.进入BIOS设置后,将界面切换到“Secure”选项,上下键移到“Secur...

联想笔记本键盘个别键失灵(联想笔记本键盘个别键不能用)

1、首先可能用户粗心操作造成的。硬件问题包括因为笔记本电脑小键盘数字键和字母键是整合在一起的,一般按fnNumlk键可以智能切换到小数字键盘。2、可能是笔记本键盘彻底坏了,那么就要更换键盘了。...

win7桌面没有图标了怎么恢复

步骤一、进行先软件后硬件操作,首先进行杀毒  从开始--程序--找出杀毒软件对电脑进行全盘扫描?  杀毒软件建议使用360杀毒或金山杀毒,先进行全盘杀毒,彻底清除电脑内木马病毒以及恶意插件,清除完毕后...

独一无二繁体字网名(独一无二繁体字网名大全)

超复杂网名用繁体字表示就应写成“超複雜”,看看复杂的繁体字“複雜”的写法是蛮复杂,所以简体字的运用大大方便了人们的使用。殺軟嬌貪歡張錯過樂極寵愛兩壹塹長壹牽帶?g??稀爱★?a流.浪.猪爱...

2025组装机配置清单(2020年组装机主流配置)

13代已经出了。现在入手12代英特尔平台性价比最高。这套在3000比较偏显卡,也可以显卡用影驰GTX16504GD6128Bit,价格1100,省下来的钱可以把内存升级为8G×2条16G。Cp...

宗门系统流小说排行榜(宗门系统文)

第一《史上第一祖师爷》作者:八月飞鹰短书评:系统主线任务:林锋开山立派,建立史上第一大宗门,林锋本人成为第一祖师。第二《修真门派掌门路》作者:齐可休书评:本命由天授,同参伴我行逍遥两相对,一道诵黄庭在...

取消回复欢迎 发表评论: