国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java中filter用法完整代碼示例

Java中filter用法完整代碼示例

2021-03-28 15:58胡一生 Java教程

這篇文章主要介紹了Java中filter用法完整代碼示例,分享了瀏覽器不緩存頁(yè)面的過(guò)濾器,檢測(cè)用戶是否登陸的過(guò)濾器等相關(guān)實(shí)例,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下

本文研究的主要是Javafilter過(guò)濾器的相關(guān)用法,具體實(shí)現(xiàn)代碼如下。

filter過(guò)濾器主要使用于前臺(tái)向后臺(tái)傳遞數(shù)據(jù)是的過(guò)濾操作。程度很簡(jiǎn)單就不說(shuō)明了,直接給幾個(gè)已經(jīng)寫(xiě)好的代碼:

一、使瀏覽器不緩存頁(yè)面的過(guò)濾器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * 用于的使 Browser 不緩存頁(yè)面的過(guò)濾器
 */
public class ForceNoCacheFilter implements Filter {
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException
  {
    ((HttpServletResponse) response).setHeader("Cache-Control","no-cache");
    ((HttpServletResponse) response).setHeader("Pragma","no-cache");
    ((HttpServletResponse) response).setDateHeader ("Expires", -1);
    filterChain.doFilter(request, response);
  }
  public void destroy()
  {
  }
  public void init(FilterConfig filterConfig) throws ServletException
  {
  }
}

二、檢測(cè)用戶是否登陸的過(guò)濾器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class CheckLoginFilter implements Filter  { 
  protected FilterConfig filterConfig = null
  private String redirectURL = null
  private List notCheckURLList = new ArrayList(); 
  private String sessionKey = null
 
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException 
  
    HttpServletRequest request = (HttpServletRequest) servletRequest; 
    HttpServletResponse response = (HttpServletResponse) servletResponse; 
 
    HttpSession session = request.getSession(); 
    if(sessionKey == null
    
      filterChain.doFilter(request, response); 
      return
    
    if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null
    
      response.sendRedirect(request.getContextPath() + redirectURL); 
      return
    
    filterChain.doFilter(servletRequest, servletResponse); 
  
 
  public void destroy() 
  
    notCheckURLList.clear(); 
  
 
  private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) 
  
    String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); 
    return notCheckURLList.contains(uri); 
  
 
  public void init(FilterConfig filterConfig) throws ServletException 
  
    this.filterConfig = filterConfig; 
    redirectURL = filterConfig.getInitParameter("redirectURL"); 
    sessionKey = filterConfig.getInitParameter("checkSessionKey"); 
 
    String notCheckURLListStr = filterConfig.getInitParameter("notCheckURLList"); 
 
    if(notCheckURLListStr != null
    
      StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";"); 
      notCheckURLList.clear(); 
      while(st.hasMoreTokens()) 
      
        notCheckURLList.add(st.nextToken()); 
      
    
  
}

三、字符編碼的過(guò)濾器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import javax.servlet.*;
import java.io.IOException;
/**
 * 用于設(shè)置 HTTP 請(qǐng)求字符編碼的過(guò)濾器,通過(guò)過(guò)濾器參數(shù)encoding指明使用何種字符編碼,用于處理Html Form請(qǐng)求參數(shù)的中文問(wèn)題
 */
