java 生成html页面二种方法

第一种方法相对很简单就是利用java去访问以jsp教程结束的动态页面,然后获取其由服务器传下的html页面进行保存,这样适合于少数的页面更新,不适合大批量的如新闻系统更新了,我们就可以利用第二种方法了。

package com.tgdh.project.util;

import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.outputstream;
import java.net.httpurlconnection;
import java.net.url;

public class createhtml {
    public static void main(string[] args) throws ioexception {
        createhtml(
                "http://192.168.1.200:8080/navigation/shoppingui.action?id=26",
                "d:abc.html");
    }

    public static void createhtml(string url, string filename)
            throws ioexception {
        url urlc = new url(url);

        httpurlconnection connection = (httpurlconnection) urlc
                .openconnection();
        inputstream ips教程 = connection.getinputstream();
        fileoutputstream fos = new fileoutputstream(filename);
        challage(ips, fos);
        ips.close();
        fos.close();
    }

    private static void challage(inputstream ips, outputstream ops)
            throws ioexception {
        byte[] contents = new byte[1024];
        int len = 0;
        while ((len = ips.read(contents)) != -1) {
            ops.write(contents, 0, len);
        }
    }

}

下面再看一个简单应用方法

第一步,加入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  = 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>");
       }
      }

      第二步、配置你的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>

      第三步、运行servlet。如:http://localhost:8080/test/tohtml?file_name=index      

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

时间: 2024-10-31 16:04:10

java 生成html页面二种方法的相关文章

java发送url请求获取返回值的二种方法_java

下面提供二种方法会使用java发送url请求,并获取服务器返回的值 第一种方法: 复制代码 代码如下: import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFor

java解析xml二种方法

java解析xml二种方法 配置文件为: <?xml version="1.0" encoding="utf-8"?> <config>     <point name="test1">         <name>zhang3</name>         <address>abcdefg</address>         <email>a@b.c

.net 生成静态页几种方法

.net 生成静态页几种方法 方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { Sy

Java获取随机数的3种方法_java

主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.random()*(10-1+1)) 从1到10的int型随数 方法2 获得随机数 for (int i=0;i<30;i++) {System.out.println((int)(1+Math.random()*10));} (int)(1+Math.random()*10) 通过java.Math包的ra

C#中获取、生成随机数的三种方法

  这篇文章主要介绍了C#中获取.生成随机数的三种方法,本文讲解了Random 类生成法.Guid 类生成法以及RNGCryptoServiceProvider 类生成法,需要的朋友可以参考下 随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 代码如下: Random rd = new R

java环境变量配置四种方法

原文:java环境变量配置四种方法        Java编程首要工作就是安装JDK(Java Development Kit).一通"NEXT"点完安装后就是最重要的环境变量设置了.也许有人会问为什么要设置环境变量,要理解这点,首先要明白环境变量的作用.环境变量可以简单的理解为路径导向.例如:Windows里面的临时文件夹存放的路径导向.当要访问此类文件时可根据此环境变量找到它的存放目录.像下面讲的CLASSPATH变量是为了在我们输入Java命令如javac等的时候不用敲入它的路径

java 字符串分割的三种方法(总结)_java

最近在项目中遇到一个小问题,一个字符串分割成一个数组,类似String str="aaa,bbb,ccc"; 然后以","为分割符,将其分割成一个数组,用什么方法去实现呢? 第一种方法: 可能一下子就会想到使用split()方法,用split()方法实现是最方便的,但是它的效率比较低 第二种方法: 使用效率较高的StringTokenizer类分割字符串,StringTokenizer类是JDK中提供的专门用来处理字符串分割子串的工具类.它的构造函数如下: publ

MySQL使用二进制日志来恢复数据二种方法

MySQL使用二进制日志来恢复数据二种方法 如果MySQL服务器启用了二进制日志,你可以使用mysql教程binlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据.关于启用二进制日志的信息,参见5.11.3节,"二进制日志".对于 mysqlbinlog的详细信息,"mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即m

Java读取Map的两种方法与对比_java

前言 在java中遍历Map有不少的方法.这篇文章我们就来看一下Java读取Map的两种方法以及这两种方法的对比. 一. 遍历Map方法A Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = en