资讯专栏INFORMATION COLUMN

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

ziwenxie / 2196人阅读

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

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

后台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 + "
";
        
    }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://www.ucloud.cn/yun/84506.html

相关文章

  • JSP页面HTML页面动态静态

    摘要:前台使用静态页面的好处没有数据库的交互用户访问网页加载更快,相传搜索引擎会更容易抓取静态网页的内容,所以前台使用静态页面还是有必要的。 前台使用静态页面的好处:没有数据库的交互用户访问网页加载更快,相传搜索引擎会更容易抓取静态网页的内容,所以前台使用静态页面还是有必要的。转化的流程: 后台servlet中取到需要转换的动态JSP页面的地址,在原位置生成一个相应的html文件。如: te...

    lncwwn 评论0 收藏0
  • JSP面试题都在这里

    摘要:下面是我整理下来的知识点图上的知识点都可以在我其他的文章内找到相应内容。在中,尤其重要的是对象。 下面是我整理下来的JSP知识点: showImg(https://segmentfault.com/img/remote/1460000013229216?w=4962&h=2653); 图上的知识点都可以在我其他的文章内找到相应内容。 JSP常见面试题 jsp静态包含和动态包含的区别 j...

    gaosboy 评论0 收藏0
  • []Apache与Tomcat 区别及联系

    摘要:原文链接和都是网络服务器,两者既有联系又有区别,在进行等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。侧重于,侧重于引擎,如果以方式运行,功能上与等效支持,但对静态网页不太理想。 原文链接Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。   Apa...

    Lsnsh 评论0 收藏0
  • JavaWeb从0开始学(二)-----JSP基本语法与编译指令

    摘要:下面我们再打开对应的文件,我们会看到如下部分内容静态测试调用我是文件,我被文件调用了我们发现,在该包含文件被引入处那条语句被执行了。 在上一节中我们学习了如何搭建一个简单的Web应用,并且已经知晓了一个JSP页面主要由静态的HTML内容和动态的Java脚本共同组成。JSP的基本语法共有JSP注释、JSP声明、输出JSP表达式与JSP程序片段四种,用来控制动态向页面输出内容的。现在我们就...

    fancyLuo 评论0 收藏0

发表评论

0条评论

ziwenxie

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<