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