我使用了一个不允许特殊字符和字母数字的正则表达式。所以我尝试了这个
String targetPage="Prestige$%$lll.jsp";
String pattern1 = Pattern.compile(".*[0-9].*").toString();
String pattern2 = Pattern.compile(".*[$!*&+,:;=?@#%'()^|-].*").toString();
System.out.println("**** pattern1 is "+pattern1);
System.out.println("**** pattern2 is "+pattern2);
System.out.println("****"+targetPage.matches(pattern1));
System.out.println("**&&&**"+targetPage.matches(pattern2));
if ( targetPage == null || targetPage.matches(pattern1) || targetPage.matches(pattern2) || "".equals(targetPage) || (!targetPage.endsWith(".jsp") && !targetPage.endsWith(".xml")) )
response.sendRedirect("/register.jsp");
它工作正常。但是对于像上面这样的某些场景,我的意思是 $%$ 它失败了。
非常感谢任何帮助
谢谢