1. 程式人生 > >javax.servlet.Filter運用

javax.servlet.Filter運用

Servlets Filter 是Servlet 2.3 規範中新增加的,它是擷取使用者從客戶端提交的請求,在還沒有到達需要訪問的資源時執行的一個類。它操縱來自客戶端的請求,在資源還沒有初發送到客戶端前擷取響應,並處理這些還沒有傳送到客戶端的響應。

Filters 有許多的應用場合。Servlet 2.3 規範建議如下的地方可以應用Filter:

authentication filters
logging and auditing filters
image conversion filters
data compression filters
encryption filters
tokenizing filters
filters that trigger resource access events
XSL/T filters that transform XML content
MIME-type chain filters

例:

package jasso.web.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;


/**
 *
 * @author
 */
public class SetCharacterEncodingFilter implements Filter {
 
 private String encoding;
 

 /**
  * Called by the web container to indicate to a filter that it is being
  * taken out of service.
  *
  * @todo Implement this javax.servlet.Filter method
  */
 public void destroy() {
 }

 /**
  * The <code>doFilter</code> method of the Filter is called by the
  * container each time a request/response pair is passed through the chain
  * due to a client request for a resource at the end of the chain.
  *
  * @param request
  *            ServletRequest
  * @param response
  *            ServletResponse
  * @param chain
  *            FilterChain
  * @throws IOException
  * @throws ServletException
  * @todo Implement this javax.servlet.Filter method
  */
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  request.setCharacterEncoding(encoding);
  chain.doFilter(request, response);
 }

 /**
  * @see javax.servlet.Filter#init(FilterConfig)
  */
 public void init(FilterConfig config) throws ServletException {
  encoding = config.getInitParameter("encoding");
 }
 
 
}

web.xml部分

......

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>my.web.filter.SetCharacterEncodingFilter</filter-class>
     <init-param>
       <param-name>encoding</param-name>
       <param-value>Shift_JIS</param-value>
     </init-param>
 </filter>
 
 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <servlet-name>action</servlet-name>
 </filter-mapping>
 <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
   <init-param>
     <param-name>config</param-name>
     <param-value>/WEB-INF/config/struts-config.xml,/WEB-INF/config/struts-config-contents.xml</param-value>
   </init-param>
   <init-param>
     <param-name>debug</param-name>
     <param-value>2</param-value>
   </init-param>
   <init-param>
     <param-name>detail</param-name>
     <param-value>2</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
 </servlet>

相關推薦

javax.servlet.Filter運用

Servlets Filter 是Servlet 2.3 規範中新增加的,它是擷取使用者從客戶端提交的請求,在還沒有到達需要訪問的資源時執行的一個類。它操縱來自客戶端的請求,在資源還沒有初發送到客戶端前擷取響應,並處理這些還沒有傳送到客戶端的響應。Filters 有許多的應用

maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

maven專案解決辦法:    對於servlet-ap.jar 新增<scope>provided</scope> 即可解決。      <dependency> &l

找不到javax.servlet.Filter的類檔案

在這裡我是用IDEA來開發的,Tomcat用的maven外掛 原因:沒有相應在jar包 解決:匯入相應在jar的依賴,在pom檔案中新增 <dependency> <groupId>javax</groupId>

Spring Boot報java.lang.NoClassDefFoundError: javax/servlet/Filter這個錯啟動不了

Spring Boot報java.lang.NoClassDefFoundError: javax/servlet/Filter解決 解決方法: 註釋掉:《scope》provided《/scope》 <dependency> <group

javax.servlet.Filter的使用

Filters是在請求資源(Servlet或靜態內容)或者響應資源時,也可以在請求和響應同時進行時,執行過濾任務。Filters通過doFilter方法來執行過濾的。每個過濾都要訪問一個FilterConfig物件,該物件包含了初始引數,要引用的ServletContext對

