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>");
}
}
分享到:
相关推荐
5. 链接更新:如果动态页面包含其他动态链接,需要修改为静态页面的URL,确保页面间的导航正常。 三、实现步骤 1. 创建Servlet:编写一个Servlet,配置在web.xml中,设定URL映射规则,使得特定的JSP请求会被这个...
本文将详细介绍如何使用Servlet技术将JSP页面的内容转换为HTML格式,并保存到本地磁盘的过程。 #### 一、理解Servlet与JSP的基本概念 1. **Servlet**: - Servlet是一种Java服务器端应用程序接口(API),它定义了...
为了解决这个问题,一种常见的优化策略是将动态页面转换为静态页面。JSP(JavaServer Pages)是一种动态网页技术,通过将Java代码嵌入HTML中,可以在服务器端执行这些代码来生成动态内容。然而,动态页面每次请求都...
在JSP中,将动态页面转换为静态页面是一种常见的优化技术,主要目的是提高网站的访问速度和降低服务器负载。动态页面通常需要服务器端执行代码,而静态页面则可以直接由Web服务器提供,无需额外的处理。以下是一些...
**JSP生成静态页面**是一种优化网站性能的技术,它通过将动态内容转化为静态HTML文件,减少服务器处理请求的负担,提高网页的加载速度。这种方式在高流量网站中尤其常见,因为静态页面可以被缓存,减少了数据库查询...
- **协同工作**:Servlet 可以处理业务逻辑并将数据传递给 JSP 页面,而 JSP 则负责呈现这些数据。 - **模型-视图-控制器 (MVC) 架构**:Servlet 通常扮演控制器的角色,负责处理输入数据并控制应用流程;JSP 则...
本文将详细介绍如何利用JSP与Servlet技术实现动态页面到静态页面的转换。 #### 技术背景 - **JSP**:一种用于生成动态Web页面的技术,允许将HTML、CSS、JavaScript等静态内容与Java代码混合编写。 - **Servlet**:...
当JSP被首次访问时,Web容器会将其转换为Servlet类,然后编译和执行。 - 在执行过程中,JSP到Servlet的转换遵循JSP生命周期,包括翻译、编译、加载和初始化。转换后的Servlet负责处理请求和响应,而JSP的动态内容则...
JSP页面在首次被请求时,会被Web容器转换成一个Servlet类,然后编译并执行。在JSP中,可以通过内置对象如`request`、`response`、`session`等来处理请求和响应,同时可以使用JSP标签库(如JSTL)来增强其表达能力。 ...
JSP文件在服务器端被转换为Servlet,然后执行。JSP的主要优点在于它使HTML设计人员和Java程序员能够更有效地协作,因为HTML模板和Java逻辑可以在同一个文件中定义,但逻辑部分可以通过Java脚本元素或JSP标签进行隔离...
"JSP+Servlet系统 使用伪静态" 这个标题表明这是一个基于Java Web技术构建的系统,特别提到了"JSP"(JavaServer Pages)和"Servlet",它们是Java语言用于开发动态网页和服务的核心组件。"伪静态"则是指将动态URL转化...
在动态网页系统中,JSP页面通常需要经过服务器端的解释和执行,然后将结果发送到客户端。这个过程对服务器资源消耗较大,尤其是在高并发访问时。而JSP静态化就是将这些动态页面转换为纯HTML页面,从而减少服务器负担...
3. **生成静态页面**:一旦识别出JSP请求,过滤器可以读取JSP的内容,将其转换为HTML,并保存为静态文件。这通常通过Servlet的RequestDispatcher和ResponseOutputStream来实现。将JSP的内容写入到硬盘上的HTML文件,...
JSP在首次被请求时会被服务器转换为一个Servlet,然后编译并执行。这样做的好处是提高了开发效率,因为开发者可以专注于界面设计而不必关心底层的HTTP处理。 在这个例子中,项目可能包含以下组件: 1. **Servlets*...
- `javax.servlet.jsp.jar`则更多地用于展现层,将动态数据与静态HTML结合,生成动态网页。 ### 配置和部署 在Tomcat、Jetty等Servlet容器中,这些库通常已经内置,开发者不需要额外添加。但在其他不包含这些库的...
当服务器接收到对JSP页面的请求时,会将其转换为一个Servlet,然后执行并返回响应。 **2. Servlet API** Servlet API是Java Web开发的核心组件,它定义了服务器端Java应用程序(Servlet)与Web服务器之间的接口规范...
通常,这样的报告会涵盖JSP的生命周期,包括翻译阶段(将JSP转换为Servlet)、初始化阶段(Servlet实例化)和服务阶段(处理用户请求)。此外,它可能还会讨论如何使用JSP指令(如)、动作标签(如<jsp:include>)...
在服务器端,JSP会被转换为一个Servlet,然后编译执行。 在学习Servlet时,理解Servlet容器(如Tomcat)的角色至关重要。Servlet容器负责管理Servlet的生命周期,处理HTTP请求,并调用Servlet的相应方法。同时,...
2. **页面编译**:JSP引擎将JSP页面转换为Servlet源代码,并编译成字节码文件。 3. **Servlet执行**:编译后的Servlet被加载到JSP引擎中执行。 4. **生成响应**:执行完成后生成动态网页内容,通过HTTP响应返回给...
当用户请求一个JSP页面时,Web服务器会将JSP转换为Servlet,然后编译并执行,生成HTML响应返回给浏览器。JSP有多种内置对象,如request、response、session、application等,它们提供了处理用户请求、发送响应、管理...