`

用servlet将JSP转换为静态页面

阅读更多
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

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;

public class toHtml extends HttpServlet
{

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
    String url="";
    String name="";
    
        ServletContext sc = getServletContext();
        
        String file_name=request.getParameter("file_name");// 你要访问的 jsp 文件 , 如 index.jsp
  // 则你访问这个 servlet 时加参数 . 如 http://localhost/toHtml?file_name=index

        url = "/"+file_name+".jsp";// 这是你要生成 HTML 的 jsp 文件 , 如 
                                   //http://localhost/index.jsp 的执行结果 .

        name="/home/resin/resin-2.1.6/doc/"+file_name+".htm";// 这是生成的 html 文件名 , 如 index.htm.
                
        RequestDispatcher rd = sc.getRequestDispatcher(url);
        
        final ByteArrayOutputStream os = new ByteArrayOutputStream();
        
        final ServletOutputStream stream = new ServletOutputStream()
        {
            public void write(byte[] data, int offset, int length)
            {
                os.write(data, offset, length);
            }

            public void write(int b) throws IOException
            {
                os.write(b);
            }
        };
        
        final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
        
        HttpServletResponse rep = new HttpServletResponseWrapper(response)
        {
            public ServletOutputStream getOutputStream()
            {
                return stream;
            }
            
            public PrintWriter getWriter()
            {
                return pw;
            }
        };
        rd.include(request, rep);
        pw.flush();       
        FileOutputStream fos = new FileOutputStream(name); // 把 jsp 输出的内容写到 xxx.htm
        os.writeTo(fos);
        fos.close();
        PrintWriter out=response.getWriter();
        out.print("<p align=center><font size=3 color=red> 首页已经成功生成! Andrew</font></p>");
    }
}

 

分享到:
评论

相关推荐

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

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

    用servlet将jsp文件内容转为html

    本文将详细介绍如何使用Servlet技术将JSP页面的内容转换为HTML格式,并保存到本地磁盘的过程。 #### 一、理解Servlet与JSP的基本概念 1. **Servlet**: - Servlet是一种Java服务器端应用程序接口(API),它定义了...

    JSP中把动态页面转换为静态页面.doc

    为了解决这个问题,一种常见的优化策略是将动态页面转换为静态页面。JSP(JavaServer Pages)是一种动态网页技术,通过将Java代码嵌入HTML中,可以在服务器端执行这些代码来生成动态内容。然而,动态页面每次请求都...

    JSP中把动态页面转换为静态页面

    在JSP中,将动态页面转换为静态页面是一种常见的优化技术,主要目的是提高网站的访问速度和降低服务器负载。动态页面通常需要服务器端执行代码,而静态页面则可以直接由Web服务器提供,无需额外的处理。以下是一些...

    JSP生成静态页面

    **JSP生成静态页面**是一种优化网站性能的技术,它通过将动态内容转化为静态HTML文件,减少服务器处理请求的负担,提高网页的加载速度。这种方式在高流量网站中尤其常见,因为静态页面可以被缓存,减少了数据库查询...

    Head First Servlet And JSP

    - **协同工作**:Servlet 可以处理业务逻辑并将数据传递给 JSP 页面,而 JSP 则负责呈现这些数据。 - **模型-视图-控制器 (MVC) 架构**:Servlet 通常扮演控制器的角色,负责处理输入数据并控制应用流程;JSP 则...

    jsp生成静态页面的方法

    本文将详细介绍如何利用JSP与Servlet技术实现动态页面到静态页面的转换。 #### 技术背景 - **JSP**:一种用于生成动态Web页面的技术,允许将HTML、CSS、JavaScript等静态内容与Java代码混合编写。 - **Servlet**:...

    servlet和jsp模板

    当JSP被首次访问时,Web容器会将其转换为Servlet类,然后编译和执行。 - 在执行过程中,JSP到Servlet的转换遵循JSP生命周期,包括翻译、编译、加载和初始化。转换后的Servlet负责处理请求和响应,而JSP的动态内容则...

    Servlet与JSP之间的关系

    JSP页面在首次被请求时,会被Web容器转换成一个Servlet类,然后编译并执行。在JSP中,可以通过内置对象如`request`、`response`、`session`等来处理请求和响应,同时可以使用JSP标签库(如JSTL)来增强其表达能力。 ...

    Servlet和JSP技术简述(英文翻译)

    JSP文件在服务器端被转换为Servlet,然后执行。JSP的主要优点在于它使HTML设计人员和Java程序员能够更有效地协作,因为HTML模板和Java逻辑可以在同一个文件中定义,但逻辑部分可以通过Java脚本元素或JSP标签进行隔离...

    JSP+Servlet系统 使用伪静态

    "JSP+Servlet系统 使用伪静态" 这个标题表明这是一个基于Java Web技术构建的系统,特别提到了"JSP"(JavaServer Pages)和"Servlet",它们是Java语言用于开发动态网页和服务的核心组件。"伪静态"则是指将动态URL转化...

    jsp静态化,jsp静态化

    在动态网页系统中,JSP页面通常需要经过服务器端的解释和执行,然后将结果发送到客户端。这个过程对服务器资源消耗较大,尤其是在高并发访问时。而JSP静态化就是将这些动态页面转换为纯HTML页面,从而减少服务器负担...

    JSP文件生成静态页面

    3. **生成静态页面**:一旦识别出JSP请求,过滤器可以读取JSP的内容,将其转换为HTML,并保存为静态文件。这通常通过Servlet的RequestDispatcher和ResponseOutputStream来实现。将JSP的内容写入到硬盘上的HTML文件,...

    servlet与jsp例子

    JSP在首次被请求时会被服务器转换为一个Servlet,然后编译并执行。这样做的好处是提高了开发效率,因为开发者可以专注于界面设计而不必关心底层的HTTP处理。 在这个例子中,项目可能包含以下组件: 1. **Servlets*...

    javax.servlet.jar与javax.servlet.jsp.jar

    - `javax.servlet.jsp.jar`则更多地用于展现层,将动态数据与静态HTML结合,生成动态网页。 ### 配置和部署 在Tomcat、Jetty等Servlet容器中,这些库通常已经内置,开发者不需要额外添加。但在其他不包含这些库的...

    jsp简单静态网页设计

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

    CORE SERVLET AND JSP(含代码,基础卷1)

    在服务器端,JSP会被转换为一个Servlet,然后编译执行。 在学习Servlet时,理解Servlet容器(如Tomcat)的角色至关重要。Servlet容器负责管理Servlet的生命周期,处理HTTP请求,并调用Servlet的相应方法。同时,...

    《Servlet与JSP核心编程(第1卷 第2版)》

    2. **页面编译**:JSP引擎将JSP页面转换为Servlet源代码,并编译成字节码文件。 3. **Servlet执行**:编译后的Servlet被加载到JSP引擎中执行。 4. **生成响应**:执行完成后生成动态网页内容,通过HTTP响应返回给...

    【免费】servlet和jsp学习指南-高清版

    当用户请求一个JSP页面时,Web服务器会将JSP转换为Servlet,然后编译并执行,生成HTML响应返回给浏览器。JSP有多种内置对象,如request、response、session、application等,它们提供了处理用户请求、发送响应、管理...

    Servlet和JSP教程.rar

    JSP(JavaServer Pages)是另一种Java Web技术,它允许开发者将静态HTML内容与Java代码结合,以创建动态网页。JSP页面由HTML或XML标签以及嵌入的Java代码组成。在服务器上运行时,JSP会被转换成一个Servlet类,然后...

Global site tag (gtag.js) - Google Analytics