`
仅此而已
  • 浏览: 61411 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

关于生成静态页的思考

阅读更多
import java.io.BufferedReader; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLConnection; 

/** 
* 一段将网页静态化的代码。 
* 
* @author 老紫竹 JAVA世纪网(java2000.net) 
* 
*/ 
public class Test { 
  /** 
   * 将信息转化为静态html 
   * 
   * @param sUrl 
   *          动态信息访问URL 
   * @param charset 
   *          编码类型 
   * @param sSavePath 
   *          存储为静态文件的目录 
   * @param sHtmlFile 
   *          生成的静态文件名,可以按信息的唯一ID+.html命名 
   * @throws IOException 
   */ 
  public static void convert2Html(String sUrl, String charset, 
      String sSavePath, String sHtmlFile) throws IOException { 

    int HttpResult; 
    URL url = new URL(sUrl); 
    URLConnection urlconn = url.openConnection(); 
    // 抽象类 URLConnection 
    // 是所有类的超类,它代表应用程序和 URL 
    // 之间的通信链接,通过在 URL 上调用 
    // openConnection 方法创建连接对象 
    urlconn.connect(); // 使用 connect 方法建立到远程对象的实际连接 
    HttpURLConnection httpconn = (HttpURLConnection) urlconn; 
    // 每个 
    // HttpURLConnection 
    // 实例都可用于生成单个请求, 
    // 但是其他实例可以透明地共享连接到 
    // HTTP 服务器的基础网络 
    HttpResult = httpconn.getResponseCode(); 
    // getResponseCode可以从 HTTP 
    // 响应消息获取状态码 
    if (HttpResult != HttpURLConnection.HTTP_OK) { 
    } else { 
      InputStreamReader isr = new InputStreamReader(httpconn.getInputStream(), 
          charset); 
      BufferedReader in = new BufferedReader(isr); 
      String inputLine; 
      if (!sSavePath.endsWith("/")) { 
        sSavePath += "/"; 
      } 
      FileOutputStream fout = new FileOutputStream(sSavePath + sHtmlFile); 
      while ((inputLine = in.readLine()) != null) { 
        System.out.println(inputLine); 
        fout.write((inputLine+"\n").getBytes()); 
      } 
      in.close(); 
      fout.close(); 
    } 
  } 

  public static void main(String[] args) throws IOException { 
    Test ru = new Test(); 
    String filePath = ru.getClass().getResource(".").getPath().toString(); // 取得项目根目录 

    convert2Html("http://www.java2000.net/", "UTF-8", filePath + "/", 
        "aaaa.htm"); 
  } 
} 

 以上转自老子竹,(上面是生成静态页文件的方法,我要实现第一次访问时如果有该action对应的html静态文件那么直接访问,第一次访问如果没有那么对该url生成静态页文件并访问)
能不能通过struts2拦截器对有必要的请求就行拦截调用该段代码生成静态页文件。
1、当我访问某某action时首先获得request
2、通过request获得相应的请求的url
3、将url改写成某某.html如我访问的是 http://localhost:8080/inkaNetMis/demo.action 改写后的url为
http://localhost:8080/inkaNetMis/demo.[b]html[/b],
4、判定改写后url的HttpURLConnection.HTTP_OK状态 是否OK。 如果ok说明之前生成过url直接访问 如果not ok 那么调用该方法生成生成静态页并访问。

具体没有实现,希望有人能帮忙实现下;
具体问题:我怎么能在拦截器中做跳转呢?(通过resultType指定url还有别的办法吗?)
用response 或是 request的跳转还会被拦截器拦截 造成死循环。

 

 

  • 大小: 51.2 KB
3
0
分享到:
评论

相关推荐

    asp生成静态语句asp生成静态语句

    根据提供的文件信息,本文将详细解释ASP(Active Server ...然而,理解这种基本的生成静态页面的技术仍然是非常有价值的,因为它为我们提供了一种思考问题的不同视角,并且在某些特定场景下仍然具有一定的实用价值。

    java读取网页 生成页面

    在IT领域,特别是Java开发中,能够通过编程方式读取网页内容并生成静态页面是一项非常实用的技能。根据给定的文件信息,我们将深入探讨如何使用Java语言读取网页并生成静态HTML页面,同时理解其背后的原理和技术要点...

    服务端生成技术的思考

    服务端生成技术,主要应用于现代Web开发中,特别是在构建静态站点和动态内容相结合的网站时。它通过预先在服务器端生成HTML页面,而不是每次请求时在客户端动态生成,从而提高了网页加载速度、降低了服务器负载,并...

    PHP生成静态HTML文档实现代码_.docx

    ### PHP生成静态HTML文档实现代码解析 #### 一、引言 随着互联网技术的发展,网站建设和维护变得越来越重要。为了提高用户体验和搜索引擎优化(SEO),许多开发者选择将动态生成的内容转化为静态HTML页面。这种方式...

    在线满分作文生成器html源码-满分作文生成器网站

    该工具通过结合专业术语和名人名言,利用随机化的填充方式,使生成的文章显得深奥而富有内涵,以期在评分标准下达到“满分”效果。下面我们将深入探讨这款工具涉及的技术要点和教育应用。 首先,从技术角度来看,...

    PyTorch生成对抗网络编程.docx

    PyTorch生成对抗网络编程 本文概述了PyTorch生成对抗网络编程的基础知识、应用场景和未来发展。生成对抗网络(GAN)是一种...最后,我们将探讨GAN未来的发展方向和可能面临的挑战,启发读者对GAN未来的思考和探索。

    C#课后思考题总结

    【C#课后思考题总结】 1. **命名空间**:命名空间是C#中用于组织类和结构的逻辑容器,它可以防止不同类库中的同名类型产生命名冲突。使用命名空间的好处在于它有助于模块化代码,使得代码更加易于管理和维护。 2. ...

    织梦仿站标签生成器工具

    已静态编译!希望大家多多鼓励支持!新手出品,大神勿喷! 此软件功能主要是帮助那些从事(织梦)网站开发的程序员朋友的福利,可以方便的使用标签调用,提高工作效率。 此软件有什么bug 或者是 有什么更好的修改...

    C#利用System.Threading.Thread.Sleep即时输出信息的详解

    有个网站需要生成静态页。据以往经验,凡比较烂的空间,短时间内运行耗能大的运算,都会出现“service unavailable”,以致网页无法正常打开。生成静态页,需要在短时间内读取大量的数据并保存为html页,好一些的...

    藏经阁-QQ移动页面框架优化实践.pdf

    离线预推技术利用Venus自动构建系统将页面静态资源生成压缩包,并通过Bsdiff生成增量包,以减少网络传输的数据量。当用户登录后,系统会检查并更新离线包,使得WebView在加载页面时优先使用本地离线资源,降低对网络...

    实验1 静态路由实验的副本1

    1. **直连路由**:当路由器接口分配了IP地址后,路由器会自动生成对应网段的路由信息。 2. **静态路由**:在简单网络环境中,管理员手动配置路由器,指定未知网段的路由,以连接不同网络。静态路由固定不变,不适应...

    monoglot-anxiety:我的语言博客Monoglot焦虑。 该网站托管在Netlify上,并在Hugo静态网站生成器上运行

    在这个项目中,HTML作为基础内容载体,Hugo作为生成静态页面的工具,而Netlify则负责自动化部署和全球分发,三者紧密协作,构成了高效、安全且易于维护的静态网站解决方案。这对于个人博主或者小型团队来说,既节省...

    个人博客:我的个人博客,使用静态网站生成器(Metalsmith)

    **静态网站生成器Metalsmith详解** 在当前的互联网环境中,个人博客已经成为许多技术爱好者、作家和创意人士展示自己作品和思想的重要平台。Metalsmith,作为一个轻量级且高度可扩展的静态网站生成器,为创建个人...

    物理课堂生成资源的有效利用.doc

    在新课程理念的指导下,物理课堂不再仅仅是按照预设教案进行的静态传授,而是一个充满活力和动态生成的过程。教师需要学会如何在教学过程中捕捉那些不可预见的、由学生疑惑和互动产生的资源,将它们转化为教学的亮点...

    QQ移动页面框架优化实践1

    3. 关于移动页面框架的一点思考: - 随着业务形态的发展,如游戏分发、会员特权中心、个性装扮商场等,对页面加载速度和用户体验的要求越来越高。因此,如何平衡动态数据与静态资源的加载,减少网络延迟,提高数据...

    letsjustwander:一个博客,以一种思维定势记下流浪的想法。 使用Eleventy静态网站生成器构建

    《流浪的思考与Eleventy:构建个人博客的探索》 在互联网的广阔天地中,个人博客成为了一种表达自我、分享见解的重要平台。"letsjustwander",这个名字充满了诗意,寓意着一种流浪的精神,一种对未知世界的探索。这...

    传智播客PHP教程韩顺平dedecms项目开发笔记.pdf

    3. 生成静态页面 4. 更新主页面 HTML DEDE CMS 的开发思想 1. 使用垂直分割的技巧 2. 采用静态页面技术 3. 使用内容模型来管理文章和商品 DEDE CMS 的四类表关系 1. dede_arctype:栏目(类别)表 2. dede_...

    《Python爬虫大数据采集与挖掘》期末考试考题汇总带答案.doc

    静态页面是指其内容不会改变的页面,动态页面是指其内容会根据用户的交互而改变的页面,伪静态页面是指其内容可以根据一定的规则而生成的页面。 3. Robots 协议是指给 Web 网站提供灵活的控制方式来决定页面是否...

    FreeBuilder:自动生成Java的Builder模式

    当设计类的构造函数或静态工厂将具有多个参数的类时,Builder模式是一个不错的选择。 —有效的Java,第二版,第39页 背景 在Java中实现非常繁琐,容易出错且重复。 谁没有看过一个由十个参数组成的构造函数,对这个...

Global site tag (gtag.js) - Google Analytics