当前位置:首页 » 净水方式 » servlet过滤特殊字符

servlet过滤特殊字符

发布时间: 2021-03-23 18:57:46

1. 求教:HttpServlet过滤全角字符

取每行数据,用indexOf() 方法判断字符串是否 Define Class开头,然后以空格符作为分隔符把字符串用 split()方法分割成数组, 返回一个串数组,那下标为2的数组就是你要的东西

2. 如何实现字符串中脏话的过滤

不管是JSP还是Servlet,其Filter过滤器都是一个东西。因为JSP的本质就是Servlet,只不过是被包装了一下,成了标准,让Web服务器都遵循这个标准来解析编译执行而已。 以下演示的就是在JSP中如何过滤脏话(Servlet的处理方式也差不多): 一、 过滤器类 package com.filter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class WordsFilter implements Filter { private Map String, String>map = new HashMap String, String>(); //过滤器的初始化 public void init(FilterConfig config) throws ServletException { String filePath = config.getInitParameter("filePath");//从配置文件中取得文件的相对路径 ServletContext context = config.getServletContext(); String realPath = context.getRealPath(filePath);//根据相对路径取得绝对路径 try { FileReader freader = new FileReader(realPath);//根据绝对路径,通过文件流来读取文件 BufferedReader br = new BufferedReader(freader); String line = null; while((line=br.readLine()) != null) { String []str = line.split("="); map.put(str[0], str[1]); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //乱码处理 request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); HttpServletRequest HttpReq = (HttpServletRequest) request; HttpReqWrapper hrw = new HttpReqWrapper(HttpReq); hrw.setMap(map); chain.doFilter(hrw, response); } public void destroy() { System.out.println("--过滤器的销毁--"); } }二、请求包装器
package com.filter;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class HttpReqWrapper extends HttpServletRequestWrapper { private Map String,String> map = null; public HttpReqWrapper(HttpServletRequest request) { super(request); } //过滤脏话 public String replace(String str){ StringBuffer sb = new StringBuffer(str); Setkeys = this.getMap().keySet(); Iteratorit = keys.iterator(); String ss = null; while(it.hasNext()) { String key = it.next(); int index = sb.indexOf(key); if(index != -1) { if(key != null) ss = key; sb.replace(index, index+key.length(), this.getMap().get(key)); } } if(ss!=null) { if (sb.toString().indexOf(ss) == -1) { return sb.toString(); } else { return replace(sb.toString()); } } return sb.toString(); }// 重写getParameter()方法 public String getParameter(String str) { if(str.equals("pager.offset")){ return super.getParameter(str); }else{ String content = super.getParameter(str); return replace(content); } } public Map String,String> getMap() { return map; } public void setMap(Map String,String> map) { this.map = map; } }

三、脏话列表word.txt妈的=**
老子=**
狗日的=***
我日=我*
TMD=***
我靠=我*
贱人=**
滚=*
操=*

四、web.xml中配置过滤器

WordsFilter
com.filter.WordsFilter

filePath
/WEB-INF/word.txt

WordsFilter
/getNote.jsp

3. 抓取苹果json数据,怎样过滤特殊字符

packagecn.sdeit.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.Calendar;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcn.sdeit.beans.Team;
importcn.sdeit.beans.User;
importcn.sdeit.mysql.ConnectMySql;
@WebServlet(name="BuildTeam",urlPatterns={"/BuildTeam"})

{
=1L;

publicBuildTeam()
{
();
}

protectedvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)throwsServletException,IOException
{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");

Teamteam=newTeam(request.getParameter("name"),
newInteger(request.getParameter("type")),
request.getParameter("words"),
((User)(request.getSession().getAttribute("oldUser"))).getEmail(),
"null","null","null","null","null",
"null","null",request.getParameter("teacher"),0,
Calendar.getInstance().get(Calendar.YEAR)
);
intresult=buildTeam(team);
if(result==0)
{
PrintWriterwriter=response.getWriter();
writer.write("抱歉!</br>创建团队失败!请核对资料后重试,若问题再次出现请联系管理员反馈您的问题!");
writer.flush();
writer.close();
}
else
{
response.sendRedirect("mine.jsp");;
}
}
privateintbuildTeam(Teamteam)
{
/*
*createtableteam
*(namevarchar(64),
*typeint,
*wordsvarchar(256),
*member1varchar(24)defaultnull,
*member2varchar(24)defaultnull,
*member3varchar(24)defaultnull,
*member4varchar(24)defaultnull,
*member5varchar(24)defaultnull,
*member6varchar(24)defaultnull,
*filevarchar(128),
*rewardvarchar(64),
*teachervarchar(24),
*chargeint,
*yearint);
*/
Stringsql="insertintoteamvalues(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Connectionconnection=ConnectMySql.createConnection();
PreparedStatementprepared=ConnectMySql.createPreparedStatement(connection,sql);
intcode=0;
try
{
prepared.setString(1,team.getName());
prepared.setInt(2,team.getType());
prepared.setString(3,team.getWords());
prepared.setString(4,team.getMember1());
prepared.setString(5,team.getMember2());
prepared.setString(6,team.getMember3());
prepared.setString(7,team.getMember4());
prepared.setString(8,team.getMember5());
prepared.setString(9,team.getMember6());
prepared.setString(10,team.getFile());
prepared.setString(11,team.getReward());
prepared.setString(12,team.getTeacher());
prepared.setInt(13,team.getCharge());
prepared.setInt(14,team.getYear());
code=prepared.executeUpdate();
prepared.close();
connection.close();
}catch(SQLExceptione)
{
e.printStackTrace();
}
returncode;
}
}

4. java过滤特殊字符的问题

"+"在URL中会被当作空格处理。
必须使用URLEncoder将其变成URL编码。
或者使用 javascript 的 encodeURIComponent(url) 函数对URL进行编码转换。

5. 在JAVA中输入什么代码才能屏蔽非法字符

Java代码 package com.zhangkai.Filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FilterToWord implements Filter { //销毁,当服务器关闭的时候,也就destroy了。 @ public void destroy() { } //过滤 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //首先拿到你输入的字符 String content = request.getParameter("content"); //第二步,判断一下拿到的值是不是空值 if (content != null) { //比如我们规定含有AAA的是非法字符 if (content.indexOf("AAA") == -1) { //如果不包含,则继续往下操作 chain.doFilter(request, response); } else { //反之,就提示用户,输入有误 System.out.println("有非法文字"); //如果有需要依然可以使用request.getRequestDispatcher跳转 } } else { //如果是空值,则继续操作 chain.doFilter(request, response); } } //初始化,服务器一打开就init。 @Override public void init(FilterConfig arg0) throws ServletException { } }

6. javascript 怎样过滤非法字符

你可以用过滤器来过过滤,jsp中的filter。
public class WordFilter implements Filter {

//写自己的response
class MyResponse extends HttpServletResponseWrapper{

//放字符串的
private StringWriter sw = new StringWriter();
//1.这个构造是必须是,作用是把原来的传进来进行替换
public MyResponse(HttpServletResponse arg0) {
super(arg0);
}
//2. 重写方法
@Override
public PrintWriter getWriter() throws IOException {

return new PrintWriter(sw);
}

//3.重写toString
@Override
public String toString() {
return sw.toString();
}
}
public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
//替换自己的response
MyResponse response = new MyResponse((HttpServletResponse) arg1);

//让自己的response通过
arg2.doFilter(arg0, response);

//得到自己的内容
String str = response.toString();

//改一改内容
str = str.replaceAll("sb", "s*");
str = str.replaceAll("王八蛋", "??");

//传内容
response.getResponse().getOutputStream().print(str);

System.out.println("...");
}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}

7. java怎么过滤掉小方块的特殊字符

package com.jing.common; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import

8. jsp\java 如何编写过滤器过滤特殊字符

package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;

public void init(FilterConfig config) throws ServletException {

// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}

@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";

//设置请求编码格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循环读取参数
while (params.hasMoreElements()){
param = (String) params.nextElement(); //获取请求中的参数
String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值

for (int i = 0; i < values.length; i++) {

paramValue = values[i];

//转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡锦涛","***");

//这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
values[i] = paramValue;

}

//把转义后的参数重新放回request中
request.setAttribute(param, paramValue);
}
//继续向下 执行请求,如果有其他过滤器则执行过滤器
arg2.doFilter(request, response);
}

public void destroy() {
// TODO Auto-generated method stub
}
}

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239