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的历程。个中的两个要领也能够写为一个要领。程度有限,请斧正!

    原文作者:虫鸣啾啾
    原文地址: https://segmentfault.com/a/1190000010426095
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