将jsp变为html

在做项目时候 因为jsp页面别人已经写好了 但是 这个项目要重写 所以他的jsp不能用的 于是我打算把jsp转换为html自己写
然后我发现jsp页面数量比较多 我又懒得去把标签一个个去掉 于是写了个辣鸡程序 批量去掉jsp页面标签 生成html页面

import java.io.*;

//遍历指定目录下所有文件
public class dmeo {
    public static void main(String[] dd) {
//         将jsp转为html
        File file = new File("C:\\Users\\Administrator\\Desktop\\项目实战\\Jsp图书馆管理系统源码\\静态资源\\jsp");

//直接传入目录即可
        try {
            run(file);
        } catch (Exception e) {
            System.out.println("出错啦");
        }
    }

    public static void run(File file) throws Exception {


        //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
        File[] fe = file.listFiles();
        for (File sg : fe) {
            String name = sg.getName();
//            返回指定子字符串在此字符串中最右边出现处的索引。
            int index = name.lastIndexOf(".");
            String s = name.substring(0, index) + ".html";
            FileOutputStream fo = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\项目实战\\Jsp图书馆管理系统源码\\静态资源\\html\\" + s);//获取目标文件
//            使用打印流 将数据打印到html页面
            PrintStream ps = new PrintStream(fo);


            // /读取文件内容变成字符串
            BufferedReader bufferedReader = new BufferedReader(new FileReader(sg));
            String s1;
            StringBuffer stringBuffer = new StringBuffer();
            //将jsp页面内容变成一个字符串stringBuffer
            while ((s1 = bufferedReader.readLine()) != null) {
                stringBuffer.append(s1);
            }
            //获取jsp页面内容  然后对StringBuffer进行设置即可
            StringBuffer stringBuffer1 = run1(stringBuffer);   //为啥必须返回 因为地址不一样 在方法内部new了许多次 所以不能使用原来的 如果方法内部没有new 那么就不用返回值
            run1(stringBuffer);

//            然后将字符串输出到页面
            ps.print(stringBuffer1.toString());
            fo.close();
            ps.close();
        }


    }


    public static StringBuffer run1(StringBuffer stringBuffer) {
//        注意 此方法只能先把 %@去掉 然后去掉%= 然后去掉%  因为第三个包括第二个和第一个字符串

        //返回jsp内容
        String substring = null;
        try {
//            其实 只要越界异常了 就代表结束了
            while ((substring = stringBuffer.substring(stringBuffer.indexOf("<%@"), stringBuffer.indexOf("%>") + 2)) != null) {
                //将jsp标签变成空字符串
                String replace = stringBuffer.toString().replace(substring, "");
                //将删除后的字符串重新给了 字符串进行判断
                stringBuffer = new StringBuffer(replace);
            }
            ;
        } catch (Exception e) {
            System.out.println("越界异常");
//            System.out.println("去除<%@ %>后的字符串:" + stringBuffer);
        }


        try {
//            其实 只要越界异常了 就代表结束了
            while ((substring = stringBuffer.substring(stringBuffer.indexOf("<%="), stringBuffer.indexOf("%>") + 2)) != null) {
                //将jsp标签变成空字符串
                String replace = stringBuffer.toString().replace(substring, "");
                //将删除后的字符串重新给了 字符串进行判断
                stringBuffer = new StringBuffer(replace);
            }
            ;
        } catch (Exception e) {
            System.out.println("越界异常");
//            System.out.println("去除<%= %>后的字符串:" + stringBuffer);


        }


        try {
//            其实 只要越界异常了 就代表结束了
             while ((substring = stringBuffer.substring(stringBuffer.indexOf("<%"), stringBuffer.indexOf("%>") + 2)) != null) {
                //将jsp标签变成空字符串
                String replace = stringBuffer.toString().replace(substring, "");
                //将删除后的字符串重新给了 字符串进行判断
                stringBuffer = new StringBuffer(replace);
            }
            ;
        } catch (Exception e) {
            System.out.println("越界异常");
//            System.out.println("去除<% %>后的字符串:" + stringBuffer);
        }


        return stringBuffer;
    }


}

只要知道
File file = new File(“C:\Users\Administrator\Desktop\项目实战\Jsp图书馆管理系统源码\静态资源\jsp”);
这个是jsp的目录
FileOutputStream fo = new FileOutputStream(“C:\Users\Administrator\Desktop\项目实战\Jsp图书馆管理系统源码\静态资源\html\” + s);//获取目标文件
//
这个是html的目录 改下路径就可以用了
生成的html页面需要idea进行自动换行 不然很难看 不过jsp标签已经去掉了

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值