有没有高手了解如何过滤request中的html.
我现在可以用 Map m = httpRequest.getParameterMap();
Iterator iter = m.entrySet().iterator();
while(iter.hasNext()){
Map.Entry entry = (Map.Entry)iter.next();
Object obj = entry.getValue();
String val = "";
if(obj instanceof String[]){
String[] strs = (String[])obj;
for(int i=0;i<strs.length;i++){
val+=strs[i];
}
}else{
val = obj.toString();
}
}取得所有的参数的值,然后也有方法去掉所有的htmltag。但是有一个问题,
我现在如何将修改后的request转发出去呢?
因为我看httpRequest没有setParameter的方法。如果不能把修改后的
request转发出去,后面的action得到的还是含有htmltag的参数。
我现在可以用 Map m = httpRequest.getParameterMap();
Iterator iter = m.entrySet().iterator();
while(iter.hasNext()){
Map.Entry entry = (Map.Entry)iter.next();
Object obj = entry.getValue();
String val = "";
if(obj instanceof String[]){
String[] strs = (String[])obj;
for(int i=0;i<strs.length;i++){
val+=strs[i];
}
}else{
val = obj.toString();
}
}取得所有的参数的值,然后也有方法去掉所有的htmltag。但是有一个问题,
我现在如何将修改后的request转发出去呢?
因为我看httpRequest没有setParameter的方法。如果不能把修改后的
request转发出去,后面的action得到的还是含有htmltag的参数。
现在我拿到request,但是无法把修改后的request保存。
如果每个都写,可能工作量太大了
//目标路径
String toUrl="*.do?a=1&f=2&.....";
//请求转发器
RequestDispatcher dispatcher = request.getRequestDispatcher(toUrl);
//跳转
dispatcher.forward(request,response);
就是画面上面输入
<s>abc</s>
然后到了下面的画面还是<s>abc</s>
不会被解释成
abc这种效果如果做到整个网站,用structs框架的
是不是加filter比较容易实现。
String toUrl="*.do?a=1&f=2&.....";
//请求转发器
RequestDispatcher dispatcher = request.getRequestDispatcher(toUrl);
//跳转
dispatcher.forward(request,response);
比如我输入<s>a</s>输出还是<s>a</s>吗?
<%
Option ExplicitFunction stripHTML(strHTML)
'Strips the HTML tags from strHTMLDim objRegExp, strOutput
Set objRegExp = New RegexpobjRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "<.+?>"'Replace all HTML tag matches with the empty string
strOutput = objRegExp.Replace(strHTML, "")
'Replace all < and > with < and >
strOutput = Replace(strOutput, "<", "<")
strOutput = Replace(strOutput, ">", ">")
stripHTML = strOutput 'Return the value of strOutputSet objRegExp = Nothing
End Function
%><form method="post" id=form1 name=form1>
<b>Enter an HTML String:</b><br>
<textarea name="txtHTML" cols="50" rows="8" wrap="virtual"><%=Request("txtHTML")%></textarea>
<p>
<input type="submit" value="Strip HTML Tags!" id=submit1 name=submit1>
</form><% if Len(Request("txtHTML")) > 0 then %>
<p><hr><p>
<b><u>View of string <i>with no</i> HTML stripping:</u></b><br>
<xmp>
<%=Request("txtHTML")%>
</xmp><p>
<b><u>View of string <i>with</i> HTML stripping:</u></b><br>
<pre>
<%=StripHTML(Request("txtHTML"))%>
</pre>
<% End If %>
/**
* 删除input字符串中的html格式
*
* @param input
* @param length
* @return
*/
public static String splitAndFilterString(String input, int length) {
if (input == null || input.trim().equals("")) {
return "";
}
// 去掉所有html元素,
String str = input.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(
"<[^>]*>", "");
str = str.replaceAll("[(/>)<]", "");
int len = str.length();
if (len <= length) {
return str;
} else {
str = str.substring(0, length);
str += "......";
}
return str;
}
/**
* 删除input字符串中的html格式
*
* @param input
* @param length
* @return
*/
public static String splitAndFilterString(String input) {
if (input == null || input.trim().equals("")) {
return "";
}
// 去掉所有html元素,
String str = input.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll(
"<[^>]*>", "");
str = str.replaceAll("[(/>)<]", "");
int len = str.length();
return str; }
}