導航:首頁 > 凈水問答 > filter過濾器例外

filter過濾器例外

發布時間:2021-03-29 07:11:13

❶ Filter過濾器中指定過濾內容怎麼配置

servlet的這個 是不來是需要把每源一個的servlet都寫進
「servlet位置」? 回答: 每個servlet都要在web.xml里配置,難道有沒配的? 追問: 有~~ 每個都有 就是覺得要是每個都寫一邊那麼會不會造成代碼冗餘
假設servlet的配置
/LoginServlet
/RegisterServlet
加入到過濾器的中
那個後綴的看起來還不錯 具體能給個寫法看寫么? 回答: 比如servlet配置後綴
/LoginServlet.jspx
/RegisterServlet.jspx那filter/*.jspx再如servlet配置路徑

❷ 不明白Filter過濾器怎麼用,大家幫幫我

我來給你簡單的說一下吧:)
首先要明確。Filter是JSP2.0裡面的東西 ,顧名思義,也就是過濾器的意思
和你說說如何用吧。要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一樣的哦
<filter>
<filter-name>PrivFilter</filter-name>
<filter-class>com.myPriv.filter.PrivFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>PrivFilter</filter-name>
<url-pattern>/resource/*</url-pattern>
</filter-mapping>
//com.myPriv.filter.PrivFilter是這個過濾器所在的位置。當然這個過濾器必須實現介面javax.servlet.Filter。
然後就可以在過濾器這個介面方法中增加過濾條件了
public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)
thows ServletException, IOException{

然後你可以把過濾條件寫出來,寫在doFilter方法裡面
我這里寫一個簡單的例子:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();

if(session.getAttribute("userSession")==null)
{
response.sendRedirect("error/priv_error.jsp");
return;
}
else
{
chain.doFilter(request, response);
}

}

在上面的這個過濾方法中,如果session.getAttribute("userSession")==null)那就跳轉到錯誤頁面。如果不為空,則繼續
所以
chain.doFilter(request, response);的意思就是跳轉到下個頁面,
明白了吧?

如果還有不明白。,可以留下你的問題

------------------------
還有忘了回答你的問題 了。java會在處理每一個Servlet時都走一次Filter的。所以你不必擔心你的過濾不起作用了
而且chain.doFilter(request.response);
是必須的。沒有他,程序就不會繼續了:)他是讓你的request和response繼續運行哦
--------------------------------
這個你就可接寫/*
好了。它是說對哪些范圍起作里這個過濾器

❸ filter過濾器怎麼設置攔截servlet請求

servletNamecom.xxx.xxx.servletClassservletName*.doweb.xml裡面的過濾器配置只支持以下三種①完內全匹配/test/.do②目容錄匹配/test/*③擴展名匹配*.do而不支持/*.do這樣的

❹ 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;
}

}

❺ Filter過濾器中指定過濾內容怎麼配置

你的問題好像是只需要Filter處理jsp的請求,只要改web.xml里Filter配置就可以。url-pattern別給/*,給/.jsp,如果需要回過濾多種文答件請求,可以再增加filter-mapping,每個的url-pattern對應一種文件。
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>

❻ 怎麼為filter-mapping中的/*設置例外

在web.xml聲明的一個filter中:

<!– session過濾filter –>

<filter>

<filter-name>SessionFilter</filter-name>

<filter-class>

com.iqbon.jcms.web.util.SessionFilter

</filter-class>

<init-param>

<param-name>excludedPages</param-name>

<param-value>/admin/login.do</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>SessionFilter</filter-name>

<url-pattern>/admin/*</url-pattern>

</filter-mapping>

可以看到url-pattern的設置裡面過濾的url規則是/admin/*,如果要把/admin/login.do排除在過濾url之外。

可以結合init-param的初始化參數和HttpServletRequest的getServletPath()方法來判斷。

首先加上初始化參數:

<init-param>

<param-name>excludedPages</param-name>

<param-value>/admin/login.do</param-value>

</init-param>

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;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import com.iqbon.jcms.util.KeyConstant;

/**

* session過濾器

*/

public class SessionFilter implements Filter {

/**

* 需要排除的頁面

*/

private String excludedPages;

private String[] excludedPageArray;

/**

* @see Filter#destroy()

*/

public void destroy() {

return;

}

/**

* 對session進行判斷當前訪問是否有登錄

*/

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

boolean isExcludedPage = false;

for (String page : excludedPageArray) {//判斷是否在過濾url之外

if(((HttpServletRequest) request).getServletPath().equals(page)){

isExcludedPage = true;

break;

}

}

if (isExcludedPage) {//在過濾url之外

chain.doFilter(request, response);

} else {//不在過濾url之外,判斷session是否存在

HttpSession session = ((HttpServletRequest) request).getSession();

if (session == null || session.getAttribute(KeyConstant.SESSION_KEY_USER) == null) {

((HttpServletResponse) response).sendRedirect(「/login.htm」);

} else {

chain.doFilter(request, response);

}

}

}

