重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java中文过滤器代码 正则过滤中文java

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

package com.jingdu.common;

创新互联主营名山网站建设的网络公司,主营网站建设方案,重庆APP开发,名山h5小程序制作搭建,名山网站营销推广欢迎名山等地区企业咨询

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

}

}

java 如何过滤html代码,只保留中文或英文及基本常用符号

很容易,首先建立一个字符串数组,也就是你需要过滤掉的html标签String[] filterArrays = new String[]{"html","/html","table","/table".....一系列有关html标签的东西}

当你得到一个html代码的字符串时你可以循环遍历上面的数组,然后调用String自带的方法replaceAll();

我给你简单的示范一下啊

String str = "dfgdgdfgdgd";//需要过滤的带有HTML标签的代码字符串

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

if(str.indexOf(filterArrays[i])!=0){

str = str.replaceAll(filterArrays[i],"");//将html标签替换成了空格

}

}

这样就搞定了,主要是你需要在filterArrays中增加你需要过滤的字符串,当然还会有更好的办法,可以不用增加这样的数组,因为出现""必然会有"",或者"/"这样的标签,但是这样做可能会将一些无关的也过滤掉了,总之两种方法都可以,第一种呢我都给你写了例子!祝你成功啊

java如何创建过滤器

弄过滤器,要实现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;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class EncodingFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding("GBK");//处理编码

response.setCharacterEncoding("GBK");//处理编码

chain.doFilter(request, response);//让过滤器执行下一个请求

}

public void destroy() {}

public void init(FilterConfig arg0) throws ServletException {}

}

//下面这个是在web.xml下的配置

filter

filter-nameencoding/filter-name

filter-class

刚刚创建的那个实现filter接口的类的位置

例如:com.temp.filter.EncodingFilter

/filter-class

/filter

filter-mapping

filter-nameencoding/filter-name

url-pattern*.jsp这个是以jsp为后缀的文件都拦截下来/url-pattern

/filter-mapping

可以写多个的filter-mapping来配置你所要拦截的东西

恩,有点唠叨,希望可以帮助到你

在java中,使用过滤器编码过滤乱码时,过滤器的编码怎么写?

public void doFilter(ServletRequest srequest, ServletResponse sresponse,

FilterChain chain) throws IOException, ServletException {

if (null != encoding) {

HttpServletRequest request = (HttpServletRequest)srequest;

HttpServletResponse response = (HttpServletResponse)sresponse;

// 对请求进行编码设置

request.setCharacterEncoding(encoding); //把请求用指定的方法编码

response.setContentType("text/html");

response.setCharacterEncoding(encoding); //把返回响应指定 编码方式

System.out.println("------------过滤编码-------------" + encoding);

}

// 把处理权限交给下一个过滤器

chain.doFilter(srequest, sresponse);

}//这是核心方法

正好项目中有用到

请问这段JAVA过滤器代码要放在哪里执行?

看到Servlet,可以明确这是个web项目。

所以你需要新建一个web工程,然后在web.xml中配置该过滤器。

关于java过滤器解决中文乱码的

因为你遗漏了重要的一步。正确的方法如下:

if(encoding!=null){

//设置request字符编码

request.setCharacterEncoding(encoding);

//设置response字符编码

response.setContentType("text/html;charset="+encoding);

response.setCharacterEncoding(encoding);

}

//传递给下一个过滤器

chain.doFilter(request, response);


网页题目:java中文过滤器代码 正则过滤中文java
文章起源:http://cqcxhl.com/article/hggces.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP