1. 程式人生 > >過濾器應用

過濾器應用

編寫過濾的步驟
1、編寫一個類,實現javax.servlet.Filter介面,這樣的類一般稱之為過濾器類
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("FilterDemo1攔截了");
chain.doFilter(request, response);//放行
}
2、在web.xml中進行配置,要攔截哪些資源。
<filter>
<filter-name>FilterDemo1</filter-name>
<filter-class>cn.itcast.filter.FilterDemo1</filter-class>
 </filter>
 <filter-mapping>
<filter-name>FilterDemo1</filter-name>
<url-pattern>/*</url-pattern>
 </filter-mapping>
 
過濾器的執行過程
多個過濾器的攔截順序是按照web.xml中filter-mapping元素的出現順序進行攔截的。

過濾器只會被初始化一次,應用被載入時就完成了初始化。

過濾器的高階配置
<filter-mapping>
<filter-name>FilterDemo3</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher> 預設情況。如果寫了另外一種情況,預設的就沒有了
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>

 </filter-mapping>

下面是在servlet中的應用的一個小例子:

package deng;


import java.io.*;   
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import hu.ZcBean;    
public class ZcSevlet extends HttpServlet implements Filter{
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("攔截了");  
chain.doFilter(request,response);
System.out.println("放行了");
  
}  
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
ZcBean zcbean = null;
try {  
zcbean = (ZcBean)request.getAttribute("ZcBean");
if(zcbean == null) {
zcbean = new ZcBean();//建立ZcBean的一個物件
request.setAttribute("zcbean", zcbean);
}   
}  catch(Exception e) {
zcbean = new ZcBean();
request.setAttribute("zcbean", zcbean);
  }
try { 
Class.forName("com.mysql.jdbc.Driver");//載入資料庫驅動
} catch(Exception e) { } 
String dataBase = request.getParameter("dataBase");//拿到我們要訪問的資料庫的名字跟表的名字
String tableName = request.getParameter("tableName");
String name = request.getParameter("yhm");//拿到註冊的使用者名稱跟密碼
String word = request.getParameter("mm");
if((name == null) || (word == null)) {
return ;
}         
double n = Double.parseDouble(name);//將拿到的(文字)字元型使用者名稱跟密碼轉成double型的,便於錄入資料庫中
double m = Double.parseDouble(word);
Connection con;
Statement sql; 
ResultSet rs;  
try {  
  String uri = "jdbc:mysql://127.0.0.1/" + dataBase;
  con = DriverManager.getConnection(uri,"root","961102");
  sql = con.createStatement();
  //設定使用者名稱只能是自己的學號  這樣才可以進行註冊  
  rs = sql.executeQuery("select xh from class where xh =" + n);
  rs.next();
  while(rs.next()) {
  if(rs.getString(1).equals(name)) {
  String a = "update" + "\t" +  tableName + "\t" + "set yhm = " + n +"\t" + "where xh =" + n;
  String b = "update" + "\t" +  tableName + "\t" + "set mm = " + m + "\t" + "where xh =" + n ;
  sql.executeUpdate(a);
  sql.executeUpdate(b); 
  con.close();
  //註冊成功,將註冊資訊傳給javabean  然後在另一個jsp頁面中進行顯示
  zcbean.setBackNews("恭喜你,註冊成功!!!");
  zcbean.setUsername(name);  
  zcbean.setPassword(word);    
  RequestDispatcher dispatcher = request.getRequestDispatcher("zcrecord.jsp");
  dispatcher.forward(request, response);  
   }
  } 
  zcbean.setBackNews("註冊失敗!");
  zcbean.setUsername("使用者名稱有誤!");  
  zcbean.setPassword(word);          
  RequestDispatcher dispatcher = request.getRequestDispatcher("zcrecord.jsp");
  dispatcher.forward(request, response);  
} catch(SQLException e) {
System.out.println(e);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
doPost(request,response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}
}

相關推薦

布隆過濾器應用DEMO

引入jar包 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>2

AngularJS過濾器應用之表頭排序

需求解釋:表頭排序指的是使用列表方式顯示資料時,如果使用者單擊列表中某列頭部元素,那麼列表中的全部資料將會自動按該列表的屬性值自動排序,預設為升序,再次單擊為降序; 案例如下: 先貼程式碼: <!doctype html> &l

過濾器應用

編寫過濾的步驟1、編寫一個類,實現javax.servlet.Filter介面,這樣的類一般稱之為過濾器類public void doFilter(ServletRequest request, ServletResponse response,FilterChain cha

過濾器應用案例分析

----------------------------------------------------------------------------------------------[版權申明:本文系作者原創,轉載請註明出處] 文章出處:http://blog.csdn

Java-Web過濾器應用案例

這裡我們的案例主要表現前兩個應用場景,即驗證是否已經登陸還有編碼轉換。 這裡我們先寫一個登陸jsp,還有成功的頁面以及失敗的頁面,同時建立servlet 登陸頁面 <body> <h1>歡迎訪問本網站,請登入</h1&

JavaWeb的Filter過濾器應用

過濾器應用案例 分ip統計網站的訪問次數 ip count 192.168.1.111 2 192.168.1.112 59 統計工作需要在所有資源執行前,那麼就可以放到Fi

過濾器應用(四)之許可權過濾器

package com.jjyy.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servle

java servlet過濾器應用場景

1、統一POST請求中文字元編碼的過濾器  如何 實現: 將每個Servlet共有的程式碼提取出來。 2、禁止瀏覽器快取所有動態頁面的過濾器 如何 實現: response.setDateHeader("Expires",-1); response.setHeader("C

SpringBoot之過濾器配置和應用

一、建立過濾器 單獨建立一個filter的類繼承Filter介面,重寫接口裡面的init()、doFilter()、destory()方法即可。 public class LoginFilter implements Filter { private static Logger

vue的過濾器語發及應用案例

str tid slice 價格 取代 四舍五入 tof ssa value 1.使用地方: 雙花括號插值處或 組件屬性處 例: {{ message | capitalize }} <div v-bind:id="rawId | formatId">&

Javaweb:Servlet過濾器以及常見應用展示

Filter簡介: Filter也稱之為過濾器,它是Servlet技術中最實用的技術,WEB開發人員通過Filter技術,對web伺服器管理的所有web資源:例如Jsp, Servlet, 靜態圖片檔案或靜態 html 檔案等進行攔截,從而實現一些特殊的功能。 l特點: •過濾

JavaWeb高階程式設計(九)—— 使用過濾器改進應用程式

一、瞭解過濾器         過濾器是可以攔截訪問資源的請求、資源的響應或者同時攔截兩者的應用元件,它們將以某種方式作用於這些請求或響應。過濾器可以檢測和修改請求或響應,它們甚至可以拒絕、重定向或轉發請求。如同Servlet一樣,過濾器可以在部署描述

全站壓縮---(裝飾模式、過濾器應用)

本例子在過濾器中使用到了裝飾模式對response物件進行加強,將加強後的物件傳到servlet進行操作將資料寫到記憶體流中(呼叫的方法在response的加強中已經寫好了,使其能夠寫到記憶體流中),之後從servlet返回到過濾器再拿到記憶體流中的資料對前臺頁面進行輸出。 本例中在serv

JQuery應用例項學習 —— 11 子元素過濾器

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti

R語言提取時間序列的週期性成分應用EMD,小波濾波器,Baxter過濾器

介紹 對商業週期的分析需要提取時間序列的週期性成分,該時間序列通常也受到諸如潛在趨勢或噪聲等其他因素的影響。本文介紹了一些在最近的文獻中用於從給定系列中提取商業週期的方法。它基於Stock and W

過濾器、監聽器、攔截器各自的應用場景

過濾器 監聽器 public interface HttpSessionListener extends EventListener { public void sessionCreated ( HttpSessionEvent se );

javaweb學習總結(十六)——Filter(過濾器)常見應用

一、統一全站字元編碼   通過配置引數charset指明使用何種字元編碼,以處理Html Form請求引數的中文問題 package me.gacl.web.filter; import java.io.IOException; import javax.servlet

Iframe應用和ServletResponse重定向,session過期過濾器跳轉登入頁面

最近專案用到了ServletResponse的重定向,也就是servlet過濾器,session過期自動跳轉登入頁面,以前見過其他寫法,感覺麻煩,不就是重定向嗎,一句程式碼搞定,寫那麼多幹嘛。最近真正用到這個技術寫法,不得不去考究下。 1.session過期一般寫法 res

一站式學習Wireshark(十):應用Wireshark顯示過濾器分析特定資料流(下)

在這個資訊爆炸的時代,人們已然被大量、快速並且簡短的資訊所包圍。然而,我們相信:過多“快餐”式的閱讀只會令人“虛胖”,缺乏實質的內涵。伯樂線上內容團隊正試圖以我們微薄的力量,把優秀的原創文章和譯文分享給讀者,為“快餐”新增一些“營養”元素。

一站式學習Wireshark(九):應用Wireshark顯示過濾器分析特定資料流(上)

介紹 掌握顯示過濾器對於網路分析者來說是一項必備的技能。這是一項大海撈針的技巧。學會構建,編輯,儲存關鍵的顯示過濾器能夠節省數小時的時間。 與捕捉過濾器使用的BPF語法不同,顯示過濾器使用的是Wireshark特定的格式。除了某些特例之外,Wireshark顯示過濾