📄 filter.java
字号:
package tw.com.javaworld.CH15;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class Filter extends BodyTagSupport {
public Filter() {
}
public int doAfterBody() {
// 取得 body content 对象
BodyContent bc = getBodyContent();
// 取得 request 对象
ServletRequest request = pageContext.getRequest();
// 若得到 Filter 参数值为 Filter 时,将 body content 的内容传入至 filter()
// 否则,直接显示原始数据内容
String filter;
if (request.getParameter("Filter") != null
&& request.getParameter("Filter").equals("Filter")) {
filter = toFilter(bc.getString());
} else {
filter = bc.getString();
}
try {
JspWriter out = bc.getEnclosingWriter();
out.print(filter);
} catch (Exception e) {
System.out.println("Error in FilterTag: " + e);
}
return (SKIP_BODY);
}
// 主要将字符串的内容中有以下特殊符号的:< 、 > 、 " 、 &
// 分别替换为 < 、 > 、 " 、 &
public String toFilter(String input) {
StringBuffer filtered = new StringBuffer(input.length());
char c;
for (int i = 0; i < input.length(); i++) {
c = input.charAt(i);
if (c == '<') {
filtered.append("<");
} else if (c == '>') {
filtered.append(">");
} else if (c == '"') {
filtered.append(""");
} else if (c == '&') {
filtered.append("&");
} else {
filtered.append(c);
}
}
return (filtered.toString());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -