国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

java—過慮器基礎(chǔ)(47)

2019-11-14 23:56:20
字體:
供稿:網(wǎng)友
java—過慮器基礎(chǔ)(47)

在web項(xiàng)目中就只有三大組件

Filter過慮器

監(jiān)聽器.

Servlet

在web中過慮器就是一個(gè)類javax.servlet.Filter。

過慮器是用于在執(zhí)行時(shí),過慮用戶的請求(request),或是過慮從請求的資源中返回的響應(yīng)(response).

實(shí)現(xiàn)一個(gè)最基本的過慮器

1:過慮器只對url(路徑)進(jìn)行過慮。

2:過慮器開發(fā)人員來實(shí)現(xiàn)。

3:過慮器由于是web的核心組,所以這個(gè)filter的實(shí)現(xiàn)者也必須要配置到web.xml中。

4:三個(gè)生命周期方法:init,destory,doFilter(執(zhí)行過慮任務(wù))。用戶的每次請求,都會執(zhí)行doFIlter方法,而

Init,destory只會執(zhí)行一次。

Init方法執(zhí)行的時(shí)間:在項(xiàng)目啟動(dòng)時(shí),直接初始化Filter的對象,所以會在tomcat啟動(dòng)時(shí)執(zhí)行init方法。


第一步:書寫一個(gè)類實(shí)現(xiàn)Filter接口

package cn.hongxin.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;public class OneFilter implements Filter {    //此方法只會在tomcat在啟動(dòng)時(shí)執(zhí)行一次    public void init(FilterConfig filterConfig) throws ServletException {        System.err.

第二步:在web.xml中配置這個(gè)過慮器

 <filter>      <filter-name>one</filter-name>      <filter-class>cn.itcast.filter.OneFilter</filter-class>  </filter>  <!-- 配置這個(gè)過慮器對哪一個(gè)url進(jìn)行過慮 -->  <filter-mapping>      <filter-name>one</filter-name>      <url-pattern>/one </url-pattern>  </filter-mapping>

第三步:測試執(zhí)行

ilter的filter-mapping中的url-pattern的設(shè)置

url-pattern的設(shè)置:

/* = 對所有url都請求這個(gè)servlet。| 都被這個(gè)filter過慮.

/ = 只可以給servlet。 - 所有其他的servlet不處理的url都由這個(gè)url所指定的servlet處理。默認(rèn)servlet。

*.jspx = 所有以jspx結(jié)束都請求到這個(gè)Servlet或是被某個(gè)Filter攔截。如http://local:8080/proj/abc.jspx

/jsps/* = 所有路徑中以/jsps/開頭的都請求到這個(gè)servlet或是被某個(gè)filter攔截到。

/jsps/*.jspx 錯(cuò)誤的:SUN規(guī)定*兩邊不可以同時(shí)出現(xiàn)字符。

<filter-mapping>      <filter-name>one</filter-name>      <!-- 對所有url都攔截過慮任務(wù) -->      <url-pattern>/index.jsp</url-pattern>      <url-pattern>/jsps/*</url-pattern>      <!-- 攔截這個(gè)servlet上的所有url設(shè)置 -->     <servlet-name>OneSerlvet</servlet-name>  </filter-mapping>
過慮器中的其他配置

如果有jsps/abc.jsp這個(gè)頁面,則顯示這個(gè)頁面有兩種方式:

1:在地址欄請求:http://local:8080/project/jsps/abc.jsp -- 可以被攔截到的,因?yàn)椋郝窂椒?jsp/abc.jsp

2:req.getRequestDispathcer(“/jsps/abc.jsp”).forward(req,resp); -

Dipatcher屬性:

Request – 默認(rèn)值,只攔截用戶的新的請求。

Forward – 對轉(zhuǎn)發(fā)進(jìn)行攔截。

Include – 對include攔截。

Error - 對錯(cuò)誤進(jìn)行攔截。

<!-- 設(shè)置對轉(zhuǎn)發(fā)攔截 -->

<dispatcher>REQUEST[W1]</dispatcher>

<dispatcher>FORWARD</dispatcher>

7、配置過慮器的初始化參數(shù)

在filter類中有一個(gè)方法:init(FilterConfig config); 而filtetrConfig中包含了從web.xml中讀取初始化參數(shù)值。

<filter>

<filter-name>one</filter-name>

<filter-class>cn.itcast.filter.OneFilter</filter-class>

<init-param>

<param-name>name</param-name>

<param-value>張三Jack</param-value>

</init-param>

<init-param>

<param-name>age</param-name>

<param-value>88</param-value>

</init-param>

</filter>

在filter類中獲取值:

private FilterConfig conf;

//此方法只會在tomcat在啟動(dòng)時(shí)執(zhí)行一次

public void init(FilterConfig conf) throws ServletException {

this.conf=conf;

System.err.println("過慮器初始化了:"+this);

//獲取name的值:

String name = conf.getInitParameter("name");

System.err.println("name is:"+name);

System.err.println("----------------------------");

Enumeration<String> en= conf.getInitParameterNames();

while(en.hasMoreElements()){

String paramName = en.nextElement();

String val = conf.getInitParameter(paramName);

System.err.println(paramName+"="+val);

}

}



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡阳县| 宝兴县| 贺兰县| 长武县| 鄂温| 红安县| 承德县| 陵川县| 太和县| 巧家县| 涿鹿县| 澄迈县| 兰西县| 田林县| 舞钢市| 沁水县| 瓮安县| 江北区| 修水县| 阿图什市| 星子县| 鄂托克前旗| 安徽省| 靖江市| 莎车县| 家居| 嘉荫县| 荔浦县| 莱州市| 兴山县| 黄石市| 顺义区| 苏州市| 潜江市| 洛阳市| 文成县| 汽车| 上饶市| 个旧市| 出国| 玉树县|