gpt4 book ai didi

java - 在 "html level"实现jsp缓存

转载 作者:行者123 更新时间:2023-11-29 09:11:36 25 4
gpt4 key购买 nike

我想在“html 级”实现一个 jsp 缓存。我的想法是:

for each request{
if(exists("/cache/<product_id>/<product_name>.html")){
response "/cache/product/1234/cat.html"
}else{
response database.getCat("1234")
}
}

exists(String path){
if(!file(path)){
return false;
}else{
if((currentDate = file(path).createdAt) > CACHE_TIME){
return false
}else{
return true
}
}
}

因此,如您所见,如果页面自 CACHE_TIME 后未显示,则仅转到数据库(或其他繁重的进程)

例子:

用户 1 转到 http://mysite.com/products/1234/cat.jsp系统进入数据库并生成一个html文件(products-1234-cat.html)用户1查看页面立即出现用户 2 并转到相同的 url系统发现存在缓存,因此使用 products-1234-cat.html 进行响应(无数据库,无繁重进程)。

我该如何实现?

我希望我清楚自己想要什么

最佳答案

如果你使用 Apache,你最好使用 mem_cache 模块或类似的 http://httpd.apache.org/docs/2.2/caching.html

但如果您确实有充分的理由使用应用程序级缓存,您应该采取不同的方式。除非您添加一些额外的逻辑(我的意思是创建那些缓存的 html 文件时的竞争条件),否则您想要执行此操作的方式将不是线程安全的。

我将向 JSP 标记库 (customtag:cache) 添加一个新的自定义标记并将您的内容包装到该标记中。根据缓存 ttl 或其状态(暖、冷),我会呈现缓存标记内的实际内容或其缓存版本(可以存储在 HashMap 中)。

关于java - 在 "html level"实现jsp缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com