如何将动态页面jsp转换为html静态的网页呢!?

时间:2022-01-11 08:50:07
最近,上网无意间发现,有很多网站的明明是 jsp或者是asp.net写出来,但结尾都是html静态页面。
关于静态页面的好处,我不想多阐述,但如何将动态处理的jsp页面,处理为 html静态页面。
这个问题,一直都在困扰我。
刚开始接触jsp时,本人都是在servlet中使用out输出。这个问题就出现了,不好使用css+div修饰页面,过于单调。
希望各位高手指点一二。
如果有这个包就更好~~ 万分感谢!

24 个解决方案

#1


freemark

#2


上面的打错了,像FreeMarker这样的模板语言都可以的

#3


up...

#4


听说过Html页面可以转为Jsp页面!
对于这个吗!
wo也想知道!
还得请教高手啊!
!!!!!

#5


学习

#6


将后缀名一改就行了 

#7


一般不都是先设计页面(html)再去实现(JSP)的吗 ?

#8


呵,JSP放在容器里执行
转到客户端就成了HTML格式的文件了
只要把源代码存为HTML的就可以了

#9


那是假象,现在的网站都是用框架(过滤器)开发的 
其实,后面的后缀名是可以再框架里定义的,你访问的看似是html文件,其实在服务器端首先经过过滤器转成后台真正的jsp页面的

#10


哈哈,看了这么多无聊的发的帖子,真是急,还是我说两句,转成html方法很多,这里我给个小例子,不要告诉我你看不懂
是servelt的,也不要告诉我你不懂用。
package SystemTools;

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 UrlToHtml extends  HttpServlet  {
private static final long serialVersionUID = -3616674121206024906L;

//public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  public void jsptohtml(HttpServletRequest request, HttpServletResponse response )throws ServletException, IOException{
//  String bh=request.getParameter("bh");           
ServletContext sc = getServletContext();
String url = "www.163.com"; // jsp的路径
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("d:\\index.html"); // 把jsp输出的内容写到d:\test.htm
os.writeTo(fos);
fos.close();
}
}

这段代码是我以前的csdn网友给我提供的,效果不错,都有6年的历史了,现在放出来,也谢谢以前不知名的网友

#11


经典

#12


我有一点不明白的是为什么要用final来定义

#13


   html可以看成String 对象,java最后交给浏览器的,肯定是html格式的String

#14


改后缀名啊,要么你运行那个页面,然后另存为啊。

#15


这个问题也很疑惑,期待高手解答!

#16


本人真的看不懂哦 如何将动态页面jsp转换为html静态的网页呢!?

#17


呵呵,本人的理解就是去访问一个动态的页面,然后他会返回一堆文本,也就是HTML语言之类的,把这些文本放在一个新的文件中,后缀是html就行了。貌似这样就是动态转换成静态了。

#18


http://blog.csdn.net/java2000_net/archive/2008/12/21/3561234.aspx

#19


Java群  加108363309

#20


模板静态化技术

#21


那些页面根本就不是写个 JSP 然后再很做作地去转成 HTML 的,如果是真正的 HTML 是在后台数据录进去之后直接生成 HTML 文件的,不需要通过 JSP 再倒一下手。

一般使用模板工具来做这些事情,比如:Velocity, FreeMarker 等。

#22


有的网站其实就是用了urlrewrite伪静态化了下的

#23


FreeMarker 可以做到吧。

#24


关注中,很想知道是怎么弄的

#1


freemark

#2


上面的打错了,像FreeMarker这样的模板语言都可以的

#3


up...

#4


听说过Html页面可以转为Jsp页面!
对于这个吗!
wo也想知道!
还得请教高手啊!
!!!!!

#5


学习

#6


将后缀名一改就行了 

#7


一般不都是先设计页面(html)再去实现(JSP)的吗 ?

#8


呵,JSP放在容器里执行
转到客户端就成了HTML格式的文件了
只要把源代码存为HTML的就可以了

#9


那是假象,现在的网站都是用框架(过滤器)开发的 
其实,后面的后缀名是可以再框架里定义的,你访问的看似是html文件,其实在服务器端首先经过过滤器转成后台真正的jsp页面的

#10


哈哈,看了这么多无聊的发的帖子,真是急,还是我说两句,转成html方法很多,这里我给个小例子,不要告诉我你看不懂
是servelt的,也不要告诉我你不懂用。
package SystemTools;

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 UrlToHtml extends  HttpServlet  {
private static final long serialVersionUID = -3616674121206024906L;

//public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  public void jsptohtml(HttpServletRequest request, HttpServletResponse response )throws ServletException, IOException{
//  String bh=request.getParameter("bh");           
ServletContext sc = getServletContext();
String url = "www.163.com"; // jsp的路径
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("d:\\index.html"); // 把jsp输出的内容写到d:\test.htm
os.writeTo(fos);
fos.close();
}
}

这段代码是我以前的csdn网友给我提供的,效果不错,都有6年的历史了,现在放出来,也谢谢以前不知名的网友

#11


经典

#12


我有一点不明白的是为什么要用final来定义

#13


   html可以看成String 对象,java最后交给浏览器的,肯定是html格式的String

#14


改后缀名啊,要么你运行那个页面,然后另存为啊。

#15


这个问题也很疑惑,期待高手解答!

#16


本人真的看不懂哦 如何将动态页面jsp转换为html静态的网页呢!?

#17


呵呵,本人的理解就是去访问一个动态的页面,然后他会返回一堆文本,也就是HTML语言之类的,把这些文本放在一个新的文件中,后缀是html就行了。貌似这样就是动态转换成静态了。

#18


http://blog.csdn.net/java2000_net/archive/2008/12/21/3561234.aspx

#19


Java群  加108363309

#20


模板静态化技术

#21


那些页面根本就不是写个 JSP 然后再很做作地去转成 HTML 的,如果是真正的 HTML 是在后台数据录进去之后直接生成 HTML 文件的,不需要通过 JSP 再倒一下手。

一般使用模板工具来做这些事情,比如:Velocity, FreeMarker 等。

#22


有的网站其实就是用了urlrewrite伪静态化了下的

#23


FreeMarker 可以做到吧。

#24


关注中,很想知道是怎么弄的