javax.servlet.Filter 的過濾器的使用

 javax.servlet.Filter 的應用 Filter過濾器的使用本篇文章是介紹javax.servlet包中Filter的幾個功能,一是字元編碼過濾,二是攔截指資料夾中的檔案,實現登入驗證.實現以上兩個功能需以下幾個步驟:1、實現javax.servlet.Fil

javax.servlet.Filter 新增過濾器

在請求到達Servlet/JSP之前,過濾器截獲請求。 在響應送給客戶端之前,過濾器截獲響應。多個過濾器形成一個過濾器鏈,過濾器鏈中不同過濾器的先後順序由部署檔案web.xml中過濾器對映<filter-mapping>的順序決定。 最先截獲客戶端請求的過濾器將最後截獲Servlet/JSP的響應

SpringBoot整合web時報錯Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter

在Idea中使用SpringBoot來整合Web啟動時出現如下錯誤: java.lang.NoClassDefFoundError: javax/servlet/Filter at java.lang.ClassLoader.defineClass1(Native Met

講授Javax.servlet.Filter使用總結例子

今天給同學們講解SpringMVC,很多同學們反應對Servlet過濾器、監聽了解甚少,所以現場給大家分享了一個小例子,然大家學習掌握一下; 1、登入頁面 <%@ page language="java" contentType="text/html; chars

maven啟動 cannot be cast to javax.servlet.Filter/cannot be cast to javax.servlet.Servlet 報錯

使用maven開發web應用程式,啟動就報錯: java.lang.ClassCastException: com.alibaba.druid.support.http.WebStatFilter c

javax.servlet.ServletException: Filter execution threw an exception

剛用MyEclipse啟動tomcat時發生了以下錯誤:嚴重: IOException while loading persisted sessions: java.io.EOFException,原

[轉]The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

right clas rup b- row 添加按鈕 n) 1-1 自帶 完整錯誤信息: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS"AS IS" AND ANY EXPRESS O

新建 jsp異常,The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

prop 選擇 library path per png class pro found   新項目,新建jsp頁面的時候報異常: Multiple annotations found at this line: - The superclass "java

eclipse更改workspace中出現The superclass "javax.servlet.http.HttpServlet" was not found on the Java----問題》》

win runtime cli 名稱 tail 一個 fig workspace found 第一步:那是因為在項目中沒有告訴它應該在哪個tomcat中運行,右擊項目名稱-----》build path--》configure path---->library--

Servlet Filter

servlet filterFilter : Java中的Filter 並不是一個標準的Servlet ,它不能處理用戶請求,也不能對客戶端生成響應。 主要用於對HttpServletRequest 進行預處理,也可以對HttpServletResponse 進行後處理,是個典型的處理鏈。 過濾鏈

The import java.util cannot be resolved The import javax.servlet cannot be resolved

解決方案 aries not ava move con dpa servlet 問題 The import java.util cannot be resolved The import javax.servlet cannot be resolved The import

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

uil 路徑 next run library per 錯誤 https 取消 新建WEB項目出現如下錯誤,可以這樣來修正, The superclass "javax.servlet.http.HttpServlet" was not found on the Java

程序包javax.servlet.annotation不存在

符號 failure 項目報錯 res compile 程序包 lur lib ons 1、錯誤描寫敘述[INFO] Scanning for projects... [INFO]

The import javax.servlet.ReadListener cannot be resolved

fonts src servle tabs csdn 選中項 imp net 相同 原因:這是由於你的項目buildpath不對解決方案:右鍵項目-------buildpath--------最下面那個configuration 的選擇libraries找到JRE(這個時

servlet,filter,listener,intercepter區別

ont http 監聽器 ica 攔截 啟動 XML app 響應 servlet:是一種運行於服務器端的java應用程序,具有獨立於平臺和協議的特性,並且可以動態生成web頁面;它工作在客戶端請求和服務器響應的中間層。servlet的主要功能在於交互式地瀏覽和修改數據,生