導航:首頁 > 凈水問答 > 登錄的時候filter過濾

登錄的時候filter過濾

發布時間:2022-06-28 23:40:04

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

過濾器來

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

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

㈡ java web filter過濾問題

這樣別人很難回答。你可以打個斷點執行一下,看看他有沒有執行到跳轉login.jsp那行代碼,如果執行了,那就檢查跳轉路徑或者方法有沒有寫錯!

㈢ 使用Filter驗證用戶是否登陸,完整示例

使用Filter進行用戶信息驗證等操作是個不錯的選擇。
這是OnlineFilter.java
初學者注意,這里用到的是javax.servlet.*,不包含在j2sdk里,需要從j2eesdk中,或者$tomcat_home/lib/或者$resin_home/lib/下找到那個jar包。*/packagecn.techtiger.struts;importjava.io.IOException;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;.servlet.Filter{=1L;publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsServletException,IOException{
HttpServletRequestreq=(HttpServletRequest)request;
HttpServletResponseres=(HttpServletResponse)response;
HttpSessionsession=req.getSession();if(session.getAttribute(user)==null){System.out.println(
userhasloggedin.);res.sendRedirect(error.jsp);return;}else{chain.doFilter(request,response);}}publicvoidinit(FilterConfigfilterConfig){
System.out.println(
OnlineFilterinitialized.);}publicvoiddestroy(){System.out.println(
OnlineFilterdestroied);}}<hr/這是web.xml的配置<filter<filter-nameonlineFilter</filter-name
<filter-classcn.techtiger.struts.OnlineFilter</filter-class
</filter
<filter-mapping
<filter-nameonlineFilter</filter-name
<url-patternu_*.jsp</url-pattern
</filter-mapping
testFilter.jsp
<%@pagepageEncoding=UTF-8%<html<body<%session.setAttribute(user,
techtiger);%<formaction=
u_login.jspmethod=post
<inputtype=submitvalue=
測試用戶登錄</form</body</html
u_login.jsp
<%@pagepageEncoding=UTF-8%<html<body用戶已經登錄,所以可以看到此頁面
用戶退出後,再訪問此頁面就訪問不到了,而是直接轉向了error.jsp在OnlineFilter.java中指定的。
<formaction=exit.jspmethod=post
<inputtype=submitvalue=用戶退出</form</body</htmlexit.jsp<%session.removeAttribute(user);response.sendRedirect(
<%@pagepageEncoding=UTF-8%<%out.println(錯誤);%<hr/測試的jsp文件,起始業testFilter.jsp,此頁已經創建了session,所以當訪問u_login.jsp時,通過了filter的過濾,點擊退出,exit.jsp刪除掉了sessionattributeuser(注意:exit.jsp不經過filter過濾),然後返回u_login.jsp,此時已經沒有sessionattributeuser,所以filter把它跳轉至error.jsp

㈣ 如何用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(){}
}

㈤ jsp的filter中配置驗證登錄的過濾器,但是在登錄的時候過濾器執行了兩次

<a href="#" onclick="window.loginForm.submit();"><img src="skin/images/hua02.jpg" width="78" height="27" border="0" onclick="loginForm.submit();"/></a>

看到沒,你的圖片本身就有個onclick="loginForm.submit();,然後又加了個超鏈接…專…當然會提屬交兩次了

㈥ 判斷用戶登錄是用springmvc 攔截器還是filter

在struts2中用過filter過濾器,在springmvc中還有攔截器,它們都能過濾請求,但是到底有什麼區別呢?
一、定義

攔截器 :是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。
過濾器:是在javaweb中,你傳入的request、response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者 struts的action前統一設置字元集,或者去除掉一些非法字元.。
二、xml文件配置
1.filter
該過濾器的方法是創建一個類XXXFilter實現此介面,並在該類中的doFilter方法中聲明過濾規則,然後在配置文件web.xml中聲明他所過濾的路徑

<filter>
<filter-name>XXXFilter</filter-name>
<filter-class>
com.web.util.XXXFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>XXXFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>XXXFilter</filter-name>
<filter-class>
com.web.util.XXXFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>XXXFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
2.Interceptor

它也要實現HandlerInterceptor 介面,這里只介紹方法註解配置

