導航:首頁 > 凈水問答 > java過濾器流實現文件夾

java過濾器流實現文件夾

發布時間:2020-12-15 05:45:01

Ⅰ 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過濾器過濾多個路徑

你可以吧除了index.jsp的所有jsp文件新建一個文件夾放進去 比如myJsp文件夾
然後過濾那個路徑/myJsp/*

Ⅲ 編寫一個過濾器,把當前目錄下後綴為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中的文件過濾器是怎麼添加的

FileFilter filter = new FileNameExtensionFilter("文本文件", "txt");
JFileChooser fileChooser = ...;
fileChooser.addChoosableFileFilter(filter);

Ⅳ java file文件過濾器

對,必須是個文件夾,是文件就會報錯!!!
new File(name).isDirectory();你的這句話是不對的,你要去讀回一個文件,new File()里賣答弄傳入的參數必須是能找到的文件,而不是文件夾,然後你有用isDirectory();去判斷它是不是文件夾,肯定會報錯.
isDirectory是去判斷它到底是不是個文件夾?你明白

Ⅵ java項目和web項目中的過濾器文件怎麼使用

過濾器是一個程序,它先於與之相關的servlet或JSP頁面運行在伺服器上。過濾器可附加到一個或多個servlet或JSP頁面上,並且可以檢查進入這些資源的請求信息。在這之後,過濾器可以作如下的選擇:

1. 以常規的方式調用資源(即,調用servlet或JSP頁面)。
2.利用修改過的請求信息調用資源。
3. 調用資源,但在發送響應到客戶機前對其進行修改
4. 阻止該資源調用,代之以轉到其他的資源,返回一個特定的狀態代碼或生成替換輸出。

1. 建立基本過濾器
建立一個過濾器涉及下列五個步驟:
1)建立一個實現Filter介面的類。這個類需要三個方法,分別是:doFilter、init和destroy。
doFilter方法包含主要的過濾代碼(見第2步),init方法建立設置操作,而destroy方法進行清楚。
2)在doFilter方法中放入過濾行為。doFilter方法的第一個參數為ServletRequest對象。此對象給過濾器提供了對進入的信息(包括表單數據、cookie和HTTP請求頭)的完全訪問。第二個參數為ServletResponse,通常在簡單的過濾器中忽略此參數。最後一個參數為FilterChain,如下一步所述,此參數用來調用servlet或JSP頁。
3)調用FilterChain對象的doFilter方法。Filter介面的doFilter方法取一個FilterChain對象作為它的一個參數。在調用此對象的doFilter方法時,激活下一個相關的過濾器。如果沒有另一個過濾器與servlet或JSP頁面關聯,則servlet或JSP頁面被激活。
4)對相應的servlet和JSP頁面注冊過濾器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。
5)禁用激活器servlet。防止用戶利用預設servlet URL繞過過濾器設置。
1.1 建立一個實現Filter介面的類
所有過濾器都必須實現javax.servlet.Filter。這個介麵包含三個方法,分別為doFilter、init和destroy。

public void doFilter(ServletRequset request,
ServletResponse response,
FilterChain chain)
thows ServletException, IOException

每當調用一個過濾器(即,每次請求與此過濾器相關的servlet或JSP頁面)時,就執行其doFilter方法。正是這個方法包含了大部分過濾邏輯。第一個參數為與傳入請求有關的ServletRequest。對於簡單的過濾器,大多數過濾邏輯是基於這個對象的。如果處理HTTP請求,並且需要訪問諸如getHeader或getCookies等在ServletRequest中無法得到的方法,就要把此對象構造成HttpServletRequest。

第二個參數為ServletResponse。除了在兩個情形下要使用它以外,通常忽略這個參數。首先,如果希望完全阻塞對相關servlet或JSP頁面的訪問。可調用response.getWriter並直接發送一個響應到客戶機。其次,如果希望修改相關的servlet或JSP頁面的輸出,可把響應包含在一個收集所有發送到它的輸出的對象中。然後,在調用serlvet或JSP頁面後,過濾器可檢查輸出,如果合適就修改它,之後發送到客戶機。

DoFilter的最後一個參數為FilterChain對象。對此對象調用doFilter以激活與servlet或JSP頁面相關的下一個過濾器。如果沒有另一個相關的過濾器,則對doFilter的調用激活servlet或JSP本身。

public void init(FilterConfig config) thows ServletException

init方法只在此過濾器第一次初始化時執行,不是每次調用過濾器都執行它。對於簡單的過濾器,可提供此方法的一個空體,但有兩個原因需要使用init。首先,FilterConfig對象提供對servlet環境及web.xml文件中指派的過濾器名的訪問。因此,普遍的辦法是利用init將FilterConfig對象存放在一個欄位中,以便doFilter方法能夠訪問servlet環境或過濾器名.其次,FilterConfig對象具有一個getInitParameter方法,它能夠訪問部署描述符文件(web.xml)中分配的過濾器初始化參數。

public void destroy( )
大多數過濾器簡單地為此方法提供一個空體,不過,可利用它來完成諸如關閉過濾器使用的文件或資料庫連接池等清除任務。

1.2 將過濾行為放入doFilter方法
doFilter方法為大多數過濾器地關鍵部分。每當調用一個過濾器時,都要執行doFilter。對於大多數過濾器來說,doFilter執行的步驟是基於傳入的信息的。因此,可能要利用作為doFilter的第一個參數提供的ServletRequest。這個對象常常構造為HttpServletRequest類型,以提供對該類的更特殊方法的訪問。

1.3 調用FilterChain對象的doFilter方法
Filter介面的doFilter方法以一個FilterChain對象作為它的第三個參數。在調用該對象的doFilter方法時,激活下一個相關的過濾器。這個過程一般持續到鏈中最後一個過濾器為止。在最後一個過濾器調用其FilterChain對象的doFilter方法時,激活servlet或頁面自身。
但是,鏈中的任意過濾器都可以通過不調用其FilterChain的doFilter方法中斷這個過程。在這樣的情況下,不再調用JSP頁面的serlvet,並且中斷此調用過程的過濾器負責將輸出提供給客戶機。

1.4 對適當的servlet和JSP頁面注冊過濾器
部署描述符文件的2.3版本引入了兩個用於過濾器的元素,分別是:filter和filter-mapping。filter元素向系統注冊一個過濾對象,filter-mapping元素指定該過濾對象所應用的URL。

下面是一個完整的例子:
//建立一個實現Filter介面的類。這個類需要三個方法,分別是:doFilter、init和destroy。
//doFilter方法包含主要的過濾代碼,init方法建立設置操作,而destroy方法進行清
package filterpkg;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class testFilter implements Filter{
public void init(FilterConfig filterConfig) throws ServletException
{
}
//在doFilter方法中放入過濾行為。doFilter方法的第一個參數為ServletRequest對象。
//此對象給過濾器提供了對進入的信息(包括表單數據、cookie和HTTP請求頭)的完全訪問。
//第二個參數為ServletResponse,通常在簡單的過濾器中忽略此參數。
//最後一個參數為FilterChain,如下一步所述,此參數用來調用servlet或JSP頁。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain)
{
PrintWriter wout=null;
try
{
wout=response.getWriter();
}
catch(IOException e)
{
}
HttpServletRequest req=(HttpServletRequest)request;//將request轉化為它的子類HttpServletRequest
String uri=req.getRequestURI();//獲得傳入的URI
if (uri.indexOf("MyJsp.jsp")>0 ||uri.indexOf("MainForm.do")>0 )//如果是我們指定的登錄頁面或驗證頁面
{
try
{
//調用FilterChain對象的doFilter方法。Filter介面的doFilter方法取一個FilterChain對象作為它的一個參數。
//在調用此對象的doFilter方法時,激活下一個相關的過濾器。如果沒有另一個過濾器與servlet或JSP頁面關聯,則servlet或JSP頁面被激活。
filterChain.doFilter(request, response);
}
catch(Exception e)
{
}
return;
}

if (req.getSession()!=null)
if (req.getSession().getAttribute("USERID")==null)
{
wout.write("<HTML><BODY> Check error! <br/> </BODY> </HTML>");
wout.flush();
return;
}
try
{
filterChain.doFilter(request, response);
}
catch(Exception e)
{
}
}

public void destroy()
{
}
}

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>CHECKCODE</filter-name>
<filter-class>filterpkg.testFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CHECKCODE</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ControlServlet</servlet-name>
<servlet-class>filterpkg.ControlServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControlServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

Ⅶ java過濾器中實現Filter的類怎麼寫

web.xml配置文件來
SessionFilter
com.qhit.system.tools.SessionFilter
SessionFilter
/*
java類
public class ConnFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain filterchain) throws IOException,ServletException
{
try
{
filterchain.doFilter(request,response);此處自為過濾鏈 理解為請求通過該過濾繼續前行 可在此處加上判斷 如果TRUE執行該語句 有過FALSE 則直接跳轉其他頁面 常用於判斷是否有許可權進入某頁面
}
finally
{
DBUtils.close();
}
}

Ⅷ java io流中裝飾器和過濾器的區別

樓主應該是領會了java io的精神的。在我以前學java的時候,與節點流相對的叫做包裝流。
分類的依據就是節點流是直接操作IO節點如ByteArray, File, Socket等等,所以相應的InputStream/OutputStream就是節點流。
包裝流是在java IO 管道機制中用來處理節點流的其他流對象,像各種Reader, Writer, Printer等等。他們的作用是在節點流基本功能至上提供擴展的功能,就像你說的對象、圖片、字元串等的對應特殊操作。
java IO中還有另一種分類就是:位元組流與字元流。位元組流顧名思義就是直接操作byte二進制數據;字元流則直接操作文本數據。例如:ByteArrayInputStream, ObjectOutputStream等是位元組流;BufferedReader, OutputStreamWriter等等是字元流。注意這個分類與上面節點流/包裝流的分類不是互斥的,只是兩種不同的分類體系。節點流通常都是位元組流;而一個流對象可以既是包裝流又是字元流,比如剛才說的OutputStreamWriter。
其實流的各種分類只不過是使我們更方便的理解IO包中類或對象的組織方式而已。不一定非要死摳字面。
B.T.W.
樓主所說的裝飾器應該與IO中使用頻繁的Decorator模式有關。而過濾器可能只是包裝流的不同說法。當然也不排除你的資料里它可能是有特指的,比如文件操作中的FileFilter等等。
回答也有點長,請耐心看完,好嗎?

Ⅸ java過濾器怎麼指定不過濾哪些文件

port 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過濾器不過濾某個貨某一些路徑

<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過濾器流實現文件夾相關的資料

熱點內容
wireshark怎麼過濾mac 瀏覽:276
廢水處理可以移走多少氧氣 瀏覽:712
300污水管道流量是多少 瀏覽:907
電離子去痣開始圖片 瀏覽:658
貴陽污水泵有哪些品牌 瀏覽:285
開個凈水廠需要些什麼 瀏覽:240
05奧德賽汽油濾芯怎麼拆 瀏覽:803
可更換空氣過濾器 瀏覽:557
江蘇電鍍含氰廢水處理價格如何 瀏覽:564
如何凈化生活污水養殖 瀏覽:512
樹脂熱線性膨脹系數 瀏覽:26
污水處理廠設備單機運行方案 瀏覽:878
離子交換吸附原 瀏覽:330
樂山污水處理設備批發多少錢 瀏覽:43
如何維修污水浸泡的牆 瀏覽:164
中國凈水服務網平台怎麼樣 瀏覽:891
怎樣去滴定硫酸根離子濃度 瀏覽:194
樹脂釋迦佛小的 瀏覽:638
廢水處理怎麼學 瀏覽:465
17款思域空調濾芯怎麼換 瀏覽:282