欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > java servlet過濾器使用示例

java servlet過濾器使用示例

熱門標簽:地圖標注線上教程 電銷機器人好賣么 電銷機器人是有一些什么技術 杭州ai語音電銷機器人功能 北票市地圖標注 商洛電銷 杭州語音電銷機器人軟件 四川保險智能外呼系統商家 高德地圖標注樣式

Servlet過濾器簡介     
Servlet過濾器實際上就是一個標準的java類,這個類通過實現Filter接口獲得過濾器的功能。它在jsp容器啟動的時候通過web.xml配置文件被系統加載。
Servlet過濾器在接收到用戶請求的時候被調用,當服務器接收到用戶的請求的時候,依次調用配置好的過濾器,完成后將執行請求所要求的servlet,而servlet執行后的響應,則先通過配置好的過濾器后再發送給用戶。

過濾器的用途:
1、用戶認證和授權管理。
2、統計web應用的訪問量和訪問命中率,生成訪問報告。
3、實現web應用的日志處理功能。
4、實現數據壓縮功能。
5、對傳輸的數據進行加密。
6、實現xml文件的XSLT的轉換。
一個servlet過濾器其實是一個java類,它的實現需要分為兩個部分,java類自身以及在web.xml文件中的XML描述。對于filter接口,該接口由一對描述的生命周期的方法init(),destroy(),init方法在服務器初始化過濾器的時候會調用,而destory方法在服務器關閉的時候會調用,還有一個行為方法doFilter方法會在執行過濾操作的時候調用.

Servlet過濾器的配置
Servet過濾器需要通過web應用程序部署描述符文件web.xml來部署到應用中。配置如下

復制代碼 代碼如下:

filter>
    filter-name>Filtername/filter-name>

    filter-class>com.filter.Filter/class/filter-class>

       init-param>
   param-name>file/param-name>
   param-value>filename/param-value>
       /init-param>
    /filter>

    filter-mapping>
 filter-name>Filtername/filter-name>
url-pattern>/*/url-pattern>
   /filter-mapping>

下面是示例:

使用過濾器解決中文編碼問題:
由于java的默認編碼方式是ISO-8859-1,而通常編寫中文應用程序的時候都是使用GB2312或gbk編碼方式。在這種情況下,應在頁面的首部通過%@ page contentType="text/html;charset=gbk"%>命令來指定頁面的編碼方式。這樣中文頁面就可以正常地顯示了。但是如果頁面中村中表單。如一個input輸入框,如果訪問者在其中輸入中文,又提交到某個servlet進行處理的話,java會首先按ISO-5589-1的默認方式對這段文本進行編碼,然后交給servet處理,處理后的文本將還是以ISO-5589-1編碼方式村中,如果這個時候這個文本返回一個按GBK編碼來顯示的頁面,由于編碼格式的不同,很顯然得不到正確的顯示結果。
對于編碼方式的解決方法有很多種,這里主要介紹用過濾器來解決中文編碼問題:

復制代碼 代碼如下:

public class CharacterEncodingFilter implements Filter {
private FilterConfig config;
private String encoding = "ISO8859_1";
public void destroy() {

  config = null;

}

public void doFilter(ServletRequest request, ServletResponse response ,

   FilterChain chain) throws IOException, ServletException {

  request.setCharacterEncoding(encoding);

  chain.doFilter(request, response);

}

public void init(FilterConfig config) throws ServletException {

  this.config  = config;

  String s = config.getInitParameter("encoding");

  if(s!=null){

   encoding = s;

  }

}

}

 然后在是XML的配置:

 

復制代碼 代碼如下:

 filter>

    filter-name>encodingFilter/filter-name>

    filter-class>com.filter.CharacterEncodingFilter/filter-class>

    init-param>

      param-name>encoding/param-name>

      param-value>utf-8/param-value>

    /init-param>

  /filter>

  filter-mapping>

    filter-name>encodingFilter/filter-name>

    url-pattern>/*/url-pattern>

  /filter-mapping>
 

 最后是encoding.jsp的編寫?

 

