过滤器java面试_过滤器监听器面试题都在这里
以下我是歸納的過濾器監(jiān)聽器知識點(diǎn)圖:
圖上的知識點(diǎn)都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。如果文章有錯的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章的同學(xué),可以關(guān)注微信公眾號:Java3y
監(jiān)聽器常見面試題
監(jiān)聽器有哪些作用和用法?監(jiān)聽器有哪些作用和用法?
Java Web開發(fā)中的監(jiān)聽器(listener)就是application、session、request三個對象創(chuàng)建、銷毀或者往其中添加修改刪除屬性時自動執(zhí)行代碼的功能組件,如下所示:①ServletContextListener:對Servlet上下文的創(chuàng)建和銷毀進(jìn)行監(jiān)聽。
②ServletContextAttributeListener:監(jiān)聽Servlet上下文屬性的添加、刪除和替換。
③HttpSessionListener:對Session的創(chuàng)建和銷毀進(jìn)行監(jiān)聽。session超時(可以在web.xml中通過/標(biāo)簽配置超時時間);
通過調(diào)用session對象的invalidate()方 法使session失效。
補(bǔ) 充:session的銷毀有兩種情況:
④HttpSessionAttributeListener:對Session對象中屬性的添加、刪除和替換進(jìn)行監(jiān)聽。
⑤ServletRequestListener:對請求對象的初始化和銷毀進(jìn)行監(jiān)聽。
⑥ServletRequestAttributeListener:對請求對象屬性的添加、刪除和替換進(jìn)行監(jiān)聽。
常見的監(jiān)聽器用途主要包括:網(wǎng)站在線人數(shù)技術(shù)、監(jiān)聽用戶的行為(管理員踢人)。
過濾器常見面試題
過濾器有哪些作用和用法?過濾器有哪些作用和用法?
Java Web開發(fā)中的過濾器(filter)是從Servlet 2.3規(guī)范開始增加的功能,并在Servlet 2.4規(guī)范中得到增強(qiáng)。對Web應(yīng)用來說,過濾器是一個駐留在服務(wù)器端的Web組件,它可以截取客戶端和服務(wù)器之間的請求與響應(yīng)信息,并對這些信息進(jìn)行過 濾。當(dāng)Web容器接受到一個對資源的請求時,它將判斷是否有過濾器與這個資源相關(guān)聯(lián)。如果有,那么容器將把請求交給過濾器進(jìn)行處理。在過濾器中,你可以改 變請求的內(nèi)容,或者重新設(shè)置請求的報頭信息,然后再將請求發(fā)送給目標(biāo)資源。當(dāng)目標(biāo)資源對請求作出響應(yīng)時候,容器同樣會將響應(yīng)先轉(zhuǎn)發(fā)給過濾器,再過濾器中, 你可以對響應(yīng)的內(nèi)容進(jìn)行轉(zhuǎn)換,然后再將響應(yīng)發(fā)送到客戶端。
常見的過濾器用途主要包括:對用戶請求進(jìn)行統(tǒng)一認(rèn)證、對用戶的訪問請求進(jìn)行記錄和審核、對用戶發(fā)送的數(shù)據(jù)進(jìn)行過濾或替換、轉(zhuǎn)換圖象格式、對響應(yīng)內(nèi)容進(jìn)行壓縮以減少傳輸量、對請求或響應(yīng)進(jìn)行加解密處理、觸發(fā)資源訪問事件、對XML的輸出應(yīng)用XSLT等。
和過濾器相關(guān)的接口主要有:Filter、FilterConfig、FilterChain
Java Web常見面試題
web.xml 的作用?web.xml 的作用?
答:用于配置Web應(yīng)用的相關(guān)信息,如:監(jiān)聽器(listener)、過濾器(filter)、 Servlet、相關(guān)參數(shù)、會話超時時間、安全驗(yàn)證方式、錯誤頁面等。例如:
①配置Spring上下文加載監(jiān)聽器加載Spring配置文件:contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
②配置Spring的OpenSessionInView過濾器來解決延遲加載和Hibernate會話關(guān)閉的矛盾:openSessionInView
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
openSessionInView
/*
③配置會話超時時間為10分鐘:10
④配置404和Exception的錯誤頁面:[html]?view?plaincopy在CODE上查看代碼片派生到我的代碼片
404
/error.jsp
java.lang.Exception
/error.jsp
⑤配置安全認(rèn)證方式:ProtectedArea
/admin/*
GET
POST
admin
BASIC
admin
【補(bǔ) 充1】從Servlet 3開始,可以不用在web.xml中部署Servlet(小服務(wù))、Filter(過濾器)、Listener(監(jiān)聽器)等Web組件,Servlet 3提供了基于注解的部署方式,可以分別使用@WebServlet、@WebFilter、@WebListener三個部署小服務(wù)、過濾器、監(jiān)聽器。
【補(bǔ)充2】如果Web提供了有價值的商業(yè)信息或者是敏感數(shù)據(jù),那么站點(diǎn)的安全性就是必須考慮的問題。安全認(rèn)證是實(shí)現(xiàn)安全性的重要手段,認(rèn)證就是要解決“Are you who you say you are?”的問題。認(rèn)證的方式非常多,簡單說來可以分為三類:
A.What you know? --口令
B.What you have? --數(shù)字證書(U盾、密???
C.Who you are? -- 指紋識別、虹膜識別
在Tomcat中可以通過建立安全套接字層(Secure Socket Layer, SSL)以及通過基本驗(yàn)證或表單驗(yàn)證來實(shí)現(xiàn)對安全性的支持。
Servlet 3中的異步處理指的是什么?Servlet 3中的異步處理指的是什么?
答: 在Servlet 3中引入了一項(xiàng)新的技術(shù)可以讓Servlet異步處理請求。有人可能會質(zhì)疑,既然都有多線程了,還需要異步處理請求嗎?答案是肯定的,因?yàn)槿绻粋€任務(wù)處 理時間相當(dāng)長,那么Servlet或Filter會一直占用著請求處理線程直到任務(wù)結(jié)束,隨著并發(fā)用戶的增加,容器將會遭遇線程超出的風(fēng)險,這這種情況下?很多的請求將會被堆積起來而后續(xù)的請求可能會遭遇拒絕服務(wù),直到有資源可以處理請求為止。異步特性可以幫助應(yīng)用節(jié)省容器中的線程,特別適合執(zhí)行時間長而且 用戶需要得到結(jié)果的任務(wù),如果用戶不需要得到結(jié)果則直接將一個Runnable對象交給Executor(如果不清楚請查看前文關(guān)于多線程和線程池的部 分)并立即返回即可。
開啟異步處理代碼:@WebServlet(urlPatterns = {"/async"}, asyncSupported = true)
public class AsyncServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 開啟Tomcat異步Servlet支持
req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
final AsyncContext ctx = req.startAsync(); // 啟動異步處理的上下文
// ctx.setTimeout(30000);
ctx.start(new Runnable() {
@Override
public void run() {
// 在此處添加異步處理的代碼
ctx.complete();
}
});
}
}
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的过滤器java面试_过滤器监听器面试题都在这里的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java amqp_AMQP协议
- 下一篇: java画板抽象类_java 中的 抽象