一俭正、JSP是什么
JSP全稱是Java Server Pages,它和servle技術(shù)一樣移怯,都是SUN公司定義的一種用于開(kāi)發(fā)動(dòng)態(tài)web資源的技術(shù)
JSP這門(mén)技術(shù)的最大的特點(diǎn)在于琉闪,寫(xiě)jsp就像在寫(xiě)html,但它相比html而言删窒,html只能為用戶提供靜態(tài)數(shù)據(jù)裂垦,而Jsp技術(shù)允許在頁(yè)面中嵌套java代碼,為用戶提供動(dòng)態(tài)數(shù)據(jù)肌索。
二蕉拢、關(guān)于Filter
1、什么是Filter
它使用戶可以改變一個(gè) request和修改一個(gè)response. Filter 不是一個(gè)servlet,它不能產(chǎn)生一個(gè)response,它能夠在一個(gè)request到達(dá)servlet之前預(yù)處理request,也可以在離開(kāi) servlet時(shí)處理response诚亚。
一個(gè)Filter包括:
1)晕换、在servlet被調(diào)用之前截獲;
2)、在servlet被調(diào)用之前檢查servlet request;
3)站宗、根據(jù)需要修改request頭和request數(shù)據(jù);
2闸准、如何借助Filter實(shí)現(xiàn)攔截功能
編寫(xiě)java類實(shí)現(xiàn)Filter接口,并實(shí)現(xiàn)其doFilter方法梢灭。
在web.xml文件中對(duì)編寫(xiě)的filter類進(jìn)行注冊(cè)夷家,并設(shè)置它所能攔截的資源
Filter接口的doFilter方法,當(dāng)開(kāi)發(fā)人員編寫(xiě)好Filter敏释,并配置對(duì)哪個(gè)web資源進(jìn)行攔截后瘾英,Web服務(wù)器每次在調(diào)用web資源的service方法之前,都會(huì)先調(diào)用一下filter的doFilter方法
3颂暇、web.xml配置各節(jié)點(diǎn)介紹
<filter> <!-- 指定一個(gè)過(guò)濾器 -->
<filter-name>TestFilter</filter-name> <!-- 過(guò)濾器名字 -->
<filter-class>TestFilter</filter-class> <!-- 指定過(guò)濾器的完整的限定類名 -->
<init-param> <!-- 過(guò)濾器指定初始化參數(shù) -->
<param-name>islogin</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping><!-- 設(shè)置一個(gè)Filter所負(fù)責(zé)攔截的資源-->
<filter-name>TestFilter</filter-name> <!-- 過(guò)濾器名字,和上面的一致 -->
<url-pattern>/*</url-pattern> <!-- 設(shè)置 filter 所攔截的請(qǐng)求路徑 -->
<servlet-name>TestServlet</servlet-name><!-- 設(shè)置 filter 所攔截的Servlet名稱缺谴。 -->
</filter-mapping>
三、創(chuàng)建一個(gè)Filter過(guò)濾器
@WebFilter(filterName = "TestFilter")
public class TestFilter implements Filter {
//初始化配置參數(shù)耳鸯,在doFilter()方法之前被調(diào)用
public void init(FilterConfig config) throws ServletException {
}
//該方法在客戶端請(qǐng)求及服務(wù)器端回復(fù)時(shí)都將被自動(dòng)調(diào)用
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws ServletException, IOException {
chain.doFilter(req, resp);
}
//結(jié)束過(guò)濾器湿蛔,doFilter()方法完成后被調(diào)用
public void destroy() {
}
FilterConfig接口
用戶在配置filter時(shí),可以使用為filter配置一些初始化參數(shù)县爬,當(dāng)web容器實(shí)例化Filter對(duì)象阳啥,調(diào)用其init方法時(shí),會(huì)把封裝了filter初始化參數(shù)的filterConfig對(duì)象傳遞進(jìn)來(lái)财喳。因此開(kāi)發(fā)人員在編寫(xiě)filter時(shí)察迟,通過(guò)filterConfig對(duì)象的方法斩狱,就可獲得以下內(nèi)容:
String getFilterName();//得到filter的名稱。
String getInitParameter(String name);//返回在部署描述中指定名稱的初始化參數(shù)的值扎瓶。如果不存在返回null.
Enumeration getInitParameterNames();//返回過(guò)濾器的所有初始化參數(shù)的名字的枚舉集合所踊。
public ServletContext getServletContext();//返回Servlet上下文對(duì)象的引用。