導航:首頁 > 凈水問答 > filter不過濾驗證碼

filter不過濾驗證碼

發布時間:2022-05-20 15:27:24

㈠ 在filter中,我要過濾所有JSP和action,但登錄頁login.jsp和login.action不能過濾,這樣的話怎麼配置

把login.jsp換一個後綴嘛,比如login.htm

㈡ 如何用Filter實現對注冊用戶是否登錄的過濾

下面是我從前寫的項目里用的用戶過濾。供你參考。你可以去www.mldn.cn上看看,那兒有過濾器的視頻教程。
package filter;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.* ;

//對用戶是否登錄進行過濾
public class UserFilter implements Filter
{

//過濾器初始化
public void init(FilterConfig filterConfig) throws ServletException
{

}

//實現Filter介面主方法
public void doFilter(ServletRequest request,

ServletResponse response,

FilterChain chain) throws ServletException,IOException
{
response.setContentType("text/html ;charset=GBK");
request.setCharacterEncoding("GBK");
PrintWriter out=response.getWriter();

HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession();
//System.out.println(session.getAttribute("user"));

//user是用戶登錄後session.setAtrribute("user",×××)中的user
if(session.getAttribute("user")!=null){
chain.doFilter(request, response);
}
else{//未登錄,後退
out.println("<script language='javascript'>alert('你還未登錄');");
out.println("history.go(-1);</script>");

}
}
//過濾器銷毀
public void destroy(){}
}

㈢ 為何java中的過濾器filter不起作用

過濾器配置正抄確,但卻沒有起到過濾作用,原因可能是排放位置的問題。如下:

錯誤:

<filter>
<filter-name>struts2</filter-name>
<filter-class>com.yiwo.base.web.filter.PrepareFilter</filter-class>
</filter>

<filter>
<filter-name>userFilter</filter-name>
<filter-class>com.yiwo.base.web.filter.UserFilter</filter-class>
</filter>

㈣ 關於javaweb的過濾器filter的疑問

過濾器只過濾請求,不過濾響應。請求方式有REQUEST、INCLUE、FORWARD、ERROR四種。
=============
你在說什麼?
用戶在請求頁面時,伺服器不會直接把請求給頁面,而是先通過Filter,直到所有Filter都通過之後,再給要請求的頁面。容器再把動態頁面轉成靜態的,再發給用戶端瀏覽器。

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

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

㈥ 怎麼讓filter不過濾某幾個動作

