① java过滤非法字符的filter
filter代码在pujia12345提供的代码上改的;
jsp页面的编码你设成你自己的,我用的是-8。
input.jsp输入后,正常跳转到handle.jsp,而禁词已经被过滤。
filter:
package test;
import java.io.*;
import javax.servlet.*;
import java.util.*;
public class MyFilter implements Filter
{
private List<String> unString;
public void init(FilterConfig filterConfig) throws ServletException
{
unString = new ArrayList<String>();
unString.add("日");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
String content = request.getParameter("content");//需要过滤的参数
if(content!=null){
for (int i = 0; i < unString.size(); i++)
{
String strIllegal = unString.get(i);
if (content.indexOf(strIllegal) >= 0)
{
content = content.replaceAll(strIllegal, "");//非法字符替换成空
}
request.setAttribute("content", content);//为request设置属性保存修改后的值
}
}
chain.doFilter(request, response);
}
public void destroy()
{
//System.out.println("过滤器销毁");
}
}
//---------------------------//
web.xml:
<filter>
<filter-name>myfilter</filter-name>
<filter-class>test.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//---------------------------//
输入页面input.jsp:
<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>input.jsp</title>
</head>
<body>
<form action="handle.jsp" method="post">
<input type="text" name="content" />
<input type="submit" value=" 提交 " />
</form>
</body>
</html>
//---------------------------//
input提交的页面handle.jsp:
<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> handle.jsp </title>
</head>
<body>
<%
String content = (String)request.getAttribute("content");
out.println(content);
%>
</body>
</html>
② java怎样过滤危险字符,该怎么解决
就WEB应用来说,所谓危险的字符一般就是两种
一个是SQL注入,一个是HTML语法注回入
SQL注入主流的框架都可答以搞定,JDBC永远都使用preparedstatement就可以防止所有的sql注入,关键是用户输入都要通过占位符往里放,就自动的替换掉了特殊字符了。hibernate等orm框架都会搞定这个问题
HTML语法注入是指用户输入的html代码回显出来,这样如果不转义就可以破坏页面的结构或者注入脚本。所以现在的网站都不允许用户直接输入html代码了,现在都是一些UBB标签来完成一些效果。HTML主要最好的解决办法是在回显的时候进行转义,所有的MVC框架或者展示层框架都有HTML转义的支持,包括struts,spring,volicty等,注意观察他们用于显示的标签
③ 求高效率的 java+mysql 关键字过滤代码
你金币都不奖,叫别人出力,可能吗?我也想要啊。。。
④ java中如何过滤html的代码
把需要写入数据库的字符通过下面的方法过滤然后内再写入 public static String converthtml(String input) { if (input == null ||容 input.length() == 0) { return input; } StringBuffer buf = new StringBuffer(input.length() + 6); char ch = ' '; for (int i = 0; i < input.length(); i++) { ch = input.charAt(i); if (ch == '&') { buf.append("&"); } else if (ch == '<') { buf.append("<"); } else if (ch == '>') { buf.append(">"); } else if (ch == ' ') { buf.append(""); } else { buf.append(ch); } } return buf.toString(); }
希望采纳
⑤ java 如何过滤html代码,只保留中文或英文及基本常用符号
很容易,首先建立一个字符串数组,也就是你需要过滤掉的html标签String[] filterArrays = new String[]{"<html>","</html>","<table>","</table>".....一系列内有关html标签的东西}
当你得到一容个html代码的字符串时你可以循环遍历上面的数组,然后调用String自带的方法replaceAll();
我给你简单的示范一下啊
String str = "dfgdgdfgdgd";//需要过滤的带有HTML标签的代码字符串
for(int i=0;i<filterArrays.length;i++){
if(str.indexOf(filterArrays[i])!=0){
str = str.replaceAll(filterArrays[i],"");//将html标签替换成了空格
}
}
这样就搞定了,主要是你需要在filterArrays中增加你需要过滤的字符串,当然还会有更好的办法,可以不用增加这样的数组,因为出现"<"必然会有">",或者"/>"这样的标签,但是这样做可能会将一些无关的也过滤掉了,总之两种方法都可以,第一种呢我都给你写了例子!祝你成功啊
⑥ 在java中如何用正则表达式屏蔽javascript脚本
你需要把用户评论的内容中的:
"&" 替换成 "&"
"<" 替换成 "<"
">" 替换成 ">"
'"' (双引号回)替换成 '"'
"'" (单引号)替换成 '''
这样就可以避免答客户端的危险输入了
形如<script type="text/javascript">alert("asdf");</script>
的评论就会被直接显示出来(如同你看到的一样=。=)
而不会被当作html标签转义
====修改====
我的输入被转义了,修改下,记得去掉空格
"&" 替换成 "& amp;"
"<" 替换成 "& lt;"
">" 替换成 "& gt;"
'"' (双引号)替换成 '& quot;'
"'" (单引号)替换成 '& #39;'
⑦ java编程 如何让实现过滤 “脏字”
只能枚举你要过滤的所有“脏字”了。最好写在一个文件里面,不要直接用数组。
写个类完成将“脏字”替换为“*”号的逻辑。
加个过滤器,拦截提交留言的请求,并调用逻辑。
⑧ 在JAVA中怎么实现关键字过滤
自己判断一下, 字符串中是否包含某个关键字即可, String.contains(CharSequence s) 如果存在返回true, 否则返回false
⑨ JAVA中如何过滤字符串里面特殊字符
class test
{
public static void main(String []args)
{
String a = "1111-22-33 13:15:46",b=new String();
int i,j,t;
for(i=0;i<a.length();i++)
if(a.charAt(i)!='-' && a.charAt(i)!=':' && a.charAt(i)!=' ')
b=b+a.charAt(i);
System.out.println(b);
}
}