导航:首页 > 净水问答 > java过滤器源码

java过滤器源码

发布时间:2023-08-22 05:16:20

⑴ 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(); }

希望采纳

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

package com.jing.common;x0dx0aimport java.io.IOException;x0dx0aimport java.io.PrintWriter;x0dx0aimport javax.servlet.Filter;x0dx0aimport javax.servlet.FilterChain;x0dx0aimport javax.servlet.FilterConfig;x0dx0aimport javax.servlet.ServletException;x0dx0aimport javax.servlet.ServletRequest;x0dx0aimport javax.servlet.ServletResponse;x0dx0aimport javax.servlet.http.HttpServletRequest;x0dx0aimport javax.servlet.http.HttpServletResponse;x0dx0ax0dx0apublic class IllegalCharacterFilter implements Filter {x0dx0a private String[] characterParams = null;x0dx0a private boolean OK=true;x0dx0a x0dx0a public void init(FilterConfig config) throws ServletException {x0dx0a x0dx0a// if(config.getInitParameter("characterParams").length()<1)x0dx0a// OK=false;x0dx0a// elsex0dx0a/饥态/ this.characterParams = config.getInitParameter("characterParams").split(",");x0dx0a System.out.println("初始化");x0dx0a }x0dx0ax0dx0a@SuppressWarnings("unchecked")x0dx0a public void doFilter(ServletRequest request, ServletResponse response,x0dx0a FilterChain arg2) throws IOException, ServletException {x0dx0a HttpServletRequest servletrequest = (HttpServletRequest) request;x0dx0a HttpServletResponse servletresponse = (HttpServletResponse) response;x0dx0a String param = "";x0dx0a String paramValue = "";x0dx0a x0dx0a /烂如源/设置请求编码格式x0dx0a servletresponse.setContentType("text/html");x0dx0a servletresponse.setCharacterEncoding("UTF-8");x0dx0a servletrequest.setCharacterEncoding("UTF-8");x0dx0a java.util.Enumeration params = request.getParameterNames();x0dx0a //循环读取参数x0dx0a while (params.hasMoreElements()){x0dx0a param = (String) params.nextElement(); /橡郑/获取请求中的参数x0dx0a String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值x0dx0a x0dx0a for (int i = 0; i < values.length; i++) {x0dx0a x0dx0a paramValue = values[i];x0dx0a x0dx0a //转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理x0dx0a paramValue = paramValue.replaceAll("'",""); x0dx0a paramValue = paramValue.replaceAll("@","");x0dx0a paramValue = paramValue.replaceAll("胡锦涛","***");x0dx0a x0dx0a //这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。x0dx0a values[i] = paramValue;x0dx0a x0dx0a }x0dx0a x0dx0a //把转义后的参数重新放回request中x0dx0a request.setAttribute(param, paramValue);x0dx0a }x0dx0a //继续向下 执行请求,如果有其他过滤器则执行过滤器x0dx0a arg2.doFilter(request, response);x0dx0a }x0dx0a x0dx0a public void destroy() {x0dx0a // TODO Auto-generated method stubx0dx0a }x0dx0a}

⑶ 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-name>encoding</filter-name>
<filter-class>
刚刚创建的那个实现filter接口的类的位置
例如:com.temp.filter.EncodingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.jsp这个是以jsp为后缀的文件都拦截下来</url-pattern>
</filter-mapping>
可以写多个的<filter-mapping>来配置你所要拦截的东西

⑷ 编写一个过滤器,把当前目录下后缀为java的文件取出,用java怎么编

public class Test {

public static void main(String[] args) {
dir = new File("");
String dirString = dir.getAbsolutePath();
System.out.println(dirString);
Filter filter = new Filter(".java");
dir = new File(dirString);
File[] files = dir.listFiles(filter);
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
}
}

}

class Filter implements FilenameFilter{
String filterString;
public Filter(String fString){
this.filterString = fString;
}
public boolean accept(File dir, String name) {
return name.endsWith(filterString);
}
}

⑸ java filter 过滤器中文乱码 怎么解决啊

1、首先编写一个Java类的filter代码。操作步骤:
(1)在myeclipse中新建一个java类,

(2)单击“Add”按钮,在弹出来的对话框中“选择接口”文本框中输入Filter,
并选择匹配好的类型javax.servlet
(3)单击“OK”按钮返回"New Java Class"对话,然后单击“Finish”按钮,就可以看到创建的过滤器框架:
过滤器类:Encoding.java,代码如下:
package com;
import java.io.IOException;
import javax.servlet.*;
public class Encoding implements Filter {
protected String encoding=null;
protected FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null){
//得倒指定的编码
String encode=getEncoding();
if(encode!=null){
//设置request的编码
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig; //得到web.xml中的配置编码
this.encoding=filterConfig.getInitParameter("Encoding");
}
protected String getEncoding(){
return encoding;

}
}
2、在web.xml文件写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制编码 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化参数 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

⑹ 在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);
}//这是核心方法
正好项目中有用到

⑺ 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
}
}

⑻ java过滤器不过滤某个货某一些路径

<param-name>noLoginPaths</param-name> 参数名可自取

<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.imooc.filter.LoginFilter</filter-class>
<init-param>
<param-name>noLoginPaths</param-name>
<param-value>login.jsp;fail.jsp;LoginServlet</param-value>
</init-param>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

关键代码 :

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}

完整代码:

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;

{

privateFilterConfigconfig;

@Override
publicvoiddestroy(){

}

@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{

HttpServletRequestrequest=(HttpServletRequest)arg0;
HttpServletResponseresponse=(HttpServletResponse)arg1;
HttpSessionsession=request.getSession();

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

Stringcharset=config.getInitParameter("charset");
if(charset==null){
charset="UTF-8";
}
request.setCharacterEncoding(charset);

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}
if(session.getAttribute("username")!=null){
arg2.doFilter(arg0,arg1);
}else{
response.sendRedirect("login.jsp");
}

}

@Override
publicvoidinit(FilterConfigarg0)throwsServletException{
config=arg0;
}

}
阅读全文

与java过滤器源码相关的资料

热点内容
鱼盆过滤箱 浏览:612
满洲里回哈尔滨用隔离吗 浏览:215
螺口被水垢锈死了 浏览:144
水族箱内置过滤泵坏了 浏览:343
汽车空调更换干燥过滤器 浏览:311
机油滤芯太厚会有什么影响 浏览:78
实验室常用的蒸馏方法 浏览:858
永兴生活污水处理厂 浏览:668
博世马勒滤芯怎么样 浏览:568
净化器储水罐为什么只有一根管子 浏览:847
市政污水检测井做法 浏览:543
谁发明的反渗透膜 浏览:954
30目水过滤器 浏览:506
污水可以接入排涝站 浏览:332
原生动物对污水的指示作用 浏览:146
现在从北京回滦平用隔离吗 浏览:3
过滤器没排气 浏览:519
生活污水处理保护法 浏览:771
乙烯基酯树脂毒性 浏览:122
焦化污水总氮如何去除 浏览:627