如何用正则表达式消除JSP动态脚本?
我从网上下载了很多JSP源码,里面全是用<%....%>这种形式写的,现在我想把他们全都消除了,自己用javabean+servlet来练练手(SSH没有学,太难)。。。
本来的做法是用DW打开后一处一处脚本的慢慢删除的,可是后来删到烦死,看马士兵的正则表达式后有个想法,用里面的替换把<%....%>里面的东西全都替换为空,自己试了一下。发现也没想像中的那么简单,如果用输入流每次只读一行的话那就有好多种判断条件了,后来决定是把整个网页文件存到一String里面再处理,可是试了一下,还是有问题,可能是我的正则表达式不正确吧,请懂的朋友帮忙看一下,多谢了。。。
package regexp;
import java.io.*;
import java.util.regex.*;
public class ClearJSP {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader(
"E:\\jbproject\\RegExp\\test.jsp"));
String line = "";
String temp = "";
while ( (temp = br.readLine()) != null) {
line += temp;
}
parse(line);
}
catch (FileNotFoundException ex) {
}
catch (IOException ex) {
}
}
private static void parse(String line) {
Pattern p = Pattern.compile("<%\\w*%>");
Matcher m = p.matcher(line);
m.replaceAll(line);
System.out.println("修改前:"+line);
line = line.replaceAll("<%\\w*%>","");
System.out.println("修改后:"+line);
}
}
我知道是有很多替代方法把JSP动态脚本去除的,比如只是把<% %>换成<-- -->就是,可是有时候我们在学编程的过程中达到目的不是最重要的,最重要的是为了练习而练习。。。。我就是想知道怎么用正则表达式替换的。。。
本来的做法是用DW打开后一处一处脚本的慢慢删除的,可是后来删到烦死,看马士兵的正则表达式后有个想法,用里面的替换把<%....%>里面的东西全都替换为空,自己试了一下。发现也没想像中的那么简单,如果用输入流每次只读一行的话那就有好多种判断条件了,后来决定是把整个网页文件存到一String里面再处理,可是试了一下,还是有问题,可能是我的正则表达式不正确吧,请懂的朋友帮忙看一下,多谢了。。。
package regexp;
import java.io.*;
import java.util.regex.*;
public class ClearJSP {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader(
"E:\\jbproject\\RegExp\\test.jsp"));
String line = "";
String temp = "";
while ( (temp = br.readLine()) != null) {
line += temp;
}
parse(line);
}
catch (FileNotFoundException ex) {
}
catch (IOException ex) {
}
}
private static void parse(String line) {
Pattern p = Pattern.compile("<%\\w*%>");
Matcher m = p.matcher(line);
m.replaceAll(line);
System.out.println("修改前:"+line);
line = line.replaceAll("<%\\w*%>","");
System.out.println("修改后:"+line);
}
}
我知道是有很多替代方法把JSP动态脚本去除的,比如只是把<% %>换成<-- -->就是,可是有时候我们在学编程的过程中达到目的不是最重要的,最重要的是为了练习而练习。。。。我就是想知道怎么用正则表达式替换的。。。