public class CharacterEncodingFilter 
implements Filter 
{
    protected FilterConfig filterConfig = null;
    protected String encoding = "";
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException 
      {
        if(encoding != null
              servletRequest.setCharacterEncoding(encoding);
        filterChain.doFilter(servletRequest, servletResponse);
    }
    public void destroy() 
      {
        filterConfig = null;
        encoding = null;
    }
    public void init(FilterConfig filterConfig) throws ServletException 
      {
        this.filterConfig = filterConfig;
        this.encoding = filterConfig.getInitParameter("encoding");
    }
}

四、記錄用戶的訪問(wèn)操作器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package com.qwserv.itm.pfl.log.svr;
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 java.text.SimpleDateFormat;
import javax.servlet.http.HttpServletRequest;
import com.qwserv.itm.api.pfl.sm.vo.Person;
import java.sql.*;
import com.qwserv.itm.api.ServiceAccess;
import com.qwserv.itm.util.toolkit.DebugUtil;
public class ObserveFilter implements Filter {
    protected static DebugUtil log = DebugUtil.getInstances("pfl-log", ObserveFilter.class);
    public void destroy() {
    }
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
      ServletException {
        //記錄用戶的訪問(wèn)操作
        HttpServletRequest request1 = (HttpServletRequest)request;
        StringBuffer url = request1.getRequestURL();
        //對(duì)url進(jìn)行過(guò)濾,如果是js/css/image則不進(jìn)行處理
        if (judgeFile(url.toString())){
            String operTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").
                      format(new java.util.Date());
            String hostIp = request.getRemoteAddr();
            String sessionId = request1.getRequestedSessionId();
            String userId = "";
            Person person = (Person)request1.getSession().getAttribute("userObj");
            if (null != person && null != person.getUser()){
                userId = person.getUser().getId();
            }
            String queryString = request1.getQueryString();
            if (null != queryString) {
                url.append('?');
                url.append(queryString);
            }
            //保存到數(shù)據(jù)庫(kù)中
            saveToDb(userId,hostIp,sessionId,url.toString(),operTime,"");
        }
        // Pass control on to the next filter
        chain.doFilter(request, response);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    public Boolean judgeFile(String url){
        if (url.endsWith(".gif") || url.endsWith(".jpg") || url.endsWith(".png")
                || url.endsWith(".bmp") || url.endsWith(".css") || url.endsWith(".js")
                || url.endsWith(".jsx")){
            return false;
        } else {
            return true;
        }
    }
    public int saveToDb(String userId, String hostIp,String sessionId,String url,
          String operTime,String desc){
        //將報(bào)表任務(wù)數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中
        Connection conn = null;
        Statement st = null;
        try {
            //構(gòu)造sql表達(dá)式,將數(shù)據(jù)插入數(shù)據(jù)庫(kù)
            conn = ServiceAccess.getSystemSupportService().getDefaultConnection();
            st = conn.createStatement();
            String sql = "insert into LOG_OBSERVE_HISTORY(USERID,URL,Detail,SessionID,HostName,StartDate)  values('"+
                      userId + "','" + url + "','" + desc + "','" + sessionId
                      + "','" + hostIp + "','" + operTime + "')";
            if (ServiceAccess.getSystemSupportService().getConnectionType(conn)==ServiceAccess.getSystemSupportService().JCA_TYPE_ORACLE){
                sql = "insert into LOG_OBSERVE_HISTORY(Id,USERID,URL,Detail,SessionID,HostName,StartDate) values(LOG_OBSERVE_SEQ.nextval,'"+
                            userId + "','" + url + "','" + desc + "','" + sessionId
                            + "','" + hostIp + "',TO_DATE('" + operTime
                            + "','YYYY-MM-DD HH24:MI:SS'))";
            }
            st.executeUpdate(sql);
        }
        catch (Exception e) {
            e.printStackTrace();
            log.error("--------------------The url String is:" + url + "-------------------------------");
            return 1;
            //表示操作失敗
        }
        finally {
            if (null != st)
                  {
                try{
                    st.close();
                }
                catch(Exception e)
                        {
                    e.printStackTrace();
                }
                st = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
                conn = null;
            }
        }
        return 0;
        //表示操作成功
    }
}
?
1
2
3
4
5
6
7
8
<filter>
<filter-name>ObserveFilter</filter-name>
<filter-class>com.qwserv.itm.pfl.log.svr.ObserveFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObserveFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

五.Filter防止用戶訪問(wèn)一些未被授權(quán)的資源

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.drp.util.filter;
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;
public class AuthFilter implements Filter {
    public void destroy() {
    }
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, 
          FilterChain filterChain) throws IOException, ServletException {
        //1,doFilter方法的第一個(gè)參數(shù)為ServletRequest對(duì)象。此對(duì)象給過(guò)濾器提供了對(duì)進(jìn)入的信息(包括表單數(shù)據(jù)、cookie和HTTP請(qǐng)求頭)的完全訪問(wèn)。第二個(gè)參數(shù)為ServletResponse,通常在簡(jiǎn)單的過(guò)濾器中忽略此參數(shù)。最后一個(gè)參數(shù)為FilterChain,此參數(shù)用來(lái)調(diào)用servlet或JSP頁(yè)。 
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        //;//如果處理HTTP請(qǐng)求,并且需要訪問(wèn)諸如getHeader或getCookies等在ServletRequest中無(wú)法得到的方法,就要把此request對(duì)象構(gòu)造成HttpServletRequest 
        HttpServletResponse response = (HttpServletResponse)servletResponse。 
                String currentURL = request.getRequestURI();
        //取得根目錄所對(duì)應(yīng)的絕對(duì)路徑: 
        String targetURL = currentURL.substring(currentURL.indexOf("/", 1), currentURL.length());
        //截取到當(dāng)前文件名用于比較 
        HttpSession session = request.getSession(false);
        if (!"/login.jsp".equals(targetURL)) {
            //判斷當(dāng)前頁(yè)是否是重定向以后的登錄頁(yè)面頁(yè)面,如果是就不做session的判斷,防止出現(xiàn)死循環(huán) 
            if (session == null || session.getAttribute("user") == null) {
                //*用戶登錄以后需手動(dòng)添加session 
                System.out.println("request.getContextPath()=" + request.getContextPath());
                response.sendRedirect(request.getContextPath() + "/login.jsp");
                //如果session為空表示用戶沒(méi)有登錄就重定向到login.jsp頁(yè)面 
                return;
            }
        }
        //加入filter鏈繼續(xù)向下執(zhí)行 
        filterChain.doFilter(request, response);
        //.調(diào)用FilterChain對(duì)象的doFilter方法。Filter接口的doFilter方法取一個(gè)FilterChain對(duì)象作為它的一個(gè)參數(shù)。在調(diào)用此對(duì)象的doFilter方法時(shí),激活下一個(gè)相關(guān)的過(guò)濾器。如果沒(méi)有另一個(gè)過(guò)濾器與servlet或JSP頁(yè)面關(guān)聯(lián),則servlet或JSP頁(yè)面被激活。
    }
    public void init(FilterConfig filterConfig) throws ServletException {
    }
}

html

?
1
2
3
4
5
6
7
8
<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.drp.util.filter.AuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>*.jsp</url-pattern>//表示對(duì)所有jsp文件有效
</filter-mapping>

總結(jié)

以上就是本文關(guān)于Java中filter用法完整代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:https://www.cnblogs.com/go4mi/p/5509879.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人超碰 | 激情综合色综合久久综合 | 成人亚洲天堂 | 精品视频久久久 | 在线观看国产视频 | 久久艹综合| 天天操,夜夜操 | 日韩和的一区二在线 | 四季久久免费一区二区三区四区 | 久久五月视频 | 亚洲激情视频 | 国产99久久| 久久久看片| 亚洲精品免费在线观看视频 | 99精品一区二区三区 | 亚洲视频精品一区 | 51ⅴ精品国产91久久久久久 | 一区二区三区免费看 | 91久久国产露脸精品国产护士 | 宅男lu666噜噜噜在线观看 | 国产一区在线视频 | 日韩成人精品 | 国产成人久久一区二区三区 | 午夜电影网址 | 国产成人精品久久二区二区 | 91免费视频网站 | 日韩亚洲| 狠狠干很很操 | 国产午夜精品美女视频明星a级 | 日韩精品成人 | 96自拍视频 | 伊人亚洲 | а天堂中文最新一区二区三区 | 欧美黄色免费网址 | 国精产品99永久一区一区 | 精品久久亚洲 | 成人免费小视频 | 久久久久国产精品免费免费搜索 | 黄色av网| 婷婷精品久久久久久久久久不卡 | 日韩成人不卡 |