java实现生成本地静态页面

生活 2019-04-13 13:19:59 4644

本文收集整理关于java实现生成本地静态页面的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:java抓取网页内容--生成静态页面 ?
  • Q2:求JAVA生成静态页面 并且给出实例 100分送上
  • Q3:新闻发布时候的静态页面生成 java
  • Q4:java做根据模板来生成静态页面的功能
  • Q1:java抓取网页内容--生成静态页面 ?

    用jsoup 或者htmlpaser ,前者有点js使用的影子,关键是你怎么整理数据。

    Q2:求JAVA生成静态页面 并且给出实例 100分送上

    java输出静态页面与框架没有任何关系,也无需特殊配置,非常简单的...= =!
    以下是我写的例子,希望对你有帮助!公司不给开Q,百度Hi即可!
    import javax.servlet.http.HttpServletRequest;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Date;
    import java.net.URL;
    import java.net.URLConnection;
    import java.io.*;
    public class JspToHtml {
    private static String title ="标题测试";
    private static String context ="标题测试";
    private static String editer ="标题测试";
    /**
    * 根据本地模板生成静态页面
    * @param JspFilejsp路经
    * @param HtmlFile html路经
    * @return
    */
    public static boolean JspToHtmlFile(String filePath, String HtmlFile) {
    String str = "";
    long beginDate = (new Date()).getTime();
    try {
    String tempStr = "";
    FileInputStream is = new FileInputStream(filePath);//读取模块文件
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    while ((tempStr = br.readLine()) != null)
    str = str + tempStr ;
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    return false;
    }
    try {
    str = str.replaceAll("###title###",
    title);
    str = str.replaceAll("###content###",
    context);
    str = str.replaceAll("###author###",
    editer);//替换掉模块中相应的地方
    File f = new File(HtmlFile);
    BufferedWriter o = new BufferedWriter(new FileWriter(f));
    o.write(str);
    o.close();
    System.out.println("共用时:" + ((new Date()).getTime() - beginDate) + "ms");
    } catch (IOException e) {
    e.printStackTrace();
    return false;
    }
    return true;
    }
    /**
    * 根据url生成静态页面
    *
    * @param u动态文件路经 如:http://www.163.com/x.jsp
    * @param path 文件存放路经如:x:\abc\bbb.html
    * @return
    */
    public static boolean JspToHtmlByURL(String u, String path) {
    //从utl中读取html存为str
    String str = "";
    try {
    URL url = new URL(u);
    URLConnection uc = url.openConnection();
    InputStream is = uc.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    while (br.ready()) {
    str += br.readLine() + "\n";
    }
    is.close();
    //写入文件
    File f = new File(path);
    BufferedWriter o = new BufferedWriter(new FileWriter(f));
    o.write(str);
    o.close();
    str = "";
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    return false;
    }
    }
    /**
    * 根据url生成静态页面
    *
    * @param url 动态文件路经 如:http://www.163.com/x.jsp
    * @return d
    */
    public static StringBuffer getHtmlTextByURL(String url) {
    //从utl中读取html存为str
    StringBuffer sb = new StringBuffer();
    try {
    URL u = new URL(url);
    URLConnection uc = u.openConnection();
    InputStream is = uc.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    while (br.ready()) {
    sb.append(br.readLine() + "\n");
    }
    is.close();
    return sb;
    } catch (Exception e) {
    e.printStackTrace();
    return sb;
    }
    }
    /**
    * 测试main 函数
    *
    * @param arg
    */
    public static void main(String[] arg) {
    long begin = System.currentTimeMillis();
    //循环生成20个html文件
    for (int k = 0; k < 20; k++) {
    String url = "E:\workspace\oa\golatel\utils\Temp\mb.htm";//模板文件地址
    String savepath = "d:/" + k + ".html";//生成文件地址
    JspToHtmlFile(url, savepath);
    }
    System.out.println("用时:" + (System.currentTimeMillis() - begin) + "ms");
    }
    }
    //模板文件名称 leon.html


    ###title###
    <meta http- equiv="Content-Type" content="text/html; charset=gb2312">
    <link href="https://www.yijitao.com/css.css" rel=stylesheet type=text/css>

    <body>

    cellspacing="2">








    ###title###

    作者:###author###

    ###content###


    WWw.yIJi☆taO.CoM

    Q3:新闻发布时候的静态页面生成 java

    给你思路:
    1、使用java+freeMarker实现。
    2、使用java的IO写HTML文档。
    3、使用URLRewriter将*.jsp伪装成*.html来访问。
    4、将html的内容存入数据库中,在运行时读取出来在服务端输出成html。最后把请求转至html第一种最简单,不知道你用过没有。简单的说,就是你想生成一个动态的html,你只需要html页面的静态部分写死,作为模板,动态的数据部分,用java的Map封装起来,然后交给freeMarker,它会帮你写入html文档中。最后给你生成你想要的html文档。这个html文档具有你的静态结构,加上动态数据。我给你个示例。
    import java.io.ByteArrayOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.Locale;import java.util.Map;
    import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.Template;
    /** * 使用freeMarker模板生成报表的动态数据代码 * @author wzj * 2013-09-18 */public class ReportFreeMarker { private static Configuration cfg = new Configuration(); private static final String FTL_FILE = "chart_templet_";static {try {cfg.setDefaultEncoding("utf-8");cfg.setClassForTemplateLoading(ReportFreeMarker.class, "");cfg.setObjectWrapper(new DefaultObjectWrapper());} catch (Exception e) {e.printStackTrace();} } // public static void main(String[] args) throws Exception {// new ReportFreeMarker().execute("chart_templet.ftl");//}
    /*** 根据type来决定使用哪个模板文件,生成对应的柱图,饼图(1-柱图,2-饼图)* @param parameterMap 参数集* @param type图表类别* @return* @throws Exception*/ public String buildChartCode(Map parameterMap, int type) throws Exception {Template t = cfg.getTemplate(FTL_FILE + type + ".ftl");t.setEncoding("utf-8");String result = null;Writer out = null;ByteArrayOutputStream bos = new ByteArrayOutputStream();try {out = new OutputStreamWriter(bos);t.process(parameterMap, out);out.flush();result = new String(bos.toByteArray());} catch (Exception e) {e.printStackTrace();throw e;} finally {if (out != null) {out.close();}if ( bos != null ) bos.close();bos = null;}return result;
    //File tmp = new File("./tmp.xml"); //写成tmp.xml测试//if ( tmp.exists() ) tmp.delete();//Writer out = null;//try {//out = new OutputStreamWriter(new FileOutputStream(tmp), "utf-8");//t.process(root, out);//out.flush();//} catch (Exception e) {//e.printStackTrace();//throw e;//} finally {//if (out != null) {//out.close();//}//} }}
    //下面是调用ReportFreeMarker marker = new ReportFreeMarker();Map root = new HashMap();
    root.put(CHART_XLIST, xlist);root.put(CHART_YLIST, ylist);String content = null;try {content = marker.buildChartCode(root, chartType);//根据模板生成图表xml代码} catch (Exception e) {e.printStackTrace();throw new ReportException(ERROR_FREEMARKER_FAILED + "(" + e.getMessage() + ")");}这样,你最后可以得到一个包含动态数据的静态html页面的代码,保存成一个文件。////在html中(模板)可以这样写
    <body>
    <#list ylist as item>




    Q4:java做根据模板来生成静态页面的功能

    可以用velocity的功能实现

    相关文章
    实现自我人生价值 作文2019-01-13
    如何实现自己的理想3002019-01-13
    企业如何实现技术创新2019-01-17
    如何实现人生价值思修2019-01-27
    java中实现多线程的两种方法2019-02-18
    客户端服务端实现通信2019-02-22
    android 控件动画效果实现2019-02-26
    多线程有几种实现方法2019-02-28
    session实现购物车原理2019-03-21
    c语言实现学生成绩管理系统2019-03-28