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

 我来答
育知同创教育
2016-06-03 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

将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的静态文件。  

千锋教育
2015-12-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
把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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友60ba0a5
2012-04-10 · TA获得超过231个赞
知道小有建树答主
回答量:544
采纳率:100%
帮助的人:210万
展开全部
去掉jsp页面第一行的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>这句话即可,但是要把扩展名改成html,如果出现乱码, 修改一下编码就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq424301187
2012-04-10
知道答主
回答量:15
采纳率:0%
帮助的人:10.4万
展开全部
后缀名变为.html,然后把页面内的Java代码和jstl标签去掉就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ant_szc
2012-04-13 · TA获得超过342个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:234万
展开全部
jsp确实是从数据库里读出的数据,但是发过来的时候已经是静态信息了,所以你收到的信息是静态的,但是服务器端的网页是静态的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式