应用背景: 网站首页是网站访问频度最大的页面,同样这个页面承载的信息也是最多与广泛的。而这些信息对及时行要求也不是特别高(一般一天一个更新)。这种情况下应用缓存静态化比较适合。
代码流程:
关键代码:
本代码以jsp为例,其实还可以用freemarker等模板语言,但本人认为页面静态化属于后期优化工作,目前jsp应用要比freemarker要广泛,所以jsp更具有意义。
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
//实际中这个路径会根据参数在一定规则的计算下得到,保证其唯一性
File f = new File("/htmls/test.html");
if (!f.exists())
{
//加工数据,实际中会调用service
request.setAttribute("name",
"测试");
String content = JspUtil.getHtml(request, response,
"/index.jsp");
FileUtil.save(content, "/htmls", null, "test.html");
}
StringBuffer sb = new StringBuffer();
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String str = null;
while ((str = br.readLine()) != null)
{
sb.append(str);
}
fr.close();
br.close();
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.print(sb.toString());
out.flush();
}
public class JspUtil
{
public static String getHtml(HttpServletRequest request,
HttpServletResponse response, String jsp) throws ServletException,
IOException
{
FileCaptureResponseWrapper fileCaptureResponseWrapper = new FileCaptureResponseWrapper(response);
request.getRequestDispatcher(jsp).forward(request,
fileCaptureResponseWrapper);
return fileCaptureResponseWrapper.toString();
}
public static class FileCaptureResponseWrapper extends
HttpServletResponseWrapper
{
private CharArrayWriter writer;
public FileCaptureResponseWrapper(HttpServletResponse response)
{
super(response);
this.writer = new CharArrayWriter();
}
public PrintWriter getWriter()
{
return new PrintWriter(writer);
}
@Override
public String toString()
{
String result = writer.toString();
writer.flush();
writer.close();
return result;
}
}
}
后话:得到html代码后,可以存储到磁盘上,同样也可以应用缓存框架等工具,具体可以看具体情况而定。至于更新,可以设置时间更新,比如一天一次。同样也可以手动更新,比如编辑有一个即时更新首页的需要,这种情况最好手动更新啦。具体做法就是把存储的html数据清空就可以了!
- 大小: 25.7 KB
分享到:
相关推荐
JSP静态化主要有以下几种实现方式: 1. **页面缓存**:当一个JSP页面被请求时,服务器会将其转换成HTML并存储在缓存中。下次相同请求到来时,直接从缓存中读取HTML,不再解析JSP,降低了服务器的计算开销。 2. **...
在JSP中,实现伪静态化通常需要借助Web服务器(如Apache、Nginx)或应用服务器(如Tomcat)的URL重写模块,通过配置规则将看似静态的URL映射到实际的动态处理程序。 总的来说,静态化和伪静态化都是优化Web性能的...
前台页面的静态化就有利于SEO,所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,现在我将...
1. **JSP页面静态化原理**: - JSP页面静态化的核心思想是将原本需要服务器实时解析的动态内容,提前转换为静态HTML文件,存储在服务器上。这样,当用户请求这些页面时,服务器不再需要执行JSP脚本,而是直接返回...
以下是JSP页面静态化最常用的三种方法的详细解释: 1. 模板替换法 这种方法是通过读取一个静态模板文件(如`template.htm`),然后使用Java代码动态替换其中的占位符,最终生成HTML文件。例如,`buildhtml.jsp`中的...
**JSP页面静态化技术详解** 在Web开发中,JavaServer Pages(JSP)是一种常见的动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,在高流量的网站中,为了提高性能和降低...
实现JSP页面静态化的一种常见方法是利用JSP内置对象`out`,它是`JspWriter`的实例,用于将数据回写到客户端。我们可以通过创建自定义类,继承`JspWriter`并重写其输出方法,将数据写入到服务器上的一个本地文件,而...
在Web开发领域,动态JSP页面静态化是一种常见的优化策略,其主要目的是提高网站的性能和用户体验。这一过程涉及到将原本由服务器动态生成的JSP页面转换为纯HTML页面,从而减少服务器处理请求的压力,加快页面加载...
包括使用freemarker和velocity两种技术来实现静态化。压缩包里面的文件有说明文档,说得很仔细,特别适合入门级别的人参考。还有freemarker和velocity开发所需要的jar包和插件。
在Web开发中,首页静态化是常见的性能优化手段。 首先,我们需要了解动态首页和静态首页的区别。动态首页是由服务器端的脚本(如PHP、JSP或ASP.NET)实时生成的,每次请求都会根据数据库中的数据动态生成页面内容。...
**一、JSP静态化的原理** JSP静态化的基本思路是将用户请求的JSP页面在首次访问时或定时任务中预先执行,生成不包含任何服务器端脚本的纯HTML页面,然后将这个HTML页面返回给客户端。这样,后续的请求就可以直接...
总的来说,JSP生成静态页面是提高网站效率的有效手段,但同时也需要谨慎处理静态化过程中的各种细节,以确保网站的正常运行和用户体验。在实际项目中,应结合具体需求和资源来选择合适的静态化策略。
/jsp-rewrite/WebRoot/WEB-INF/urlrewrite.xml sql文件: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `userpwd` varchar(20)...
当用户访问伪静态化的URL时,服务器内部会将其转换为真实的动态URL进行处理,然后再返回给用户。在这个过程中,用户看到的是一个静态的URL,但实际上后台执行的是动态页面的操作。 #### 三、Tuckey URL Rewrite ...
3. **静态页面生成**:静态化过程中,我们需要在用户请求之前,或者在后台定期执行,将`index.jsp`的动态内容转换为HTML文件,例如生成`index.html`。这通常通过读取JSP,执行其中的Java代码,然后将结果写入HTML...
- **JSP生命周期**:包括翻译、编译、加载、初始化、服务和销毁六个阶段。 - **JSP元素**:包括指令(directives)、脚本元素(scriptlets)、表达式(expressions)和声明(declarations)。 **2. 静态网页概念*...
6. **JSP静态化** JSP静态化是指将原本动态生成的JSP页面转换为纯HTML页面,减少服务器端的计算负担,提高页面加载速度。在FreeMarker中,我们可以预先生成HTML页面并存储在服务器上,当用户请求时直接返回静态页面...
这样,虽然用户看到的是静态化的URL,但实际处理请求的是JSP。 3. **路径解析** 在JSP页面中,我们需要解析URL中的路径信息,以获取动态数据。比如,从"/article/123.html"中提取出文章ID"123",然后根据这个ID从...
通常,这样的报告会涵盖JSP的生命周期,包括翻译阶段(将JSP转换为Servlet)、初始化阶段(Servlet实例化)和服务阶段(处理用户请求)。此外,它可能还会讨论如何使用JSP指令(如)、动作标签(如<jsp:include>)...
静态化首页的优势主要体现在以下几个方面: 1. **速度优化**:静态HTML文件可以直接由Web服务器发送,无需解析脚本,因此加载速度更快,用户体验更好。 2. **减轻服务器负担**:由于无需执行服务器端的脚本,...