Ⅰ 如何用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(){}
}
Ⅱ 在filter中,我要過濾所有JSP和action,但登錄頁login.jsp和login.action不能過濾,這樣的話怎麼配置
把login.jsp換一個後綴嘛,比如login.htm
Ⅲ web.xml lt;filter-mapping>我不想過濾html文件,怎麼設置
你可以設置想過濾源的動作,這樣就不過濾html了。比如下面這樣:
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.usl</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
Ⅳ Java:現在Filter把所有請求都攔截了,怎麼使Filter不過濾login.jsp頁面呢
對於這種,抄我說兩種方法:
1、將你所有的JSP頁面單獨放在一個文件夾里(假如jspPage),jspPage文件夾里可根據類別分若乾子文件夾,再把相對應的JSP放在子文件夾里;
JS、CSS及圖片等分別放在外面的文件夾里(與文件夾jspPage並列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是這種
2、在過濾的JAVA文件中,在doFilter方法里進行判斷,將後綴名為.css、.js等直接設置為通過就行了,這種較為復雜,在一些特殊情況下才用到,一般不
Ⅳ 我用純servlet寫了個登錄驗證小項目我想用filter過濾,即必須通過登錄往下走,否則跳回登錄頁面
這個,還是這做的好,這是最基本的了。給你思路:你要配置攔截路徑,除了登錄,注冊外,其他的頁面都放到一個新的文件夾下如file,然後配置攔截,/file/*就可以了。
祝,學習順利。
Ⅵ 怎麼讓filter不過濾某幾個動作
判斷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);
Ⅶ 使用filter過濾用戶是否登錄
登錄成功後 將用戶名放在session裡面 在過濾器裡面進行驗證session是否為空 為空跳轉到登錄頁面
Ⅷ 急!如何讓過濾器不過濾頁面中引用的CSS或JS頁面
對於這種,我說兩種方法:
1、將你所有的JSP頁面單獨放在一個文件夾里專(假如jspPage),jspPage文件夾里可根據屬類別分若乾子文件夾,再把相對應的JSP放在子文件夾里;
JS、CSS及圖片等分別放在外面的文件夾里(與文件夾jspPage並列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是這種
2、在過濾的JAVA文件中,在doFilter方法里進行判斷,將後綴名為.css、.js等直接設置為通過就行了,這種較為復雜,在一些特殊情況下才用到,一般不推薦
Ⅸ 如何用java過濾器是不要把login.jsp頁面也過濾掉
|public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest hrequest = (HttpServletRequest) request;
String uri = hrequest.getRequestURI();得到請求地址
String file[] = uri.split("/");通過/分隔,這樣,數組的最後一個值,就是頁面,
你比較下file[file.lenght-1].equals("login.jsp")就可以了。版
if(file[file.lenght-1].equals("login.jsp"||)){}要解除某頁權面的過濾,用||在if裡面添加就可以
chain.doFilter(request, response);
}
為了讓層次跟清晰一點,最好還是分文件夾。
Ⅹ filter過濾器配置如何不過濾一些頁面
直接添加多個文件映射啊,為每個需要進行過濾的文件都寫個映射標簽