復制代碼 代碼如下:

 用戶名:c:out value="${param.username}" default="none">/c:out>br>

      密碼:c:out value="${param.userpassword}" default="none">/c:out>br>

      form action="MyJsp.jsp" method="post">

        用戶名:input type="test" name="username"> br>

        密碼:input type="password" name="userpassword">br>

        input type="submit" value="提交">

      /form>
 

啟動tomcat,訪問encoding.jsp,輸入“張山”就可以看到,經過過濾器后,頁面可以正常顯示服務器傳出的信息。。。

使用過濾器記錄用戶訪問日志
對于有些項目,它對于用戶的每次訪問都要有詳細的記錄。那么這是使用記錄日志是一個非常好的解決方法,使用過濾器就可以很輕松地對每次用戶的訪問進行記錄。但是由于同一個訪問者在同一個時段訪問站點不同的頁面時,不能重復記錄日志,否則日志將會在很短的時間內塞滿服務器的硬盤空間。于是這里可以利用session對象來判斷用戶的每次會話,在一次會話中,過濾器只會記錄一次。
下面編寫LogFilter類,這個過濾器主要負責記錄用戶的訪問記錄:

復制代碼 代碼如下:

package com.filter;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

import java.text.SimpleDateFormat;
import java.util.Date;
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.HttpSession;

import com.sun.org.apache.bcel.internal.generic.NEW;

public class LoginFilter implements Filter{

  private FilterConfig config =null;
  private String filename = null;
  private String filtername = null;
  public void destroy() {
    this.config = null;
    this.filename = null;
    this.filtername = null;
  }

  public void doFilter(ServletRequest request , ServletResponse response,
      FilterChain chain ) throws IOException, ServletException {
    HttpServletRequest hRequest = (HttpServletRequest) request;
    // 獲取session對象
    HttpSession session = hRequest.getSession();
    // 先判斷session中的LOGGED是否有值,如沒有則說明是新的請求
    if(null==session.getAttribute("LOGGED")){
      session.setAttribute("LOGGED", "yes");    // 設置LOGGED的值為yes,防止同一會話重復記錄
      File file = new File(this.filename);
      if(!file.exists())
        file.createNewFile();        // 判斷文件是否存在,如果不存在,就建立一個新的

      /*
       * 創建日志記錄內容logContent包括訪問者的IP, 訪問的頁面URL和訪問的時間以及日志過濾器的名字
       */
      String logContent = hRequest.getRemoteHost()+"->"+hRequest.getRequestURI()+" Logged "+getTime()+" By s"+this.filtername+"\r\n";
      RandomAccessFile rf = new RandomAccessFile(this.filename,"rw");   // 建立一個隨機文件操作對象
      rf.seek(rf.length());   // 將寫入指針指向文件的尾部,rf.length()獲得文件的長度,seek文件長度這么長得距離正好是文件的尾部
      rf.writeBytes(logContent);   // 將日志寫入到文件中去
      rf.close();   // 關閉文件
    }
    chain.doFilter(request, response);
  }

  public void init(FilterConfig config) throws ServletException {
    this.config = config;
    this.filename = this.config.getInitParameter("file");
    this.filtername = this.config.getFilterName();
  }

  // 獲取時間
  private String getTime(){
    SimpleDateFormat sdf  = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
    return sdf.format(new Date());
  }

}

這里利用session來限制同一個會話只會記錄一次日志,而不管這個會話中的訪問者訪問了多少個頁面,在第一次訪問的時候,由于session的LOGGED是空的,所以這個時候記錄日志并把LOGGED設置為yes,這樣第二次判斷的時候將不會執行記錄日志。
然后在來配置XML:

復制代碼 代碼如下:

