来自 计算机编程 2020-01-31 19:06 的文章
当前位置: 澳门威尼斯人平台 > 计算机编程 > 正文

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

本文实例讲述了jsp实现将动态网页转换成静态页面的方法。分享给大家供大家参考。具体如下:

复制代码 代码如下:
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

静态导入: <%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet

一、实现原因

如果我可以将jsp动态网页转换成静态页面,那么访问的时候就不需要频繁的访问数据库了。

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

动态导入:<jsp:include>(尖括号中间没有空格):所有代码分别处理,在页面被请求的时候才编译,被编译成多个servlet,页面语法相对独立,处理完成之后再将代码的显示结果组合进来。

  1.网站访问量过大,导致服务器压力加大以及数据库数据交换频繁。生成静态页面提供访问以缓解压力。

jsp 显示内容缓存技巧

public class toHtml extends HttpServlet
{

JSP中的两种包含页面的方法

  2.静态页面是动态页面的备份,若动态页面出现异常,静态页面可以暂时替代。

前段时间做自己社区的论坛,在jive 的基础上做一个页面显示所有论坛的帖子,可以称之为总版,模仿forum 类的接口做个superforum 并且实现cachable,不过因为这个页面刷新量比较大,虽然被cache 了,我还是想办法进行页面的缓存,感觉用jsp 产生的html静态内容当缓存,页面访问速度应该有所提高。

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
    String url="";
    String name="";

第一种:include指令:当JSP转换成Servlet时引入指定文件
第二种:<jsp:include>动作元素:当JSP页面被请求时引入指定文件

 

首先想到的一种办法,是采用java.net 的urlconnection 把服务器上的jsp 抓过来做缓存,不过我觉得这样做太见外了,自己服务器上的东西,为何要用http 去访问.于是想另外一个办法,把jsp 的out 对象的输出控制到自己希望的地方.比如输出到静态文件,又或者保存成全局的字符串变量.这样的话,浏览就不需要执行jsp,只是浏览该html 了.仅仅在数据有更新的时候进行一次update 操作,把jsp 重新输出为html.

        ServletContext sc = getServletContext();

总结

二、使用场合

我觉得,浏览事件比数据插入或更新发生的次数多的时候.不妨试试这个办法来提高页面访问速度.

        String file_name=request.getParameter("file_name");//你要访问的jsp文件,如index.jsp
  //则你访问这个servlet时加参数.如

对于静态包含,<%@include%>,中包含的文件(无论html文件还是jsp文件),只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。

  当某个页面访问量很大,且数据不经常变动适合转换为html存储。如网站首页,新闻文章页等

整件事情有点像把jsp 当作模板,生成静态的html 页面.

        url = "/"+file_name+".jsp";//这是你要生成HTML的jsp文件,如
                                   //.

而对于动态包含<jsp:incude>,如果被包含文件是动态的,那么就会生成两个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信(包含的jsp是一个完整的文件有html、body等标签)。如果被包含的文件是静态的,那么这种情况和<%@include>就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信

 

本文由澳门威尼斯人平台发布于计算机编程,转载请注明出处:jsp实现将动态网页转换成静态页面的方法

关键词: