-
@webfilter的常用屬性
查看全部 -
過(guò)濾器分類
查看全部 -
過(guò)濾器的分類
查看全部 -
過(guò)濾器鏈執(zhí)行過(guò)程
查看全部 -
過(guò)濾器important!
查看全部 -
filter的web.xml的配置
查看全部 -
過(guò)濾器的生命周期. 1.實(shí)例化階段-->一啟動(dòng)服務(wù)器就會(huì)從Web容器的web.xml文件中自動(dòng)去加載實(shí)例化過(guò)濾器.且只會(huì)實(shí)例化一次.即生成了過(guò)濾器. 2.初始化階段-->生成過(guò)濾器之后便是初始化,加載一些初始化信息.調(diào)用init()方法.且只執(zhí)行一次. 3.過(guò)濾階段-->執(zhí)行過(guò)濾器的doFilter()方法進(jìn)行過(guò)濾.執(zhí)行n次的,凡是過(guò)濾器捕獲到用戶的請(qǐng)求,都會(huì)執(zhí)行這個(gè)過(guò)濾方法. 4.銷毀階段-->當(dāng)Web容器關(guān)閉即服務(wù)器關(guān)閉的時(shí)候,便執(zhí)行destroy()方法銷毀.
查看全部 -
1.什么是過(guò)濾器?<br>
過(guò)濾器是web服務(wù)器端的一個(gè)組件,可以截獲用戶的請(qǐng)求和web資源的響應(yīng),對(duì)請(qǐng)求和響應(yīng)進(jìn)行過(guò)濾
2.過(guò)濾器的工作原理?<br>
原理:用戶發(fā)送請(qǐng)求到過(guò)濾器,過(guò)濾器將用戶請(qǐng)求發(fā)送到web資源,web資源將響應(yīng)發(fā)送到過(guò)濾器,過(guò)濾器將響應(yīng)發(fā)送給用戶
3.過(guò)濾器的工作周期
a.在web容器啟動(dòng)的時(shí)候?qū)嵗{(diào)用初始化方法,每次有請(qǐng)求響應(yīng)過(guò)來(lái)調(diào)用doFilter()方法,服務(wù)器容器關(guān)閉的時(shí)候調(diào)用銷毀方法。查看全部 -
JAVA過(guò)濾機(jī)制——過(guò)濾簡(jiǎn)介 1、過(guò)濾器三部分:過(guò)濾源(用戶請(qǐng)求)——>過(guò)濾規(guī)則——>過(guò)濾結(jié)果 2、過(guò)濾器不處理結(jié)果,只做輔助性操作 3、定義:過(guò)濾器是一個(gè)【服務(wù)器端】的組件,它可以【截取用戶端的請(qǐng)求和響應(yīng)信息】,并對(duì)這些信息過(guò)濾
查看全部 -
@web.xml <init-param> ? <param-name>charset</param-name> ? <param-value>UTF-8</param-value> </init-param> @LoginFilter.java String charset=config.getInitParameter("charset"); if(charset==null){//如果不設(shè)置,默認(rèn)UTF-8 charset="UTF-8"; } request.setCharacterEncoding(charset);
查看全部 -
登錄校驗(yàn) @LoginServlet.java public void doPost() { 1.進(jìn)行賬號(hào)和密碼的校驗(yàn) } @LoginFilter.java public void doFilter() { HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; HttpSession session = request.getSession(); String noLoginPaths = config.getInitParameter("noLoginPaths"); if(noLoginPaths!=null){ String[] strArray = noLoginPaths.split(";"); for (int i = 0; i < strArray.length; i++) { if(strArray[i]==null || "".equals(strArray[i]))continue; if(request.getRequestURI().indexOf(strArray[i])!=-1 ){ arg2.doFilter(arg0, arg1); return; } } } if(session.getAttribute("username")!=null){ arg2.doFilter(arg0, arg1); }else{ response.sendRedirect("login.jsp"); } } public void init(FilterConfig arg0) throws ServletException { config = arg0; } @web.xml 在web.xml的Filter中配置Initial Parameters
在免過(guò)濾名單中加上fail.jsp 可解決輸入錯(cuò)誤后不跳轉(zhuǎn)到fail.jsp界面的問(wèn)題,但是帶來(lái)新的問(wèn)題 直接訪問(wèn)fail.jsp時(shí)不能轉(zhuǎn)到登錄頁(yè)面。 解決方法:刪掉免過(guò)濾名單上的fail.jsp ,在LoginServlet中將重定向換成轉(zhuǎn)發(fā),用request.getRequestDispatcher("/fail.jsp").forward(request, response);來(lái)代替response.sendRedirect("/fail.jsp");
查看全部 -
根據(jù)過(guò)濾器的規(guī)則,過(guò)濾器得等servlet執(zhí)行結(jié)束才能停止,所以如果servlet執(zhí)行很久,過(guò)濾器得等很久,所以說(shuō)呢,為了使得過(guò)濾器早點(diǎn)執(zhí)行結(jié)束,就讓servlet在后臺(tái)執(zhí)行,過(guò)濾器提前結(jié)束,這就是異步過(guò)濾器的優(yōu)點(diǎn)所在
@WebServlet(asyncSupported = true, displayName = "/AsyncServlet", urlPatterns={"/servlet/AsyncServlet"})
asyncSupported = true 是必須開啟用以支持異步
@WebFilter(filterName="AsynFilter",asyncSupported=true,value={"/servlet/AsyncServlet"},dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC})
asyncSupported = true 是必須開啟用以支持異步
dispatcherTypes={DispatcherType.REQUEST,DispatcherType.ASYNC}
DispatcherType.REQUEST必須要加上,否則過(guò)濾器就不會(huì)生效了
同時(shí)注意在過(guò)濾的地址和servlet的地址必須相同查看全部 -
覺得注解真的很頭疼。。。各種注解
查看全部 -
過(guò)濾器分類。。。
查看全部 -
這個(gè)老師。。。思維跳了。。。好幾次。。。
查看全部
舉報(bào)