導航:首頁 > 凈水問答 > 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過濾器源碼相關的資料

熱點內容
去除花灑中的水垢 瀏覽:987
空調顯示凈化器怎麼樣 瀏覽:11
xsmax主卡來電怎麼用副卡回撥 瀏覽:139
剛打的耳洞進污水怎麼辦 瀏覽:544
流動床離子交換 瀏覽:618
1800瓦污水泵 瀏覽:155
污水處理怎麼加助凝劑 瀏覽:406
廢水裡有硫酸怎麼處理 瀏覽:873
一個人一天可以用多少污水 瀏覽:299
污水塘里能養什麼魚 瀏覽:600
污水泵有哪些工作 瀏覽:517
衛生院污水處理管理辦法 瀏覽:527
電鍍酸洗廢水 瀏覽:385
海南橡膠的廢水膠是什麼意思 瀏覽:817
商場雜訊廢水說明 瀏覽:769
熨斗裡面的水垢怎麼清除 瀏覽:5
polo車的機油濾芯在哪裡 瀏覽:297
斯柯達昕銳空調濾芯怎麼上 瀏覽:563
過濾水壺濾芯怎麼看真假 瀏覽:571
鴻業污水井編號 瀏覽:357