導航:首頁 > 凈水問答 > java過濾包結構圖

java過濾包結構圖

發布時間:2021-01-06 16:32:39

⑴ 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過濾器filter能過濾某個包下的所有servlet嗎

可以的,其實確切的說不是某個包;
正如你給的例子中,url-pattern中放的路徑版一樣;
你在配置servlet的時候權,url-pattern這個路徑可以加層次的,舉例說明,比如用戶信息的所有servlet可以寫成 <url-pattern>/userinfo/具體的servlet</url-pattern>
在寫過濾器的時候,就可以攔截/userinfo/*;
在想你這個問題,如果你如果想攔截某個包下的,可以把這個包下的所有servlet的url-pattern的值,統一加上一層目錄( /某某包/* )

⑶ java過濾器filter能過濾某個包下的所有servlet嗎

不能直接過濾。過濾器是根據URL路徑來過濾的,不是根據包名來攔截的。但是你可以按照這樣的規則配置你的web.xml文件,間接實現你的需求。

① 你的servlet的訪問路徑,根據包名來命名。設計二級路徑。比如你有一個user.servlet包。你可以把裡面的所有Servlet路徑全部設置為/user/xxxServlet。你的filter攔截路徑就改為

/user/*

//1AServlet代碼
packageuser.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
{
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println(456);
}
}

//2BServlet代碼
packageuser.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
{

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println(123);
}
}
//3filter代碼
packagefilter;
importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
{
@Override
publicvoiddestroy(){}

@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,
FilterChainarg2)throwsIOException,ServletException{
System.out.println("執行了"+arg0.getParameter("name"));
arg2.doFilter(arg0,arg1);

}
@Override
publicvoidinit(FilterConfigarg0)throwsServletException{}

}
//4web.xml配置
<servlet>
<servlet-name>AServlet</servlet-name>
<servlet-class>user.servlet.AServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/user/AServlet</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Bservlet</servlet-name>
<servlet-class>user.servlet.BServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Bservlet</servlet-name>
<url-pattern>/user/BServlet</url-pattern>
</servlet-mapping>

<filter>
<filter-name>Myfilter</filter-name>
<filter-class>filter.Myfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Myfilter</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>

//5測試我的工程應用名是HelloWorld
http://localhost/HelloWorld/user/AServlet?name=aaa
http://localhost/HelloWorld/user/BServlet?name=bbb
會發現控制台分別列印出取出的參數aaa和bbb證明。攔截成功。

⑷ java 文件過濾器怎麼實現。

import java.io.File;
import java.io.FilenameFilter;

/**
* 文件過濾器的簡單實現
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}

/**
* 列出特定路徑下的txt文件
*
* @param directoryName
* 路徑名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 確定該路徑指向一個目錄
if (dir.exists() && dir.isDirectory()) {
// 列出所有結尾為txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}

⑸ java過濾器filter能過濾某個包下的所有servlet嗎

可以。通配符 * 統配所有字元

如果你指定了某個路徑,那他會走最長路徑匹配。

⑹ 誰可以給我一個Javaweb過濾器filter的相關jar

那個東西在tomcat裡面就有,所有的web容器和javaee應用伺服器都有這個。
一個出來就行了。
而且回你開發這個的時候肯定不是空答手開發,光用一個介面的jar根本運行不起來。
所以肯定要一個開發運行環境的,直接import你的web容器裡面lib里所有的jar就肯定包括了

⑺ java過濾器怎麼不過濾一個頁面里包含的多個請求

abstract public class FilterPerRequest implements Filter {

private static final Boolean FILTERED = true;
private ThreadLocal<Boolean> statusLocal = new ThreadLocal<Boolean>();

@Override
final public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req, resp, chain);
return;
}
//dispatch request only
chain.doFilter(req, resp);
}

private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}

private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp, FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req, resp);
setFiltered();
chain.doFilter(req, resp);
} finally {
cleanFilterStatus();
}
}

abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);

private void setFiltered() {
statusLocal.set(FILTERED);
}

private void cleanFilterStatus() {
statusLocal.set(null);
}

}
那要就情況而定了。。。
如果是request范圍內的話,就可以使用上面的過濾器。
如果是session范圍內的話,就需要在session內存儲一個標志變數,方式和request差不多。
如果是限制用戶操作的話,那就必須將用戶操作持久化。
由於你的問題不明確,我也不好多說...

⑻ java 日誌列印堆棧如何實現包級過濾

目前使用的來 log4j2.xml 方案列印的日自志。但因為 web 項目必然用到各種框架工具包之類的,導致列印的日誌堆棧信息中,有很多 spring 的包中的類調用鏈。
想實現,列印的堆棧信息,只有我指定的包前綴的才列印出來。比如我們自己編寫的一段代碼執行時報錯了,那麼執行出現如下堆棧信息:
java.lang.NumberFormatException: null
at net.oschina.aaa(aaa.java:80) ~[classes/:?]
at net.oschina.bbb(bbb.java:70) ~[classes/:?]
at net.oschina.ccc(ccc.java:60) ~[classes/:?]
at net.oschina.ddd(ddd.java:50) ~[classes/:?]

⑼ java過濾器filter能過濾某個包下的所有servlet嗎

j2ee自帶的filter好像不可以根據包來過濾,不過struts和sprint合起來就可以控制了。

⑽ java中如何用split過濾中括弧

java使用string的split方法來抄過濾中括弧,實例如下:

packagecom.qiu.lin.he;

publicclassCeShi{
publicstaticvoidmain(String[]args){
Stringmystr="String[]adfas";
String[]strs=mystr.split("\[]");//因為中括弧屬於轉義字元,應該要進行轉義
System.out.println(strs[0]+strs[1]);
}
}

運行結果如下:

閱讀全文

與java過濾包結構圖相關的資料

熱點內容
抽油煙凈化器怎麼使用 瀏覽:277
飲水機怎麼裝在櫥櫃里 瀏覽:258
派斯凈水器哪個品牌好 瀏覽:986
蒸餾水是一級水嗎 瀏覽:910
請問沁園凈水器濾芯多少錢 瀏覽:726
樹脂海景能養海水魚嗎 瀏覽:59
維克斯每年生產多少濾芯 瀏覽:802
彩潤牌空氣凈化器質量怎麼樣 瀏覽:468
凈水器軟軟管如何安裝 瀏覽:312
山地生活污水怎麼處理 瀏覽:487
廢水處理系統簡易圖 瀏覽:335
飲水機老加水怎麼辦 瀏覽:357
小區飲水機卡怎麼錢一下沒有了 瀏覽:624
蒸餾水裡面有可溶雜質嗎 瀏覽:444
蒸餾水過期了還可以敷臉嗎 瀏覽:513
凈水機是什麼價格 瀏覽:992
血濾超濾率計算 瀏覽:747
污泥提升泵規范 瀏覽:305
IE瀏覽器下載提升重新啟動 瀏覽:83
油鋸空氣濾芯怎麼安裝 瀏覽:407