索鸟网

  1. 首页
  2. JSP页面转换为HTML页面,动态转静态

JSP页面转换为HTML页面,动态转静态


前台使用静态页面的好处:没有数据库的交互用户访问网页加载更快,相传搜索引擎会更容易抓取静态网页的内容,所以前台使用静态页面还是有必要的。
转化的流程:

后台servlet中取到需要转换的动态JSP页面的地址,在原位置生成一个相应的html文件。如:
test/index.jsp 这样的就可以生成一个 test/index.html文件。

接下来看具体的代码实现过程:

1.一个根据JSP文件的具体地址取得具体代码的方法,此方法是可以重复使用的,所以我们可以将它封装为到工具类里下次直接使用,具体代码如下:
public static String getCode(String httpUrl ){ //参数是一个具体的http服务器的地址
String code="";//定义返回的具体代码
    try{
        InputStream in;
        URL url = new UTL(httpUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("User-Agent", "Mozilla/4.0");
        connection.connect();
        in = connection.getInputStream();
        InputStreamReader inputStreamReader = new InputStreamReader(in, "GBK");
        BufferedReader reader = new BufferedReader(inputStreamReader);
        String currentLine = "";
        while((currentLine = reader.readLine()) != null ){
            htmlCode += currentLine + "\n";
        
    }catch{
        reader.close();
        inputStreamReader.close();
        in.close();
    }
    return htmlCode;
}
2.以上代码实现了读取JSP文件内容并取到代码的过程,接下来要做的是将这些代码写入到一个HTML文件里,请开下面的具体方法:
public static synchronized void writeHtml(String filePath,String info){
        
    PrintWriter writer = null;
    try {
        File file = new File(filePath);
        boolean isExist = file.exists();  
        if(isExist != true){
            file.createNewFile();
        }else{
            if(!flag.equals("NO")){
                file.delete();
                file.createNewFile();
            }
        }
        writer = new PrintWriter(new FileOutputStream(file, true));
        writer.print(info);
        writer.close();
    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        writer.close();
    }
}

3.以上两个方法都会在servlet中调用,具体参数的值会在下面说到,下面是servlet中的具体代码:

protected void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

    request.setCharacterEncoding("GBK");
    response.setCharacterEncoding("GBK");
    response.setContentType("text/html,charset=GBK");
    try {
        String s = request.getRequestURL().toString();
        String url = "";
        String filePath = "";
        url=s.substring(0, s.indexOf("/servlet"))+"/index.jsp";//index.jsp 是需要转变为静态页面的地址
        String path = request.getSession().getServletContext().getRealPath("/");
        filePath = path+"index.html";//生成html文件的绝对路径

        String info=StringUtils.getHtmlCode(url);

        StringUtils.writeHtml(filePath, info);
        
    } catch (Exception e) {
        e.printStackTrace();
    }
}

以上代码就简单的实现了JSP转换为HTML的过程。其中的两个方法也可以写为一个方法。水平有限,请指正!

javascript java web开发

来源地址:https://segmentfault.com/a/1190000010426095 版权归作者所有!

相关教程

  • OFFICE 文档转换为html在线预览

    OFFICE 文档转换为html在线预览 OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaper Office文档直接转换为SWF,通过网页加载Flash预览 微软的Office365 在浏览器中直接打开 转换为html 今天,我们要用的方案是转换为html来预览。 技术方案: office文档
  • 静态页面化

    静态页面化 页面静态化,其实就是将动态生成的jsp页面,变成静态的HTML页面,让用户直接访问。 1,首先就是访问速度,不需要去访问数据库,或者缓存来获取哪些数据,浏览器直接加载渲染html页即可。所以可以大大的提高访问效率;    3,从安全角度讲,静态网页不宜遭到黑客攻击,如果黑客不知道你网站的后台、网站采用程序、数据库的地址,静态网页, 更不容易受到黑客的攻击。
  • .P7B 证书转换为 .PFX

    .P7B 转换为 .PFX1、下载openssl工具,(这里以windows系统为例)    https://www.chinassl.net/download/d1.html2、格式转换P7B (PKCS#7)一个P7B文件是一个包含证书和证书链的文本文件,但不包含私钥。PFX (PKCS#12)为存储和传输用户或服务器私钥、公钥和证书指
  • word转HTML

    同时支持doc和docx,话不多说,直接上代码 项目依赖 pom.xml <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version>
  • 将大写字母转换为小写字母

    将大写字母转换为小写字母 #include<stdio.h> int main() { char a; printf("输入一个字母:"); scanf("%c",&a); a=a>="A"&&a<="Z"?a+32:a; printf("%c\n",a); ret
  • JSP页面缓存设置------

    服务端方法: Java代码 收藏代码 <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Ex
  • Nodejs基于Express4的动态页面静态化

    上个星期在慕课网上提了个问:Express4开发的动态页面访问好慢的说?不幸的是并没有得到可行的回答,周末自己折腾了一番,一并将小站(花满楼)的几个页面全部静态化了;事后想了想,虽不是什么特别标准好的搞法,但纠结这么久了,这个问题终于有办法了,还是有些欣慰的; 一开始页面都是动态的,由jade模板render出来的,可不明白为什么不论页面内容多少,打开都至少要一秒多。。
  • JSP页面缓存设置------

    服务端方法: Java代码 收藏代码 <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Ex