filter>
    filter-name>LogFilter/filter-name>
    filter-class>com.filter.LoginFilter/filter-class>
    init-param>
      param-name>file/param-name>
      param-value>D:/log.txt/param-value>
    /init-param>
  /filter>

  filter-mapping>
    filter-name>LogFilter/filter-name>
    url-pattern>/*/url-pattern>
  /filter-mapping>

配置好XML后,訪問跟目錄下地任何文件,都會可以在D:/log.txt文件中得到訪問者的記錄。

您可能感興趣的文章:
  • Spring Security如何在Servlet中執行
  • servlet+jsp實現過濾器 防止用戶未登錄訪問
  • 基于java servlet過濾器和監聽器(詳解)
  • 深入解析Java的Servlet過濾器的原理及其應用
  • Spring Security中的Servlet過濾器體系代碼分析

標簽:江西 青島 宿州 云浮 紅河 丹東 西藏 貴州

巨人網絡通訊聲明:本文標題《java servlet過濾器使用示例》,本文關鍵詞  java,servlet,過濾器,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《java servlet過濾器使用示例》相關的同類信息!
  • 本頁收集關于java servlet過濾器使用示例的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产精品18久久久久久久网站| 日韩中文字幕av电影| 国产欧美精品一区二区色综合 | 欧美高清你懂得| 51久久夜色精品国产麻豆| 欧美日韩电影一区| 7777精品伊人久久久大香线蕉| 6080日韩午夜伦伦午夜伦| 欧美一区二区在线看| 欧美videos中文字幕| 精品国产第一区二区三区观看体验 | 亚洲综合免费观看高清在线观看| 亚洲资源中文字幕| 免费观看91视频大全| 国产麻豆成人传媒免费观看| 国产成人精品三级麻豆| 国产又黄又嫩又滑又白| 香港三日本8a三级少妇三级99| xxx在线播放| 国语对白在线播放| 7777精品伊人久久久大香线蕉完整版| 日韩午夜激情av| 国产精品久久综合| 日韩—二三区免费观看av| 国产精品一二三区| 激情av中文字幕| 国产黄a三级三级| 欧美日韩午夜影院| 国产精品素人一区二区| 五月天视频一区| 波多野结衣在线一区| aaaaa级少妇高潮大片免费看| 成熟的女同志hd| 欧美成人精品高清在线播放| 自拍视频在线观看一区二区| 日韩福利电影在线观看| 99久久精品免费| 国产wwwwxxxx| 在线亚洲人成电影网站色www| 欧美四级电影网| 日本一区二区成人| 免费观看日韩电影| 国产精品亚洲一区二区无码| 色综合一个色综合| 久久亚洲免费视频| 蜜臀91精品一区二区三区 | 日韩伦理电影网| 国产精品一区二区在线看| 成人影视免费观看| 欧美老女人在线| 亚洲一区二区三区四区在线免费观看| 国产不卡视频一区| 国产综合精品在线| 2020国产精品自拍| 久久99精品久久久久久动态图 | 看国产成人h片视频| 国产肉丝袜一区二区| 精品一区二区综合| 日本人亚洲人jjzzjjz| 日韩欧美在线不卡| 久久99精品一区二区三区| 少妇无套高潮一二三区| 国产午夜精品一区二区 | 久久久久久久av麻豆果冻| 精品一区二区在线视频| 影音先锋制服丝袜| 国产精品天美传媒| 中国老熟女重囗味hdxx| 欧美久久久久久蜜桃| 日日夜夜免费精品视频| 亚洲第九十七页| 精品国产乱码久久久久久蜜臀| 久久91精品久久久久久秒播| av资源在线免费观看| 男人天堂资源网| 日韩美女在线视频| 久久精品国产第一区二区三区| 日本少妇aaa| 一区二区三区蜜桃网| 中文字幕天堂网| 欧美国产综合一区二区| 99精品久久久久久| 亚洲精品在线三区| 91网址在线看| 2欧美一区二区三区在线观看视频| 国精产品一区一区三区mba桃花| 成人免费毛片东京热| 日本免费新一区视频| 自拍偷拍国产精品| 成人avav在线| 日韩一区二区在线看| 成人在线综合网站| 日韩网站在线看片你懂的| 成人午夜碰碰视频| 欧美精品一区二区不卡| 日本wwwwwww| 国产精品久久精品日日| 少妇光屁股影院| 亚洲日本在线视频观看| 久久精品国产亚洲AV成人婷婷| 亚洲高清视频在线| 国产高潮国产高潮久久久91| 久久精品国产99| 欧美精品 国产精品| 成人中文字幕在线| 国产日产精品1区| 天天躁夜夜躁狠狠是什么心态| 香蕉久久一区二区不卡无毒影院| 农村黄色一级片| 国产99久久久精品| 中文在线资源观看网站视频免费不卡| 久久人人爽人人爽人人片| 一区二区三区欧美日| 日本vs亚洲vs韩国一区三区 | 日本一道高清亚洲日美韩| 欧美日韩美少妇| 欧美激情一区二区三区p站| 亚洲精品成人在线| 欧美色图在线观看| 性生交大片免费看l| 亚洲综合一区在线| 欧美嫩在线观看| 四虎精品一区二区| 蜜桃视频一区二区三区| 精品久久久久久无| 日韩在线视频免费看| 国产91色综合久久免费分享| 国产精品久久久久久久裸模| 99热精品免费| 4438x全国最大成人| 婷婷成人激情在线网| 日韩欧美色综合网站| 亚洲一区二区四区蜜桃| 欧美日韩午夜精品| 国产美女精品久久| 高清国产午夜精品久久久久久| 亚洲欧洲成人av每日更新| 精品国产国产综合精品| 不卡的av电影在线观看| 亚洲自拍与偷拍| 亚洲精品一区二区三区四区高清| 91久久久久久久久久久久久久| 99久久伊人网影院| 午夜精品久久久久久久99水蜜桃| 精品国产百合女同互慰| 日韩在线中文字幕视频| 欧美成人精品一区二区综合免费| 国产成人免费在线观看| 亚洲欧洲日产国产综合网| 欧美卡一卡二卡三| 国产精品伦子伦| 成人午夜视频免费看| 日韩一区欧美二区| 亚洲人成网站在线| 久久丝袜美腿综合| 3atv一区二区三区| av女名字大全列表| 国产主播av在线| 波多野结衣影院| 99久久99精品久久久久久| 国产在线一区观看| 午夜影院久久久| 中文字幕观看av| 青青草成人免费视频| 91视频免费入口| 丁香亚洲综合激情啪啪综合| 久久99久久久久| 丝袜国产日韩另类美女| 亚洲毛片av在线| 日韩美女视频一区二区| 久久综合色播五月| 777午夜精品视频在线播放| 在线免费观看一区| 91成人免费在线| 色94色欧美sute亚洲线路二 | 狠狠网亚洲精品| 久99久精品视频免费观看| 欧美a一区二区| 麻豆专区一区二区三区四区五区| 石原莉奈在线亚洲二区| 五月婷婷色综合| 麻豆精品国产传媒mv男同| 免费成人性网站| 久久99热这里只有精品| 精品在线免费观看| 丁香激情综合国产| 人妻激情偷乱视频一区二区三区| 91丨porny丨国产| 中文字幕av一区二区三区高| 免费成人深夜夜行网站| 希岛爱理中文字幕| 久草网站在线观看| 欧美三级乱人伦电影| 日韩精品一区二区三区中文不卡| 日韩精品一区二区三区中文不卡| 久久免费偷拍视频| 国产精品国产三级国产a| 一区二区三区不卡视频| 美脚の诱脚舐め脚责91| 成人中文字幕电影|