页面静态化技术

  1. 在eclipse中点击Window,选择Reference,弹出如下框
  2. 找到:General --> Editors --> File Associations

如下:如果有*.ftl文件,就不用点击上面的Add。如果没有,就点击Add新建

  1. 然后点击此页面下面的Add按钮:

  1. 然后选择General--Content Types:


  2. 编程步骤,这里我们写一个工具类方便我们使用
  3. package cn.jiedada.util;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.Writer;
    import java.util.UUID;
    
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    
    public class FreeMakerUtil {
    
        /**
         * @param templatePath--ftl文件父目录路径
         * @param templateName--ftl文件名称
         * @param object --传入的数据
         * @param suffix    --文件后缀
         * @return
         */
        public static String createFile(String templatePath,String templateName,Object data,String suffix) {
            //创建一个配置对象
            Configuration conf = new Configuration(Configuration.VERSION_2_3_28);
            Writer pw = null;
            String htmluri=null;
            try {
                //创建父目录文件
                File file = new File(templatePath);
                //设置默认template文件路径及字符集
                conf.setDirectoryForTemplateLoading(file);
                conf.setDefaultEncoding("UTF-8");
                //创建template
                Template template = conf.getTemplate(templateName);
                //设置新的名字
                String uuid=UUID.randomUUID().toString().replace("-", "");
                htmluri = uuid+suffix;
                //设置输出路径
                pw =new PrintWriter(new File(file,htmluri));
                template.process(data, pw );
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(pw!=null){
                    try {
                        pw.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            return htmluri;
        }
    }

    传入的data只能为map或者实体类

  4. map和实体类的遍历
  5. 实体类直接使用字段名
  6. 多个实体的list对象添加到map中的遍历
  7. <html>
    
        <head>
        <meta charset="utf-8">
        </head>
        <body>
                   //传入的map中的数据as为我们的单条数据
            <#list list as l>
                城市:${l.cname }
                城市级别
                    <#if l.id lt 10>
                    一线城市
                    <#elseif l.id lt 21>
                    二线城市
                    <#else>
                    三线城市
                    </#if>
            </#list >
        </body>
    </html>        

    在项目中我们需要做的事情,因为我们的删除和更新都存入了html的地址所以我们需要在修改和删除的时候同时删除数据

  8. 这里为修改
  9. @RequestMapping("/modify")
        public String modify(Jobs jobs,HttpServletRequest req){
            //先删除url在修改
            String realPath = req.getServletContext().getRealPath("/freemakser");
            File file = new File(realPath,jobs.getHtmlurl());
            if(file.exists()){
                file.delete();
            }
            service.modify(jobs);
            return "forward:page";
        }

    这里为删除

  10. @RequestMapping("/del")
        public String delete(Integer id,String htmlurl,HttpServletRequest req){
            service.del(id);
            String realPath = req.getServletContext().getRealPath("/freemakser");
            File file = new File(realPath,htmlurl);
            if(file.exists()){
                file.delete();
            }
            return "forward:page";
        }

    service中的修改为

  11. @Override
        public void modify(Jobs jobs) {
            String templatePath = "F:\\JAVAEE\\2019_09_11_cms4\\src\\main\\webapp\\freemakser";
            String templateName ="join_us_details.ftl";
            String htmlurl = FreeMakerUtil.createFile(templatePath, templateName, jobs, ".html");
            jobs.setHtmlurl(htmlurl);
            dao.modify(jobs);
        }
    
        @Override
        public void add(Jobs jobs) {
            String templatePath = "F:\\JAVAEE\\2019_09_11_cms4\\src\\main\\webapp\\freemakser";
            String templateName ="join_us_details.ftl";
            String htmlurl = FreeMakerUtil.createFile(templatePath, templateName, jobs, ".html");
            jobs.setHtmlurl(htmlurl);
            dao.add(jobs);
        }

原文地址:https://www.cnblogs.com/xiaoruirui/p/11516998.html

时间: 2024-10-03 23:15:46

页面静态化技术的相关文章

网站优化—页面静态化技术

数据库检索的问题 主要是为了减少数据库的操作,让MySQL能够提供更强大的服务 ? 使用缓存技术 磁盘缓存:就是将用户请求数据库的数据,保存到磁盘文件形成一个静态的HTML文本,下次用户的访问的时候,直接返回该HTML文本. 内存缓存:将MySQL的数据取出之后,保存到内存(memcache,不算一个NOSQL数据库,但是是一个缓存系统)之中,下次直接从内存中返回.(效率非常高) 注意:只要不使用sql语句作为查询条件的数据库(仓库)就叫做NOSQL数据库 优化MySQL 设计:存储引擎的选择,

php页面静态化技术;学习笔记

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

[项目构建 九]babasport 页面静态化技术Freemarker技术的介绍及使用实例.

一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格

大数据学习总结记录—页面静态化技术(Freemarker/velocity)&amp; 网站伪静态(UrlRewriteFilter)

Freemaker  静态化模板技术 模板的作用 模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢的,当然很多应用服务器都提供预编译的功能,但是在开

高性能Java Web 页面静态化技术

package com.yancms.util; import java.io.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.apache.commons.httpclient.params.HttpMethodParams; /** * 静态页面引擎技术(突乱了乱码问题UTF-8) * @author 吴彦文 * */ public cl

页面静态化技术velocity与freemarker比较

相比较 FreeMarker 而言,Velocity 更加简单.轻量级,但它的功能却没有 FreeMarker 那么强大. 对于大部分的应用来说,使用 FreeMarker 比 Velocity 更简单,因为 Velocity 还必须编写一些自定义的toolbox类以及一遍遍重复的编写一些比较通用的模版代码,因此也就丧失了刚开始开发时更多的宝贵时间.另外使用工具类和变通的方法在模版引擎中似乎不是一个非常有效的做法.同时,Velocity 的做法使得在Velocity的模版中大量的跟 Java 对

页面静态化----------------------------------------个人笔记

***********************************************大型网站提速关键技术(页面静态化,mmecached,mysql优化)*********************************************************************************** ************************************************************页面静态化*******************

页面静态化3 --- 伪静态技术之Apache的rewrite机制

  Apache的rewrite机制: 意思就是,你发送的地址,比如:http://localhost/news-id67.html会被Apache改写成http://localhost/news.php?id=67; Apache本身内置了一个模块:(httpd.conf) #LoadModule rewrite_module modules/mod_rewrite.so ---- 去掉注释,开启Apache内置的重写模块开启模块过后,这个模块把news-id67.html重写为news.ph

各种系统性能优化技术,采用vilocity实现商品页面静态化

1.大型门户网站系统:>10万的访问量   行业网站(当当网,卓越网):20万-30万,一个小时内会跟数据库的交互至少20万-30万,会产生数据库瓶颈,每个数据库都有一个最大连接数(socket),一般服务器连接数2000个,如果超过2000,后面连接就会处于等待,在某一时间(短暂)内,有1万人访问了该产品页面,会跟数据库发生1万次交互,在这么短时间内,数据库处理能力是有限(如只能处理2000个连接),则8000个处于等待状态,等待超时的30s内可以再处理5000个链接,还有3000个连接 1)