`
夜神月
  • 浏览: 24961 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jsp首页静态化

阅读更多
应用背景: 网站首页是网站访问频度最大的页面,同样这个页面承载的信息也是最多与广泛的。而这些信息对及时行要求也不是特别高(一般一天一个更新)。这种情况下应用缓存静态化比较适合。

代码流程:




关键代码:
本代码以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静态化,jsp静态化

    JSP静态化主要有以下几种实现方式: 1. **页面缓存**:当一个JSP页面被请求时,服务器会将其转换成HTML并存储在缓存中。下次相同请求到来时,直接从缓存中读取HTML,不再解析JSP,降低了服务器的计算开销。 2. **...

    jsp静态化和伪静态化

    在JSP中,实现伪静态化通常需要借助Web服务器(如Apache、Nginx)或应用服务器(如Tomcat)的URL重写模块,通过配置规则将看似静态的URL映射到实际的动态处理程序。 总的来说,静态化和伪静态化都是优化Web性能的...

    Jsp页面静态化(freemarker)教程及源码

    前台页面的静态化就有利于SEO,所以这个问题摆在了我的面前,在网上一搜,关于这方面的资料不是很多,又很杂,关于这方面的知识,越来或多的程序员将会碰到,原来项目中这部分静态化的功能主要由我来做的,现在我将...

    java JSP页面静态化总结_动态页面变为静态页面以减少访问数据库的次数提高速度.zip

    1. **JSP页面静态化原理**: - JSP页面静态化的核心思想是将原本需要服务器实时解析的动态内容,提前转换为静态HTML文件,存储在服务器上。这样,当用户请求这些页面时,服务器不再需要执行JSP脚本,而是直接返回...

    JSP页面静态化最普遍用的三种

    以下是JSP页面静态化最常用的三种方法的详细解释: 1. 模板替换法 这种方法是通过读取一个静态模板文件(如`template.htm`),然后使用Java代码动态替换其中的占位符,最终生成HTML文件。例如,`buildhtml.jsp`中的...

    jsp的页面静态化技术,很实用

    **JSP页面静态化技术详解** 在Web开发中,JavaServer Pages(JSP)是一种常见的动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,在高流量的网站中,为了提高性能和降低...

    jsp页面静态化

    实现JSP页面静态化的一种常见方法是利用JSP内置对象`out`,它是`JspWriter`的实例,用于将数据回写到客户端。我们可以通过创建自定义类,继承`JspWriter`并重写其输出方法,将数据写入到服务器上的一个本地文件,而...

    动态JSP页面静态化,html输出

    在Web开发领域,动态JSP页面静态化是一种常见的优化策略,其主要目的是提高网站的性能和用户体验。这一过程涉及到将原本由服务器动态生成的JSP页面转换为纯HTML页面,从而减少服务器处理请求的压力,加快页面加载...

    JSP页面静态化

    包括使用freemarker和velocity两种技术来实现静态化。压缩包里面的文件有说明文档,说得很仔细,特别适合入门级别的人参考。还有freemarker和velocity开发所需要的jar包和插件。

    首页静态化步骤

    在Web开发中,首页静态化是常见的性能优化手段。 首先,我们需要了解动态首页和静态首页的区别。动态首页是由服务器端的脚本(如PHP、JSP或ASP.NET)实时生成的,每次请求都会根据数据库中的数据动态生成页面内容。...

    jsp静态化总结(jsp2html)

    **一、JSP静态化的原理** JSP静态化的基本思路是将用户请求的JSP页面在首次访问时或定时任务中预先执行,生成不包含任何服务器端脚本的纯HTML页面,然后将这个HTML页面返回给客户端。这样,后续的请求就可以直接...

    JSP生成静态页面

    总的来说,JSP生成静态页面是提高网站效率的有效手段,但同时也需要谨慎处理静态化过程中的各种细节,以确保网站的正常运行和用户体验。在实际项目中,应结合具体需求和资源来选择合适的静态化策略。

    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)...

    JSP伪静态实现

    当用户访问伪静态化的URL时,服务器内部会将其转换为真实的动态URL进行处理,然后再返回给用户。在这个过程中,用户看到的是一个静态的URL,但实际上后台执行的是动态页面的操作。 #### 三、Tuckey URL Rewrite ...

    页面静态化实例,jsp转化成html

    3. **静态页面生成**:静态化过程中,我们需要在用户请求之前,或者在后台定期执行,将`index.jsp`的动态内容转换为HTML文件,例如生成`index.html`。这通常通过读取JSP,执行其中的Java代码,然后将结果写入HTML...

    jsp简单静态网页

    - **JSP生命周期**:包括翻译、编译、加载、初始化、服务和销毁六个阶段。 - **JSP元素**:包括指令(directives)、脚本元素(scriptlets)、表达式(expressions)和声明(declarations)。 **2. 静态网页概念*...

    freemarker把jsp静态化简单应用

    6. **JSP静态化** JSP静态化是指将原本动态生成的JSP页面转换为纯HTML页面,减少服务器端的计算负担,提高页面加载速度。在FreeMarker中,我们可以预先生成HTML页面并存储在服务器上,当用户请求时直接返回静态页面...

    jsp实现URL伪静态.rar

    这样,虽然用户看到的是静态化的URL,但实际处理请求的是JSP。 3. **路径解析** 在JSP页面中,我们需要解析URL中的路径信息,以获取动态数据。比如,从"/article/123.html"中提取出文章ID"123",然后根据这个ID从...

    jsp简单静态网页设计

    通常,这样的报告会涵盖JSP的生命周期,包括翻译阶段(将JSP转换为Servlet)、初始化阶段(Servlet实例化)和服务阶段(处理用户请求)。此外,它可能还会讨论如何使用JSP指令(如)、动作标签(如<jsp:include>)...

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

    静态化首页的优势主要体现在以下几个方面: 1. **速度优化**:静态HTML文件可以直接由Web服务器发送,无需解析脚本,因此加载速度更快,用户体验更好。 2. **减轻服务器负担**:由于无需执行服务器端的脚本,...

Global site tag (gtag.js) - Google Analytics