如何将jsp页面转换成静态页面

如题所述

将jsp页面转换成静态页面的步骤:

1、在jsp页面中加入servlet.代码如下:

     

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,不包括扩展名 


        // 则你访问这个servlet时加参数.如http://localhost/test/toHtml?file_name=index 


        url = "/" + file_name + ".jsf";// 你要生成的页面的文件名。我的扩展名为jsf . 


        name = ConfConstants.CONTEXT_PATH+"\\"+ file_name + ".htm";// 这是生成的html文件名,如index.htm.文件名字与源文件名相同。扩展名为htm 


      //ConfConstants.CONTEXT_PATH为你的应用的上下文路径。 


        RequestDispatcher rd = sc.getRequestDispatcher(url); 


        final ByteArrayOutputStream ōs = 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 ōut = response.getWriter(); 

        out 

          .print("<p align=center><font size=3 color=red>页面已经成功生成!single<br>http://www.agilejava.org/space/? 233</font></p>"); 

       } 

      } 

2、配置web.xml 

<servlet> 

        <servlet-name>toHtml</servlet-name> 

        <servlet-class>mj.util.html.ToHtml</servlet-class>//你的servlet的类。 

       </servlet> 

       <servlet-mapping> 

        <servlet-name>toHtml</servlet-name> 

        <url-pattern>/toHtml</url-pattern> 

       </servlet-mapping> 

3、运行servlet。如:http://localhost:8080/test/toHtml?file_name=index 

在test项目的根目录下,生成了一个index.htm的静态文件。  

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-15
把JSP转换成HTML生成静态页面:
package com.simon.web;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
public class MakeHtml {
private static long star = 0;
private static long end = 0;
private static long ttime = 0;
// 返回html代码
private static String getHtmlCode(String httpUrl)//,int i, int j)
{
Date before = new Date();
star = before.getTime();
StringBuffer htmlCode = new StringBuffer();
try {
InputStream in;
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent","Mozilla/4.0");
connection.connect();
in = connection.getInputStream();
java.io.BufferedReader breader = new BufferedReader(new InputStreamReader(in ,
"GBK"));
String currentLine;
while((currentLine=breader.readLine())!=null){
htmlCode.append(currentLine);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
Date after = new Date();
end = after.getTime();
ttime = end-star ;
System.out.println("执行时间:"+ttime +"毫秒");
}
return htmlCode.toString();
}

// 存储文件
private static synchronized void writeHtml(String filePath,String info,String flag) {
PrintWriter pw = null;
try {
File writeFile = new File(filePath);
boolean isExit = writeFile.exists();
if (isExit != true) {
writeFile.createNewFile();
} else {
if (!flag.equals("NO")) {
writeFile.delete();
writeFile.createNewFile();
}
}
pw = new PrintWriter(new FileOutputStream(filePath, true));
pw.println(info);
pw.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}finally{
pw.close();
}
}
// 测试方法:
public static void main(String[] args) {
writeHtml(filePath,getHtmlCode(url,),flag);
}
第2个回答  2012-04-10
去掉jsp页面第一行的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>这句话即可,但是要把扩展名改成html,如果出现乱码, 修改一下编码就好了
第3个回答  2012-04-10
后缀名变为.html,然后把页面内的Java代码和jstl标签去掉就行了。
第4个回答  2012-04-13
jsp确实是从数据库里读出的数据,但是发过来的时候已经是静态信息了,所以你收到的信息是静态的,但是服务器端的网页是静态的。本回答被网友采纳

如何将jsp页面转换成静态页面
1、在jsp页面中加入servlet.代码如下: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 = r...

JSP中把动态页面转换为静态页面
另一个方法是不模拟 而是定制Response 把服务器返回的JSP响应输出到我们自己的Response中 就可以将响应快速写入Html文件 然后再发送给客户 而且 由于没有模拟请求 直接读取服务器响应速度非常快 截获Response的关键便是实现一个WrappedResponse 让服务器将响应写入我们的WrappedResponse中 这类似于一个代理模式 ...

动态网址(动态网址二维码怎么制作)
如果你的程序是自己写的或者不支持静态化,那么可以找技术人员帮你实现,实现静态化的难度并不是很大。动态URL静态化后,不是简单的将网址中的特殊符号去掉即可,还应该注意:(一)每个页面,只对应一个URL地址。使用asp.net开发的网页程序,使用URLRewriter.dll实现静态化。A.下载URLRewriter.rar,解压后...

怎么把jsp转换成静态页面! 在线等!!!
什么意思??jsp变成静态html页面后里面的scriplet代码全部失效,直接把<%%>之间的内容去掉,改个扩展名不就可以。浏览器通过服务器访问该jsp页面直接将源代码拷下另存为html也变成静态。

php如何实现静态化(php静态页面)
纯静态网站在网站中是怎么实现的? 纯静态的制作技术是需要先把网站的页面总结出来,分为多少个样式,然后把这些页面做成模板,生成的时候需要先读取源文件然后生成独立的以.html结尾的页面文件,所以说纯静态网站需要更大的空间,不过其实需要的空间也不会大多少的,尤其是对于中小型企业网站来说,从技术上来讲,大型网站想...

PHP网站如何纯静态化
而动态网站又是怎么进行静态处理的?页面静态化是指将动态页面变成html\/htm静态页面。动态页面一般由asp,php,jsp,.net等程序语言编写而成,非常便于管理。但是访问网页时还需要程序先处理一遍,所以导致访问速度相对较慢。而静态页面访问速度快,却又不便于管理。那么动态页面静态化即可以将两种页面的好处...

ASP生成静态页面什么是动态网页和静态网页
当用户发出指令,网页会向数据库索引相关信息,服务器随后将这些动态内容编译成HTML代码,再发送给用户浏览器。然而,这个过程可能会消耗几秒钟,尤其在用户数量增多时,页面加载速度会变慢,对服务器构成压力。因此,大型网站倾向于使用静态网页,它们直接以预编译的形式呈现,加载速度快,对搜索引擎也更友好...

在JSP中如何包含一个静态页面
JSP中的两种包含静态页面的方法第一种:include指令:当JSP转换成Servlet时引入指定文件 <%@ page contentType="text\/html; charset=GB2312" language="java" errorPage=""%> <%@ include file="head.jsp"%> <%@ include file="body.jsp"%> <%@ include file="tail.jsp"%>第二种:<jsp:...

做网站是否必须页面静态化?
页面静态化也就是说,将动态的网页地址(如asp、aspx、php、jsp)全部修改成静态的网页地址(html)。如把index.php修改成index.html、show.php?id=改成show.html?id=。这样做的好处是让百度蜘蛛能够更好的读懂你页面的内容,让网页能得到更好展示。让页面的加载速度更加快了,也减少了服务器的压力...

如何将动态网页地址转换成静态地址
用域名转换软件,网上有免费的

相似回答