<!-- 攔截器 -->
<mvc:interceptors>
<!-- 多個攔截器,順序執行 -->
<mvc:interceptor>
<mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,將攔截所有的Controller -->
<bean class="com.wy.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 攔截器 -->
<mvc:interceptors>
<!-- 多個攔截器,順序執行 -->
<mvc:interceptor>
<mvc:mapping path="/entryOrJsonController/*" /><!-- 如果不配置或/*,將攔截所有的Controller -->
<bean class="com.wy.interceptor.CommonInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>

三、具體區別

filter
Interceptor

多個的執行順序
根據filter mapping配置的先後順序
按照配置的順序,但是可以通過order控制順序

規范
在Servlet規范中定義的,是Servlet容器支持的
Spring容器內的,是Spring框架支持的。

使用范圍
只能用於Web程序中
既可以用於Web程序,也可以用於Application、Swing程序中。

深度
Filter在只在Servlet前後起作用
攔截器能夠深入到方法前後、異常拋出前後等

四、總結
兩者的本質區別:攔截器是基於java的反射機制的,而過濾器是基於函數回調。從靈活性上說攔截器功能更強大些,Filter能做的事情,他都能做,而且可以在請求前,請求後執行,比較靈活。Filter主要是針對URL地址做一個編碼的事情、過濾掉沒用的參數、安全校驗(比較泛的,比如登錄不登錄之類),太細的話,還是建議用interceptor。不過還是根據不同情況選擇合適的。

㈦ java web中的filter許可權過濾問題

是login.jsp被嵌入到自iframe里吧?三種解決方案:

  1. 首頁菜單欄就做許可權控制,沒有許可權的菜單不展示

  2. 需要許可權的菜單點擊時先ajax請求後台判斷許可權,許可權通過了再載入頁面到iframe,否則頁面重定向到登錄頁

  3. 登錄頁加入js判斷該頁面是否處於iframe中,如果是則重寫parent.location到登錄頁

㈧ 使用filter過濾用戶是否登錄

登錄成功後 將用戶名放在session裡面 在過濾器裡面進行驗證session是否為空 為空跳轉到登錄頁面

㈨ 校驗用戶是否登錄過濾器Filter

CheckLoginFilter net.cnki.tpi.cms.util.CheckLoginFilter redirectURL /login.jsp notCheckURLList /error.jsp;/login.jsp CheckLoginFilter /* 2、然後新創建一個CheckLoginFilter.java類,代碼如下:
/** * 校驗用戶是否已登錄過濾器 * @author lpz * */ public class CheckLoginFilter implements Filter { private FilterConfig filterConfig = null; private String redirectURL = null; private List notCheckURLList = new ArrayList(); public CheckLoginFilter() { } public void destroy() { notCheckURLList.clear(); } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; HttpSession session = request.getSession(); Object userInfo = session.getAttribute("userInfo"); if(!(request) && userInfo==null){ //重定向到指定頁面 response.sendRedirect(request.getContextPath() + redirectURL); }else{ //繼續響應請求 chain.doFilter(servletRequest, servletResponse); } } public void init(FilterConfig fConfig) throws ServletException { this.filterConfig = fConfig; redirectURL = filterConfig.getInitParameter("redirectURL"); String notCheckURLListStr = filterConfig.getInitParameter("notCheckURLList"); if(!MyStringUtil.isNullOrEmpty(notCheckURLListStr)){ //將字元串轉化為list notCheckURLList = MyStringUtil.convStrToList(notCheckURLListStr,";"); } } /** * 校驗當前請求是否在不過濾的列表中 * @param request * @return */ private boolean (HttpServletRequest request) { String uri = request.getServletPath() + (request.getPathInfo() == null ?

閱讀全文

與登錄的時候filter過濾相關的資料

熱點內容
石油樹脂和什麼能結晶 瀏覽:218
飲水機熱水管道漏水怎麼辦 瀏覽:997
空調濾芯不換為什麼會臭 瀏覽:555
小質水龍頭凈水器怎麼樣 瀏覽:868
先科直飲凈水器怎麼安裝 瀏覽:259
湖南蒸餾水廠 瀏覽:307
福寶的空調濾芯怎麼樣 瀏覽:67
海爾櫃式空調過濾網怎麼拆圖 瀏覽:701
樹脂瓦四合院效果圖 瀏覽:657
成都什麼地方有賣小米濾芯 瀏覽:565
關於污水處理的建議書作文 瀏覽:38
魚缸過濾10倍 瀏覽:439
液化氣灶濾芯怎麼下不來 瀏覽:888
流體樹脂瑞士 瀏覽:927
klearbar凈水機怎麼用 瀏覽:12
如何自己換空調濾芯凌派2021 瀏覽:53
蒸餾燒瓶加入瓷片為什麼 瀏覽:473
過濾器球閥DN25內部結構圖 瀏覽:856
蒸餾水會讓電路板短路嗎 瀏覽:669
永久電荷與陽離子交換量 瀏覽:961