黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JSP入門教程:JSP過濾器

JSP入門教程:JSP過濾器

更新時間:2020-08-25 13:10:06 來源:動力節(jié)點 瀏覽1323次


JSP過濾器大家應(yīng)該都有有所了解,在JSP入門教程當中就有相關(guān)教程。


JSP入門教程


JSP 和 Servlet 中的過濾器都是 Java 類。


過濾器可以動態(tài)地攔截請求和響應(yīng),以變換或使用包含在請求或響應(yīng)中的信息。


可以將一個或多個過濾器附加到一個 Servlet 或一組 Servlet。過濾器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 頁面。


過濾器是可用于 Servlet 編程的 Java 類,可以實現(xiàn)以下目的:


? 在客戶端的請求訪問后端資源之前,攔截這些請求。


? 在服務(wù)器的響應(yīng)發(fā)送回客戶端之前,處理這些響應(yīng)。


根據(jù)規(guī)范建議的各種類型的過濾器:


? 身份驗證過濾器(Authentication Filters)。


? 數(shù)據(jù)壓縮過濾器(Data compression Filters)。


? 加密過濾器(Encryption Filters)。


? 觸發(fā)資源訪問事件過濾器。


? 圖像轉(zhuǎn)換過濾器(Image Conversion Filters)。


? 日志記錄和審核過濾器(Logging and Auditing Filters)。


? MIME-TYPE 鏈過濾器(MIME-TYPE Chain Filters)。


? 標記化過濾器(Tokenizing Filters)。


? XSL/T 過濾器(XSL/T Filters),轉(zhuǎn)換 XML 內(nèi)容。


過濾器通過 Web 部署描述符(web.xml)中的 XML 標簽來聲明,然后映射到您的應(yīng)用程序的部署描述符中的 Servlet 名稱或 URL 模式。


當 Web 容器啟動 Web 應(yīng)用程序時,它會為您在部署描述符中聲明的每一個過濾器創(chuàng)建一個實例。


Filter 的執(zhí)行順序與在 web.xml 配置文件中的配置順序一致,一般把 Filter 配置在所有的 Servlet 之前。


1.png


JSP 過濾器實例


以下是 Servlet 過濾器的實例,將輸出網(wǎng)站名稱和地址。本實例讓您對 Servlet 過濾器有基本的了解,您可以使用相同的概念編寫更復(fù)雜的過濾器應(yīng)用程序:


//導(dǎo)入必需的 java 庫
import javax.servlet.*;
import java.util.*;

//實現(xiàn) Filter 類
public class LogFilter implements Filter  {    
    public void  init(FilterConfig config) throws ServletException {        
        // 獲取初始化參數(shù)        
        String site = config.getInitParameter("Site");         
        
        // 輸出初始化參數(shù)        
        System.out.println("網(wǎng)站名稱: " + site);     
     }    
     public void  doFilter(ServletRequest request, ServletResponse response, Filter
     Chain chain) throws java.io.IOException, ServletException {        
     
         // 輸出站點名稱        
         System.out.println("站點網(wǎng)址:http://www.runoob.com");        
         
         // 把請求傳回過濾鏈        
         chain.doFilter(request,response);    
      }    
      public void destroy( ){        
          /* 在 Filter 實例被 Web 容器從服務(wù)移除之前調(diào)用 */    
      }
}


DisplayHeader.java 文件代碼如下:


//導(dǎo)入必需的 java 庫
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet
;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/DisplayHeader")


//擴展 HttpServlet 類
public class DisplayHeader extends HttpServlet { 

     // 處理 GET 方法請求的方法 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 

          // 設(shè)置響應(yīng)內(nèi)容類型 
          response.setContentType("text/html;charset=UTF-8"); 

          PrintWriter out = response.getWriter(); 
          String title = "HTTP Header 請求實例 - 菜鳥教程實例"; 
          String docType = 
                " \n"; 
                out.println(docType + 
                "\n" +
                "" + title + "\n"+                      "\n" +
                "" + title + "\n" + 
                "\n" + 
                "\n" + 
                "Header 名稱Header 值\n"+
                "\n"); 

         Enumeration headerNames = request.getHeaderNames(); 
      
         while(headerNames.hasMoreElements()) { 
                String paramName = (String)headerNames.nextElement(); 
                out.print("" + paramName + "\n"); 
                String paramValue = request.getHeader(paramName); 
                out.println(" " + paramValue + "\n"); 
          } 
          out.println("\n"); 
      } 
      // 處理 POST 方法請求的方法
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
          doGet(request, response); 
      }
}


過濾器的應(yīng)用順序


web.xml 中的 filter-mapping 元素的順序決定了 Web 容器應(yīng)用過濾器到 Servlet 的順序。若要反轉(zhuǎn)過濾器的順序,您只需要在 web.xml 文件中反轉(zhuǎn) filter-mapping 元素即可。


例如,上面的實例將先應(yīng)用 LogFilter,然后再應(yīng)用 AuthenFilter,但是下面的實例將顛倒這個順序:


<filter-mapping>
   <filter-name>AuthenFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

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


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 91欧美亚洲 | 在线观看一区二区三区视频 | 国产人妖性一区二区 | 中文字幕天天躁日日躁狠狠 | 亚洲第一香蕉视频 | 最近中文字幕免费完整国语 | 欧美日韩国产在线人 | 五月婷中文字幕 | 成人影院在线观看完整高清bd | 五月婷婷在线视频观看 | 欧美极度另类极品 | 狠狠干2018| 在线视频成人 | 欧美性精品人妖 | 国产欧美国产精品第二区 | 精品亚洲福利一区二区 | 欧美一线天| 黄色片一级视频 | 国产亚洲精品午夜高清影院 | 在线视频亚洲一区 | 一个人www在线视频 一二三四在线视频社区8 | 精品午夜寂寞影院在线观看 | 日韩高清特级特黄毛片 | 456亚洲人成高清在线 | 欧美日韩中文一区二区三区 | 玖玖在线免费视频 | 日韩一区二区三区免费 | 天堂资源在线中文 | 成年视频在线观看 | 国产一区二区三区视频在线观看 | 亚洲日韩精品欧美一区二区 | 日韩欧美视频一区 | 精品伊人网 | 一级精品视频 | 天天操女人| 亚洲第一区视频在线观看 | 老湿影院福利 | 精品欧美一区二区三区在线观看 | 中国一级黄色片 | 最近免费的中文字幕一 | 1插菊花|