`
icejadelove
  • 浏览: 138123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsp把动态页面转为静态页面 转

阅读更多

要自动生成静态页面,用Filter截获jsp请求并先进行预处理,自动生成Html,是个不错的主意。一个很容易想到的方法是在Filter截获Request后,导向一个Servlet,在这个Servlet中向本机发送一个http请求,然后将响应写入一个文件:
URLConnection urlConn = URLConnection.open(http://localhost/req);
注意要避免递归。
另一个方法是不模拟http,而是定制Response,把服务器返回的JSP响应输出到我们自己的Response中,就可以将响应快速写入Html文件,然后再发送给客户。而且,由于没有http模拟请求,直接读取服务器响应速度非常快。
截获Response的关键便是实现一个WrappedResponse,让服务器将响应写入我们的WrappedResponse中。这类似于一个代理模式,Servlet 2.x已经提供了一个WrappedResponse类,我们只需要复写其中的一些关键方法即可。
WrappedResponse实现了Response接口,它需要一个Response作为构造函数的参数,事实上这正是代理模式的应用:WrappedResponse充当了代理角色,它会将JSP/Servlet容器的某些方法调用进行预处理,我们需要实现自己的方法。
综上:用Filter实现HTML缓冲的步骤是:
1. 用Filter截获请求,如/a.jsp?id=123,映射到对应的html文件名为/html/a.jsp$id=123.htm。
2. 查找是否有/html/a.jsp$id=123.htm,如果有,直接forward到此html,结束。
3. 如果没有,实现一个WrappedResponse,然后调用filterChain(request, wrappedResponse)。

4. 将返回的WrappedResponse写入文件/html/a.jsp$id=123.htm,然后返回响应给用户。
5. 下一次用户发送相同的请求时,到第2步就结束了。
使用这个方法的好处是不用更改现有的Servlet,JSP页,限制是,JSP页面结果不能与Session相关,需要登陆或用户定制的页面不能用这种方法缓冲。

分享到:
评论
1 楼 wustrive_2008 2011-12-02  
想法非常好!

相关推荐

    动态Jsp页面转换成静态Html页面

    5. 链接更新:如果动态页面包含其他动态链接,需要修改为静态页面的URL,确保页面间的导航正常。 三、实现步骤 1. 创建Servlet:编写一个Servlet,配置在web.xml中,设定URL映射规则,使得特定的JSP请求会被这个...

    通用首页静态化工具-可以把首页转化为静态页面

    在IT行业中,静态页面与动态页面是两种常见的网页类型。静态页面是由HTML、CSS和JavaScript等静态文件组成的,内容在服务器端创建后直接发送到客户端,而动态页面则是在用户请求时由服务器端的脚本(如PHP、ASP、JSP...

    jsp实现将动态网页转换成静态页面的方法

    本文实例讲述了jsp实现将动态网页转换成静态页面的方法。分享给大家供大家参考。具体如下: 如果我可以将jsp动态网页转换成静态页面,那么访问的时候就不需要频繁的访问数据库了。 jsp 显示内容缓存技巧 前段时间做...

    JSP生成静态HTML页面的几种方法

    JSP 生成静态 HTML 页面的几种方法 JSP 技术广泛应用于 web 开发领域,其中一个重要的应用场景是生成静态 HTML 页面。静态 HTML 页面相比动态页面具有许多优点,例如加载速度快、搜索引擎友好、减少服务器负载等。...

    jsp文件转换成htm文件.zip

    在IT行业中,网页开发是一项重要的工作,而"jsp文件转换成htm文件.zip"这个压缩包提供的工具或教程可能就是帮助开发者实现将基于Java Server Pages (JSP) 的动态网页转换为静态HTML(HTM)文件的过程。这个转换过程...

    JSP网页变成(ppt)

    JSP页面由两部分组成:静态内容和动态脚本元素。静态内容包括HTML、CSS、JavaScript等,它们负责页面的布局和用户交互。动态脚本元素如JSP指令、脚本let、表达式和动作标签,用于处理服务器端的数据和逻辑。 ```jsp...

    jsp转为html,简单易懂。无需手动修改

    然而,有时候为了提高性能或者简化前端工作,我们可能需要将JSP页面转换为纯静态的HTML文件。本篇文章将详细介绍如何将JSP转换为HTML,以及这个过程中的关键知识点。 首先,理解JSP和HTML之间的差异是至关重要的。...

    用servlet将jsp文件内容转为html

    - JSP是一种基于Java技术的服务器端脚本语言,它允许将动态生成的HTML内容嵌入到静态HTML网页中。 - JSP文件在服务器端被编译成Servlet类,然后由服务器执行这些Servlet类来生成动态HTML页面。 #### 二、实现原理...

    将HTML转为Jsp的一些资料

    - `<%@ page %>`: 设置JSP页面的属性,如字符编码、导入的包等。 - `<%@ include %>`: 动态地包含其他文件,常用于页面头部和底部的共用部分。 - `<%@ taglib %>`: 引入自定义或标准的标签库。 6. **JSP生命周期...

    jsp中html转换为servlet输出流小工具

    在Java Web开发中,JSP(JavaServer Pages)和Servlet是两种常见的技术,它们用于创建动态网页。JSP主要用于视图层,而Servlet则在控制层处理请求和响应。有时,开发者可能需要将HTML或者JSP页面的内容转换为Servlet...

    jsp.rar_JSP 在线客服_jsp_在线客服_在线客服 jsp_客服系统

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将静态HTML页面与动态Java代码相结合,以创建交互式的Web应用。JSP的核心概念是将HTML标记语言与Java代码分离,使得网页设计者和程序员能够更高效...

    有关与JSP技术的笔记

    JSP页面的主要特点在于其混合了静态HTML内容和动态生成的内容。当用户请求一个JSP页面时,服务器会根据用户的数据生成动态内容,并将其嵌入到静态内容中,最后返回给用户的是一份完整的HTML文档。这种方式使得开发者...

    html 转成图片

    HTML转图片是一种技术,它允许我们将网页或者HTML代码渲染成静态图像。这项技术在很多场景下都很有用,比如保存网页快照、制作社交媒体预览、生成图表或报告的可视化等。下面将详细介绍如何实现HTML转图片,以及相关...

    图片轮播效果

    HTML则是静态页面的基础,负责页面结构。通过将C#的业务逻辑转化为JSP的Java代码,再结合HTML和jQuery,可以实现跨平台的图片轮播功能。 在实际应用中,为了增强用户体验,图片轮播还可以加入以下特性: 1. 自动...

    大公司java面试题

    6. errorPage指定错误处理页面,全局错误通过web.xml配置,局部错误在JSP中声明。 7. JSP中使用JavaBeans通过<jsp:useBean>标签实例化,属性通过setProperty()和getProperty()操作。 8. JSP标记库如JSTL简化JSP开发...

    将java工程转为web工程(Myeclipse无法add web capabilities的时候)

    如果没有,需要手动创建,并将HTML、JSP、CSS、JavaScript等静态资源和Web相关的Java源代码移动到相应的目录。 2. **创建Web.xml**:在src/main/webapp/WEB-INF目录下创建web.xml文件,这是Web应用的部署描述符,...

    Velocity语法以及整合struts2总结

    2. **缓存管理**:Velocity支持缓存机制,可以缓存生成的静态页面,减少重复计算和数据库查询。 **五、Velocity替换JSP** 1. **简化视图**:JSP中的Java代码可能导致模板混乱,而Velocity将业务逻辑与视图完全分离...

    J2EE面试题(附答案)

    - `int`转`Integer`、`double`转`Double`等可以通过构造函数或`valueOf`静态方法实现。 - 包装类转基本数据类型则可以通过`intValue`、`doubleValue`等方法。 4. **日期操作** - 获取当前时间:使用`java.util....

    软件开发案例复习提纲

    2. **JSP include指令**:将一个文件包含到JSP页面中,如`<%@ include file = "/test.html" %>`。 3. **JSP转码代码**:用于处理不同编码格式的字符串,例如从ISO-8859-1转为GB2312。 4. **Servlet部署**:创建...

Global site tag (gtag.js) - Google Analytics