TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
在读取表单数据时,如果我们想过滤用户提交的文本,给其中的url字符串添加超链接,那么下面代码使我们很容易实现这个功能,代码摘自jive1.4中的FilterURLConverter.java,站长整理。
package example;
public class FilterURLConverter{
private String convertURL( String input ) {
//Check if the string is null or zero length -- if so, return
//what was sent in.
if( input == null || input.length() == 0 ) {
return input;
}
else {
StringBuffer buf = new StringBuffer();
int i = 0, j = 0, oldend = 0;
int len = input.length();
char cur;
while ( ( i=input.indexOf( "http://", oldend) ) >= 0 ) {
j=i+7;
cur = input.charAt(j);
while (j < len) {
//Is a space?
if (cur == " ") break;
//Is HTML?
if (cur == "<") break;
//Is a Win32 newline?
if (cur == "
") break;
//Is Unix newline?
if (cur == "
" && j<len-1 && input.charAt(j+1) == "
")
break;
j++;
if (j<len) {
cur = input.charAt(j);
}
}
buf.append(input.substring(oldend,i));
buf.append("<a href ="");
buf.append(input.substring(i,j));
buf.append("">");
buf.append(input.substring(i,j));
buf.append("</a>");
oldend = j;
}
buf.append(input.substring(j,len));
return buf.toString();
}
}
public static void main(String args[]){//测试
String s="my school home is http://10.10.l.1 OK OK";
FilterURLConverter f=new FilterURLConverter();
System.out.println(f.convertURL(s));
}
}
运行结果:
C:java>javac FilterURLConverter.java
C:java>java FilterURLConverter
my school home is <a href ="http://10.10.l.1">http://10.10.l.1</a> OK OK
在jsp中可以这样测试:
<%@ page import="example.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form name="form1" method="post" action="">
你的主页URL地址:
<input type="text" name="url">
<input type="submit" name="Submit" value="提交">
</form>
<%
FilterURLConverter f=new FilterURLConverter();
String url=request.getParameter("url");
if(url!=null){
url=new String(url.getBytes("ISO8859_1"));
String filterurl=f.convertURL(url);
out.println("你的主页是:"+filterurl);
}
%>
</body>
</html>
function TempSave(ElementID)
{
CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);
CommentsPersistDiv.save("CommentXMLStore");
}
function Restore(ElementID)
{
CommentsPersistDiv.load("CommentXMLStore");
document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");
} |
|