摘要:中的異步處理指的是什么中的異步處理指的是什么答在中引入了一項(xiàng)新的技術(shù)可以讓異步處理請求。開啟異步處理代碼開啟異步支持啟動異步處理的上下文在此處添加異步處理的代碼如果文章有錯(cuò)的地方歡迎指正,大家互相交流。
以下我是歸納的過濾器監(jiān)聽器知識點(diǎn)圖:
圖上的知識點(diǎn)都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。
如果文章有錯(cuò)的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章的同學(xué),可以關(guān)注微信公眾號:Java3y監(jiān)聽器常見面試題 監(jiān)聽器有哪些作用和用法?
監(jiān)聽器有哪些作用和用法?
Java Web開發(fā)中的監(jiān)聽器(listener)就是application、session、request三個(gè)對象創(chuàng)建、銷毀或者往其中添加修改刪除屬性時(shí)自動執(zhí)行代碼的功能組件,如下所示:
①ServletContextListener:對Servlet上下文的創(chuàng)建和銷毀進(jìn)行監(jiān)聽。
②ServletContextAttributeListener:監(jiān)聽Servlet上下文屬性的添加、刪除和替換。
③HttpSessionListener:對Session的創(chuàng)建和銷毀進(jìn)行監(jiān)聽。
補(bǔ) 充:session的銷毀有兩種情況:
session超時(shí)(可以在web.xml中通過
通過調(diào)用session對象的invalidate()方 法使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)用來說,過濾器是一個(gè)駐留在服務(wù)器端的Web組件,它可以截取客戶端和服務(wù)器之間的請求與響應(yīng)信息,并對這些信息進(jìn)行過 濾。當(dāng)Web容器接受到一個(gè)對資源的請求時(shí),它將判斷是否有過濾器與這個(gè)資源相關(guān)聯(lián)。如果有,那么容器將把請求交給過濾器進(jìn)行處理。在過濾器中,你可以改 變請求的內(nèi)容,或者重新設(shè)置請求的報(bào)頭信息,然后再將請求發(fā)送給目標(biāo)資源。當(dāng)目標(biāo)資源對請求作出響應(yīng)時(shí)候,容器同樣會將響應(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ù)、會話超時(shí)時(shí)間、安全驗(yàn)證方式、錯(cuò)誤頁面等。例如:
①配置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 /*
③配置會話超時(shí)時(shí)間為10分鐘:
10
④配置404和Exception的錯(cuò)誤頁面:
[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三個(gè)部署小服務(wù)、過濾器、監(jiān)聽器。
【補(bǔ)充2】如果Web提供了有價(jià)值的商業(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)槿绻粋€(gè)任務(wù)處 理時(shí)間相當(dāng)長,那么Servlet或Filter會一直占用著請求處理線程直到任務(wù)結(jié)束,隨著并發(fā)用戶的增加,容器將會遭遇線程超出的風(fēng)險(xiǎn),這這種情況下 很多的請求將會被堆積起來而后續(xù)的請求可能會遭遇拒絕服務(wù),直到有資源可以處理請求為止。異步特性可以幫助應(yīng)用節(jié)省容器中的線程,特別適合執(zhí)行時(shí)間長而且 用戶需要得到結(jié)果的任務(wù),如果用戶不需要得到結(jié)果則直接將一個(gè)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(); } }); } }
如果文章有錯(cuò)的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章的同學(xué),可以關(guān)注微信公眾號:Java3y
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70965.html
摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:我在面試前針對基礎(chǔ)也花了不少的時(shí)間,期間也將自己寫過的博文粗略地刷了一遍,同時(shí)也在網(wǎng)上找了不少比較好的資料部分是沒看完的??疵嬖囶}也是校驗(yàn)自己是否真正理解了這個(gè)知識點(diǎn),也很有可能會有新的收獲。 一、前言 只有光頭才能變強(qiáng) 回顧前面: 廣州三本找Java實(shí)習(xí)經(jīng)歷 上一篇寫了自己面試的經(jīng)歷和一些在面試的時(shí)候遇到的題目(筆試題和面試題)。 我在面試前針對Java基礎(chǔ)也花了不少的時(shí)間,期間也將...
摘要:常見面試題什么是,為什么要使用是的縮寫。該對象在中首次引入,它是一種支持異步請求的技術(shù)。頭信息已經(jīng)接收,響應(yīng)數(shù)據(jù)尚未接收。同源策略是客戶端腳本尤其是的重要的安全度量標(biāo)準(zhǔn)。這樣頁面的所有都會執(zhí)行這條語句就是不需要保存緩存記錄。 AJAX常見面試題 什么是AJAX,為什么要使用Ajax AJAX是Asynchronous JavaScript and XML的縮寫。他是指一種創(chuàng)建交互式網(wǎng)頁...
摘要:當(dāng)被實(shí)例化后,會調(diào)用方法初始化這個(gè)對象處理服務(wù)。方式可以在請求的實(shí)體內(nèi)容中向服務(wù)器發(fā)送數(shù)據(jù),傳送的數(shù)據(jù)量無限制。不存在敏感信息泄露問題。并且依賴于名為的,該默認(rèn)的屬性為。 下面是我整理下來的Servlet知識點(diǎn): showImg(https://segmentfault.com/img/bV3c9e);? 圖上的知識點(diǎn)都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。 Tomcat常見面試題 Tom...
閱讀 1141·2021-08-12 13:24
閱讀 2989·2019-08-30 14:16
閱讀 3315·2019-08-30 13:01
閱讀 2077·2019-08-30 11:03
閱讀 2779·2019-08-28 17:53
閱讀 3092·2019-08-26 13:50
閱讀 2273·2019-08-26 12:00
閱讀 953·2019-08-26 10:38