/**

* 初始化函數,獲取需要排除在外的url

*/

public void init(FilterConfig fConfig) throws ServletException {

excludedPages = fConfig.getInitParameter(「excludedPages」);

if (StringUtils.isNotEmpty(excludedPages)) {

excludedPageArray = excludedPages.split(「,」);

}

return;

}

}

❼ filter過濾器問題

你的問題好像是只需要Filter處理jsp的請求,只要改web.xml里Filter配置就可以。url-pattern別給/*,給/.jsp,如果需要過濾多種文件請求,可以再增加filter-mapping,每個的url-pattern對應一種文件。
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>

❽ 怎麼為filter-mapping中的/*設置例外

首先加上初始化參數:
Xml代碼
<init-param>
<param-name>excludedPages</param-name>
<param-value>/admin/login.do</param-value>
</init-param>
其次在filter的java代碼中加上判斷:
Java代碼
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;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import com.iqbon.jcms.util.KeyConstant;

/**
* session過濾器
*/
public class SessionFilter implements Filter {

/**
* 需要排除的頁面
*/
private String excludedPages;

private String[] excludedPageArray;
/**
* @see Filter#destroy()
*/
public void destroy() {
return;
}

/**
* 對session進行判斷當前訪問是否有登錄
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
boolean isExcludedPage = false;
for (String page : excludedPageArray) {//判斷是否在過濾url之外
if(((HttpServletRequest) request).getServletPath().equals(page)){
isExcludedPage = true;
break;
}
}
if (isExcludedPage) {//在過濾url之外
chain.doFilter(request, response);
} else {//不在過濾url之外,判斷session是否存在
HttpSession session = ((HttpServletRequest) request).getSession();
if (session == null || session.getAttribute(KeyConstant.SESSION_KEY_USER) == null) {
((HttpServletResponse) response).sendRedirect(「/login.htm」);
} else {
chain.doFilter(request, response);
}
}
}

/**
* 初始化函數,獲取需要排除在外的url
*/
public void init(FilterConfig fConfig) throws ServletException {
excludedPages = fConfig.getInitParameter(「excludedPages」);
if (StringUtils.isNotEmpty(excludedPages)) {
excludedPageArray = excludedPages.split(「,」);
}
return;
}

}

❾ filter的使用 java 過濾器的幾種使用方法

過濾器來

過濾器是處於客戶端自與伺服器資源文件之間的一道過濾網,在訪問資源文件之前,通過一系列的過濾器對請求進行修改、判斷等,把不符合規則的請求在中途攔截或修改。也可以對響應進行過濾,攔截或修改響應。

過濾器一般用於登錄許可權驗證、資源訪問許可權控制、敏感詞彙過濾、字元編碼轉換等等操作,便於代碼重用,不必每個servlet中還要進行相應的操作。

❿ filter過濾器配置如何不過濾一些頁面

直接添加多個文件映射啊,為每個需要進行過濾的文件都寫個映射標簽

閱讀全文

與filter過濾器例外相關的資料

熱點內容
石油廢水成分 瀏覽:977
熱水器維里的水垢怎麼出里 瀏覽:404
山西新農村污水處理設備多少錢 瀏覽:431
廢水回收泵 瀏覽:412
eva樹脂專用附著力促進劑 瀏覽:962
凈水器換完濾芯廢水管一直漏水怎麼回事 瀏覽:859
管道凈水機怎麼用 瀏覽:601
凈水器濾芯不好有什麼後果 瀏覽:205
為什麼醋能清潔水垢 瀏覽:524
修真模擬器怎麼提升命中率 瀏覽:603
安順凈化器怎麼樣 瀏覽:855
誤食氨基類酸除垢劑 瀏覽:552
葡萄酒怎麼過濾芯 瀏覽:542
廢水流量多少 瀏覽:60
edi模塊反沖有漏樹脂現象 瀏覽:554
化學蒸餾水濃氨水實驗 瀏覽:521
為什麼開水有水垢 瀏覽:825
污水站循環水泵作用 瀏覽:452
凈化器買什麼類型 瀏覽:703
污水處理廠厭氧池ph變化 瀏覽:494