通用大型网站页面静态化解决方案

 更新时间:2008年10月16日 23:47:38   作者:  
在开发大型网站时,避免不了处理大量的页面静态化操作,这样方便加快网站访问速度与流量分流,那么如何来实现呢?其实说白了比较简单,网站静态化主要包括以下几方面的工作
多个文件服务器读写,这里可采用SMB协议
页面静态化,可采用freemarker开源框架
如果考虑到大量的读写请求,则将请求分布式或采用调度的办法来解决
第一点我们首先应该考虑文件服务器与静态页面的映射关系,即什么文件应该读写到哪台服务器,这个关系最简单的办法是随机映射,然后将映射关系保存到数据库中即可,SMB常用的操作代码如下:
复制代码 代码如下:

    public static boolean exists(String filepath,String username,String pwd) throws Exception
    {
    SmbFile file = new SmbFile("smb://"+username+":"+pwd+"@"+filepath);
try{
    return file.exists();
}catch(Exception ex){
    return false;
}
    }

public static boolean fileRename(String filepath,String newFilename,String username,String pwd)
    {
    try{
         SmbFile f=new SmbFile("smb://"+username+":"+pwd+"@"+filepath);
         if(f.isFile()){
     String str=filepath.substring(0,filepath.lastIndexOf("/"));
     str="smb://"+username+":"+pwd+"@"+str+"/"+newFilename;
     f.renameTo(new SmbFile(str));
         }else if(f.isDirectory()){
         String str=filepath.substring(0,filepath.length()-1);
         str=filepath.substring(0,str.lastIndexOf("/"));
         str="smb://"+username+":"+pwd+"@"+str+"/"+newFilename;
         f.renameTo(new SmbFile(str));              
         }
     return true;
    }catch(Exception ex){
        return false;
    }
    }

public static void mkdir(String dir,String username,String pwd)
{
try{
     SmbFile f=new SmbFile("smb://"+username+":"+pwd+"@"+dir);
     if(!f.exists())
f.mkdir();
}catch(Exception ex)
{
}
}

public static void mkfile(String filepath,String username,String pwd)
{
try
{
     SmbFile f=new SmbFile("smb://"+username+":"+pwd+"@"+filepath);
     if(!f.exists())
f.createNewFile();
}catch(Exception ex)
{
}
}

public static void mkfile(String filepath,String username,String pwd,String content)
{
try
{
     SmbFile f=new SmbFile("smb://"+username+":"+pwd+"@"+filepath);
     if(!f.exists())
f.createNewFile();
writeFile(filepath,content,username,pwd);
}catch(Exception ex)
{
}
}

public static boolean isdir(String filepath,String username,String pwd) throws Exception
{
String dir="smb://"+username+":"+pwd+"@"+filepath;
SmbFile f=new SmbFile(dir);
return f.isDirectory();
}

第二点,页面静态化可由freemarker生成,freemarker的使用比较简单,我这里不再啰嗦,重复说了
第三点,调度中心,或把静态化的请求先保存到Task中,然后通过调度中心异步执行,可用我在博客中说道的另外一篇文章解决即可

相关文章

  • 用JSP编写文件上传

    用JSP编写文件上传

    用JSP编写文件上传...
    2006-10-10
  • Servlet与JSP使用简介及区别详解

    Servlet与JSP使用简介及区别详解

    这篇文章主要为大家介绍了Servlet与JSP使用简介及区别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 九、处理Cookie

    九、处理Cookie

    九、处理Cookie...
    2006-10-10
  • Java之JSP教程九大内置对象详解(上篇)

    Java之JSP教程九大内置对象详解(上篇)

    这篇文章主要介绍了Java之JSP教程九大内置对象详解(上篇),本文章内容详细,通过案例可以更好的理解JSP内置对象的相关知识,本模块分为了三部分,本次为上篇,讲解了三个内容,需要的朋友可以参考下
    2023-01-01
  • JSP隐含对象response实现文件下载

    JSP隐含对象response实现文件下载

    这篇文章主要介绍了JSP隐含对象response实现文件下载的两种方式,对response实现文件下载的方式进行详细解析,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • jsp中获取当前目录的方法

    jsp中获取当前目录的方法

    这篇文章主要介绍了jsp中获取当前目录的方法,实例分析了JSP获取当前路径的方法,并对相关目录操作函数进行了总结归纳,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • 传智播客java web 过滤器

    传智播客java web 过滤器

    今日学习Servlet的过滤器部分,百闻不如一见。以后我在课后做练习时,发现多个Servlet之间转发容易产生问题。
    2009-11-11
  • Java之JSP教程九大内置对象详解(下篇)

    Java之JSP教程九大内置对象详解(下篇)

    这篇文章主要介绍了Java之JSP教程九大内置对象详解(下篇),本文章内容详细,通过案例可以更好的理解JSP内置对象的相关知识,本模块分为了三部分,本次为下篇,讲解了三个内容,需要的朋友可以参考下
    2023-01-01
  • Java语言中链表和双向链表

    Java语言中链表和双向链表

    Java语言中链表和双向链表...
    2006-10-10
  • jsp 不支持EL表达式,解决办法

    jsp 不支持EL表达式,解决办法

    如果web.xml如下设置也不支持EL表达式
    2009-05-05

最新评论