<filter-mapping
<filter-nameCommonHeadersFilter</filter-name
<url-pattern/*</url-pattern
</filter-mapping/*是對所有的路徑過濾,那麼你可以定義你不過濾的路徑為
<filter-mapping
<filter-nameCommonHeadersFilter</filter-name
<url-pattern/yes/*</url-pattern
</filter-mapping
那麼所有的不包含上面的路徑都不做;
2,如果這個filter是你自己寫的,或者你反編譯後能看懂得話,那麼直接在過濾器裡面自己判斷了!

㈦ jsp的驗證碼怎麼讓過濾器不過濾

將驗證碼部分做成一個servlet服務或者action服務,然後再過濾器里對路徑進行識別,發現是驗證碼服務時不處理。

㈧ Java:現在Filter把所有請求都攔截了,怎麼使Filter不過濾login.jsp頁面呢

對於這種,抄我說兩種方法:

1、將你所有的JSP頁面單獨放在一個文件夾里(假如jspPage),jspPage文件夾里可根據類別分若乾子文件夾,再把相對應的JSP放在子文件夾里;
JS、CSS及圖片等分別放在外面的文件夾里(與文件夾jspPage並列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是這種

2、在過濾的JAVA文件中,在doFilter方法里進行判斷,將後綴名為.css、.js等直接設置為通過就行了,這種較為復雜,在一些特殊情況下才用到,一般不

㈨ 什麼是serverlet,filter,listener

對一類 url,或所有 url 進行業務處理 對各種 url 之類進行匹配,查找,執行相應操作,與 action 相比較而言,action 只能針對 某一特定的 url 進行匹配,進行操作 如: <form action = "update.action"> action 對應的 url 是固定的,對於 struts1.x 可能一個 action 只有一個 url 對於 struts2.0,一個 action 可能有多個 url,看它實現的方法數量,不過這些 url 在提交 之前都是已經的,固定的。而上面四種可以對任意 url 進行操作,如 <url-pattern>*.action</url-pattern> 區別:1,servlet 流程是短的,url 傳來之後,就對其進行處理,之後返回或轉向到某一自 己指定的頁面。它主要用來在 業務處理之前進行控制. 2,filter 流程是線性的, url 傳來之後,檢查之後,可保持原來的流程繼續向下執行, 被下一個 filter, servlet 接收等,而 servlet 處理之後,不會繼續向下傳遞。filter 功能可用來保持流程繼續按照原來的方式進行下去,或者主導流程,而 servlet 的功能主要用 來主導流程。 filter 可用來進行字元編碼的過濾,檢測用戶是否登陸的過濾,禁止頁面緩存等 3, servlet,filter 都是針對 url 之類的, listener 是針對對象的操作的, session 而 如 的創建,session.setAttribute 的發生,在這樣的事件發生時做一些事情。 可用來進行:Spring 整合 Struts,為 Struts 的 action 注入屬性,web 應用定時任 務的實現,在線人數的統計等 4,interceptor 攔截器,類似於 filter,不過在 struts.xml 中配置,不是在 web.xml, 並且不是針對 URL 的,而是針對 action,當頁面提交 action 時,進行過濾操作,相當於 struts1.x 提供的 plug-in 機制,可以看作,前者是 struts1.x 自帶的 filter,而 interceptor 是 struts2 提供的 filter. 與 filter 不同點:(1)不在 web.xml 中配置,而是在 struts.xml 中完成配置,與 action 在一起 ( 2 interceptor 來在接收之前做事 一,servlet 1, 在 web.xml 中配置 Servlet <servlet> <servlet-name>AutoServlet</servlet-name> <servlet-class> com.servlet.AutoServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>AutoServlet</servlet-name> <url-pattern>/AutoServlet</url-pattern> </servlet-mapping> 2,定義 AutoServlet,繼承 HttpServlet,實現方法 doGet, doPost ) 可由 action 自己指定用哪個 3, 應用: (1)Struts1.x 就是一個 Servlet, 它會在 doGet 方法中讀取配置文件 struts-config.xml 進行 action 的匹配,進行 (2)驗證碼生成(也可用 action 來做) 業務處理 二,filter 1, web.xml 配置 <filter> <filter-name>checkUrl</filter-name> <filter-class>com.lvjian.filter.CheckUrl</filter-class> <init-param> <param-name>name</param-name> <param-value>asong</param-value> //初始化傳參,得到時在 filter 的 init 方法中用 filterConfig.getInitParameter( "name" ) </init-param> </filter> <filter-mapping> <filter-name>checkUrl</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2, 繼承 javax.servlet.Filter,實現 doFilter(HttpServletRequest request, HttpServletResponse response FilterChain filterChain) 等方法 HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; //獲取用戶請求的 URI String request_uri = request.getRequestURI(); //獲取 web 應用程序的上下文路徑 String contextPath = request.getContextPath(); //去除上下文路徑,得到剩餘部分的路徑 String uri = request_uri.substring(contextPath.length()); //創建會話 session HttpSession session = request.getSession(true); //保持原有流程不變 filterChain.doFilter( servletRequest , servletResponse ); 3,應用:(1)Struts2.0 (2) 進行字元編碼的過濾,檢測用戶是否登陸的過濾等 (3)禁止頁面緩存,原理就是對各個請求的 url 令其為空,在 doFilter 加入: request.setCharacterEncoding("GB2312");//設置編碼 ((HttpServletResponse)response).setHeader("Pragma" ,"No-cache"); ((HttpServletResponse)response).setHeader("Cache-C ontrol","no-cache"); ((HttpServletResponse)response).setHeader("Expires ","0");//禁止緩存 三,listener 1, 在 web.xml 中配置 <listener> <listener-class>demo.listener.MyContextLoader</listener-class> </listener> //這樣伺服器就會在啟動時創建 MyContextLoader 的一個實例,並開始監聽 servlet,session 的操作 2, 實現 常用的 listener 有: (1) ServletContextListener 監聽 ServletContext。 當創建 ServletContext 時,激 發 contextInitialized(ServletContextEvent sce)方法; 當銷毀 ServletContext 時, 激發 contextDestroyed(ServletContextEvent sce)方法。 (2) 監聽對 ServletContext 屬性的操作,比 如增加、刪除、修改屬性。 (3)HttpSessionListener 監聽 HttpSession 的操作。 當創建一個 Session 時,激發 session Created(HttpSessionEvent se) 方法; 當銷毀一個 Session 時, 激發 sessionDestroyed (HttpSessionEvent se) 方法。 (4)HttpSessionAttributeListener 監聽 HttpSession 中的屬性的操作。 當在 Session 增加一個屬性時,激 發 attributeAdded(HttpSessionBindingEvent se) 方法; 當在 Session 刪除一個屬性時,激發 attributeRemoved(HttpSessionBindingEventse)方法; 當在 Session 屬性被重新設置時,激發 attributeReplaced(HttpSessionBindingEvent se) 方法。 四,interceptor 1, 在 struts.xml 中配置 創建一個 strus.xml 的子配置文件 struts-l99-default.xml,它繼承與 struts2 的 struts-default,此配置文件是其他子配置文件的父類,只要是繼承與該文件的配置文件所 聲明的路徑都會被它過濾 . 方法 1. 普通配置法 <struts> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="e.hust.interceptor.MyInterceptor"></interceptor> </interceptors> <action name="register" class="e.hust.action.RegisterAction"> <result name="input">/register.jsp</result> <result>/result.jsp</result> <!-- 在自定義 interceptor 並將其 ref 時, 系統會覆蓋掉默認的 interceptor-stack(defaultStack), 為了保證系統默認的 defaultStack 不受影 響, 我們需要顯式的將其引入 --> <!-- 注意兩個 interceptor-ref 的順序, 順序不同, 執行效果也不同: 先配置的先 執行/後配置的先退出(先進後出) --> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="myInterceptor"></interceptor-ref> </action> </package> </struts> 方法 2. 配置攔截器棧(即將多個 interceptor 串聯的一種元素)。然後在<action>中引入 該攔截器棧就可以了。 執行順序為先配置的先執行 這樣做的原因是:多個 action 有相同的多個 interceptor 時,如一般自己寫一個,系統 默認的有一個,要注入兩個, 對多個 action 都寫這兩個,不利於修改,可以寫成一個鏈,只需引用此鏈即可。 (1)攔截目標對象(被代理對象),這里目標對象就是 action;(2)攔截器(一個類,動態的將 某些方法插入到目標對象的某方法的 before、after);(3)對目標對象生成的(動態)代理對 象(代理對象內部方法綜合了目標對象方法+攔截器方法)。程序最終執行的是目標對象的代理, 而這個代理已經插入了 interceptor。攔截器作用:攔截 action。interceptor 相當於一 個入口和出口, 通過 interceptor 進入 action, 執行完 action 的代碼再通過 interceptor 出去。針對"struts2 -- interceptor(Interceptor 怎麼寫)"這篇文章的 MyInterceptor.class 和 MyInterceptor2.class。根據下面的配置文件執行程 序 <struts> <package name="struts2" extends="struts-default"> <struts> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="e.hust.interceptor.MyInterceptor"></interceptor> <interceptor-stack name="myInterceptorStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <action name="register" class="e.hust.action.RegisterAction"> <result name="input">/register.jsp</result> <result>/result.jsp</result> <interceptor-ref name="myInterceptorStack"></interceptor-ref> </action> </package> </struts> 方法 3. 修改默認攔截器,將自定義的攔截器棧定義為 struts2 的默認攔截器。 <struts> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="e.hust.interceptor.MyInterceptor"></interceptor> <interceptor-stack name="myInterceptorStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 此默認 interceptor 是針對當前包內所有 action 的,若不為 action 顯式指定 interceptor,就會用 default-interceptor-ref--> <!-- 如果某個 action 中引入了 interceptor, 則在這個 action 中此默認 interceptor 就會失效 --> <default-interceptor-ref name="myInterceptorStack"></default-interceptor-ref> <action name="register" class="e.hust.action.RegisterAction"> <result name="input">/register.jsp</result> <result>/result.jsp</result> </action> </package> </struts> 3. extends MethodFilterInterceptor 的攔截器如何配置哪些方法該攔截、哪些方法不 該攔截(針對方法攔截的配置) <struts> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor3" class="e.hust.interceptor.MyInterceptor3"></interceptor> </interceptors> <action name="register" class="e.hust.action.RegisterAction" method="queryAll"> <result name="input">/register.jsp</result> <result>/result.jsp</result> <!-- myInterceptor3 攔截器只對 RegisterAction 中的 queryAll()方法和 insert()方法進行了攔截, 其他方法未進行攔截 --> <interceptor-ref name="myInterceptor3"> <param name="includeMethods">queryAll, execute</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> <action name="register" class="e.hust.action.RegisterAction" method="insert"> <result <span 2, 實現 interceptor 類似於 filter, 自定義 filter 是實現 javax.servlet.Filter 來完成, 而 interceptor 類似,它通過實現 com.opensymphony.xwork2.interceptor.Interceptor 來自定義實現。 該介面提供了三個方法: 1) void init(); 在該攔截器被初始化之後,在該攔截器執行攔截之前,系統回調該 方法。對於每個攔截器而言,此方法只執行一次。 2) void destroy();該方法跟 init()方法對應。在攔截器實例被銷毀之前,系統將 回調該方法。 3) String intercept(ActionInvocation invocation) throws Exception; 該方法是用戶需要實現的攔截動作。該方法會返回一個字元串作為邏輯視圖。 除此之外,繼承類 com.opensymphony.xwork2.interceptor.AbstractInterceptor 是更簡單的一種實現攔截器類的方式,因為此類提供了 init()和 destroy()方法的空實現, 這樣我們只需要實現 intercept 方法。 3, 應用 import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; /** * 許可權檢查攔截器 * * @author qiujy * @version 1.0 */ public class AuthorizationInterceptor extends AbstractInterceptor { /* * 攔截 Action 處理的攔截方法 * */ public String intercept(ActionInvocation invocation) throws Exception { //清除後台頁面的緩存 HttpServletResponse response = ServletActionContext.getResponse(); // ServletActionContext 自動提供,可讓其獲得 request,session,response 等 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setHeader("Expires","0"); Map session = invocation.getInvocationContext().getSession(); String userName = (String) session.get("userName"); if (null != userName && userName.equals("test")) { System.out.println("攔截器:合法用戶登錄---"); return invocation.invoke(); //保持原來的流程不改變 } else { System.out.println("攔截器:用戶未登錄---"); return Action.LOGIN; //返回到配置文件中名字為 login 的 action } } }

㈩ 恆星泵閥:filter過濾器配置如何不過濾一些頁面

詳細信息:關於我有幾十個.jsp文件其中有3(aaa.jsp;bbb.jsp;ccc.jsp)個不想通過過濾器,其他的都要經過過濾,不知道如何配置? 由於/*就是全部過濾了,welcome標簽又只能添一個頁面 正文:一般我的方法是 判斷uri的是否是這三個 如果是這三個,不做處理,直接直接 下一步 ================= 唉,直接給你看源碼吧 在doFilter方法里寫上 String contextPath = InitObjects.getContextPath(); HttpServletRequest httpServletRequest = (HttpServletRequest) request; //取得用戶要求的uri String uri = httpServletRequest.getRequestURI(); //eccludedPages是個List,寄存著比如index.jsp,error.jsp等不需要過濾的頁面 if (!excludedPages.contains(uri)) { } } filterChain.doFilter(request, response); 1.直接添加多個文件映照啊,為每一個需要進行過濾的文件都寫個映照標簽 2.如果你不想過濾某些頁面,太好的方法我也不知道。你可以這樣做: 除不想過濾的頁面,其餘的都過濾配置到web.xml中。 過濾指定頁面: LogonFilter com.syict.lupeng.filter.LogonFilter LogonFilter //過濾import.jsp /import.jsp LogonFilter //過濾query.jsp /query.jsp 也就是把要過濾的都配置上去,頁面多,配置的就要多。 3.在你 的web.xml 文件 里看看配置 如果是這樣 filter/* 可以嘗試 把你的3個文件放到另外一個包里 java 包的概念就是文件夾

閱讀全文

與filter不過濾驗證碼相關的資料

熱點內容
污水泵100口徑變90口徑有什麼 瀏覽:731
法國禁播電影 瀏覽:912
上汽大眾原廠濾芯是什麼牌子 瀏覽:936
油煙凈化器高壓電源高頻范圍多少 瀏覽:133
公積金的哪幾部電影能投屏 瀏覽:700
污水處理系統要注意那些安全 瀏覽:563
吳君如電影在線觀看國語高清 瀏覽:490
他經常在星期六看電影英文翻譯 瀏覽:413
保定益之源凈水器加盟前景如何 瀏覽:958
有沒有超清看片的網站推薦 瀏覽:200
德龍除垢液主要成分 瀏覽:945
日本邪惡cg動畫 瀏覽:355
韓國網劇樓上有夫之婦是我輔導老師 瀏覽:432
手機看的視頻網站在哪 瀏覽:785
類似戀愛的電影 瀏覽:940
葡萄酒蒸餾法的優點與缺點 瀏覽:807
韓國影片女主獲得百億 瀏覽:529
鄉村凈水器哪個型號好 瀏覽:989
法國啄木鳥系列電影推薦 瀏覽:784
風流聖途小說免費閱讀 瀏覽:554