欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Servlet中的過(guò)濾器(攔截器)Filter與監聽(tīng)器Listener的作用和區別
Servlet中的過(guò)濾器Filter是實(shí)現了javax.servlet.Filter接口的服務(wù)器端程序,主要的用途是過(guò)濾字符編碼、做一些業(yè)務(wù)邏輯判斷等。其工作原理是,只要你在web.xml文件配置好要攔截的客戶(hù)端請求,它都會(huì )幫你攔截到請求,此時(shí)你就可以對請求或響應(Request、Response)統一設置編碼,簡(jiǎn)化操作;同時(shí)還可進(jìn)行邏輯判斷,如用戶(hù)是否已經(jīng)登陸、有沒(méi)有權限訪(fǎng)問(wèn)該頁(yè)面等等工作。它是隨你的web應用啟動(dòng)而啟動(dòng)的,只初始化一次,以后就可以攔截相關(guān)請求,只有當你的web應用停止或重新部署的時(shí)候才銷(xiāo)毀,以下通過(guò)過(guò)濾編碼的代碼示例來(lái)了解它的使用:
   1: MyCharsetFilter.java 編碼過(guò)濾器
   2: package ...;
   3: import ...;
   4:  
   5: // 主要目的:過(guò)濾字符編碼;其次,做一些應用邏輯判斷等.
   6: // Filter跟web應用一起啟動(dòng)
   7: // 當web應用重新啟動(dòng)或銷(xiāo)毀時(shí),Filter也被銷(xiāo)毀
   8: public class MyCharsetFilter implements Filter {
   9:     private FilterConfig config = null;
  10:     
  11:     public void destroy() {
  12:         System.out.println("MyCharsetFilter準備銷(xiāo)毀...");
  13:     }
  14:  
  15:     public void doFilter(ServletRequest arg0, ServletResponse arg1,
  16:             FilterChain chain) throws IOException, ServletException {
  17:         // 強制類(lèi)型轉換
  18:         HttpServletRequest request = (HttpServletRequest)arg0;
  19:         HttpServletResponse response = (HttpServletResponse)arg1;
  20:         // 獲取web.xm設置的編碼集,設置到Request、Response中
  21:         request.setCharacterEncoding(config.getInitParameter("charset"));
  22:         response.setContentType(config.getInitParameter("contentType"));
  23:         response.setCharacterEncoding(config.getInitParameter("charset"));
  24:         
  25:         // 將請求轉發(fā)到目的地
  26:         chain.doFilter(request, response);
  27:     }
  28:  
  29:     public void init(FilterConfig arg0) throws ServletException {
  30:         this.config = arg0;
  31:         System.out.println("MyCharsetFilter初始化...");
  32:     }
  33: }

以下是 MyCharsetFilter.java 在web.xml 中配置:

   1: <filter>
   2:       <filter-name>filter</filter-name>
   3:       <filter-class>dc.gz.filters.MyCharsetFilter</filter-class>
   4:       <init-param>
   5:           <param-name>charset</param-name>
   6:           <param-value>UTF-8</param-value>
   7:       </init-param>
   8:       <init-param>
   9:           <param-name>contentType</param-name>
  10:           <param-value>text/html;charset=UTF-8</param-value>
  11:       </init-param>
  12:   </filter>
  13:   <filter-mapping>
  14:       <filter-name>filter</filter-name>
  15:       <!-- * 代表截獲所有的請求  或指定請求/test.do  /xxx.do -->
  16:       <url-pattern>/*</url-pattern>
  17:   </filter-mapping>

     以上的例子簡(jiǎn)單的說(shuō)明了Filter的使用,具體其他的應用可以看具體的場(chǎng)景。

         現在來(lái)說(shuō)說(shuō)Servlet的監聽(tīng)器Listener,它是實(shí)現了javax.servlet.ServletContextListener 接口的服務(wù)器端程序,它也是隨web應用的啟動(dòng)而啟動(dòng),只初始化一次,隨web應用的停止而銷(xiāo)毀。主要作用是: 做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。下面利用監聽(tīng)器對數據庫連接池DataSource的初始化演示它的使用:

   1: MyServletContextListener.java
   2: package dc.gz.listeners;
   3: import javax.servlet.ServletContext;
   4: import javax.servlet.ServletContextEvent;
   5: import javax.servlet.ServletContextListener;
   6: import org.apache.commons.dbcp.BasicDataSource;
   7:  
   8: /**
   9:  * Web應用監聽(tīng)器
  10:  */
  11: public class MyServletContextListener implements ServletContextListener {
  12:  
  13:     // 應用監聽(tīng)器的銷(xiāo)毀方法
  14:     public void contextDestroyed(ServletContextEvent event) {
  15:         ServletContext sc = event.getServletContext();
  16:         // 在整個(gè)web應用銷(xiāo)毀之前調用,將所有應用空間所設置的內容清空
  17:         sc.removeAttribute("dataSource");
  18:         System.out.println("銷(xiāo)毀工作完成...");
  19:     }
  20:  
  21:     // 應用監聽(tīng)器的初始化方法
  22:     public void contextInitialized(ServletContextEvent event) {
  23:         // 通過(guò)這個(gè)事件可以獲取整個(gè)應用的空間
  24:         // 在整個(gè)web應用下面啟動(dòng)的時(shí)候做一些初始化的內容添加工作
  25:         ServletContext sc = event.getServletContext();
  26:         // 設置一些基本的內容;比如一些參數或者是一些固定的對象
  27:         // 創(chuàng  )建DataSource對象,連接池技術(shù) dbcp
  28:         BasicDataSource bds = new BasicDataSource();
  29:         bds.setDriverClassName("com.mysql.jdbc.Driver");
  30:         bds.setUrl("jdbc:mysql://localhost:3306/hibernate");
  31:         bds.setUsername("root");
  32:         bds.setPassword("root");
  33:         bds.setMaxActive(10);//最大連接數
  34:         bds.setMaxIdle(5);//最大管理數
  35:         //bds.setMaxWait(maxWait); 最大等待時(shí)間
  36:         // 把 DataSource 放入ServletContext空間中,
  37:         // 供整個(gè)web應用的使用(獲取數據庫連接)
  38:         sc.setAttribute("dataSource", bds);
  39:         System.out.println("應用監聽(tīng)器初始化工作完成...");
  40:         System.out.println("已經(jīng)創(chuàng  )建DataSource...");
  41:     }
  42: }

web.xml中配置如下,很簡(jiǎn)單:

   1: <!-- 配置應用監聽(tīng)器  -->
   2:   <listener>
   3:       <listener-class>dc.gz.listeners.MyServletContextListener</listener-class>
   4:   </listener>

這樣配置好了之后,以后在web應用中就可以通過(guò)ServletContext取得BasicDataSource對象,從而獲取與數據庫的連接,提高性能,方便使用。

          上面通過(guò)兩個(gè)示例演示了Filter和Listener的基本使用,對于其它的應用則需要我們在項目開(kāi)發(fā)中根據具體的場(chǎng)景選擇。多多去挖掘。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
過(guò)濾器、監聽(tīng)器
寶寶 javaweb 學(xué)習總結
(四)spring+servlet 整合
Servlet過(guò)濾器和監聽(tīng)器知識總結
Spring MVC 入門(mén)
Servlet總結
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久