servlet过滤器

您所在的位置:网站首页 无线网和wifi是一个意思吗怎么连接 servlet过滤器

servlet过滤器

2024-03-13 07:44| 来源: 网络整理| 查看: 265

1. Servletè¿æ»¤å¨åºç¡ Servletè¿æ»¤å¨æ¯Servletçä¸ç§ç¹æ®ç¨æ³ï¼ä¸»è¦ç¨æ¥å®æä¸äºéç¨çæä½ãæ¯å¦ç¼ç çè¿æ»¤ï¼å¤æ­ç¨æ·çç»éç¶æç­ç­ãServletè¿æ»¤å¨çéç¨åºåï¼ Aï¼è®¤è¯è¿æ»¤ Bï¼ç»å½å审核è¿æ»¤ Cï¼å¾å转æ¢è¿æ»¤ Dï¼æ°æ®å缩è¿æ»¤ Eï¼å å¯è¿æ»¤ Fï¼ä»¤çè¿æ»¤ Gï¼èµæºè®¿é®è§¦åäºä»¶è¿æ»¤ Servletè¿æ»¤å¨æ¥å£çææï¼ ææçServletè¿æ»¤å¨ç±»é½å¿é¡»å®ç°javax.servlet.Filteræ¥å£ãè¿ä¸ªæ¥å£å«æ3个è¿æ»¤å¨ç±»å¿é¡»å®ç°çæ¹æ³ï¼ æ¹æ³ 说æ init(FilterConfig cfg) è¿æ¯Servletè¿æ»¤å¨çåå§åæ¹æ³ï¼æ§è´¨ç­åä¸servletçinitæ¹æ³ã doFilter(ServletRequest,ServletResponse,FilterChain) å®æå®éçè¿æ»¤æä½ï¼å½è¯·æ±è®¿é®è¿æ»¤å¨å³èçURLæ¶ï¼Servlet容å¨å°åè°ç¨è¿æ»¤å¨çdoFilteræ¹æ³ãFilterChainåæ°ç¨äºè®¿é®åç»­è¿æ»¤å¨ destroy() Servlet容å¨å¨éæ¯è¿æ»¤å¨å®ä¾åè°ç¨è¯¥æ¹æ³ï¼è¿ä¸ªæ¹æ³ä¸­å¯ä»¥éæ¾Servletè¿æ»¤å¨å ç¨çèµæºãæ§è´¨ç­åä¸servletçdestory()æ¹æ³ã Servletè¿æ»¤å¨çåå»ºæ­¥éª¤ï¼ Aï¼å®ç°javax.servlet.Filteræ¥å£çservletç±» Bï¼å®ç°initæ¹æ³ï¼è¯»åè¿æ»¤å¨çåå§åå½æ° Cï¼å®ç°doFilteræ¹æ³ï¼å®æ对请æ±æè¿æ»¤çååº Dï¼è°ç¨FilterChainæ¥å£å¯¹è±¡çdoFilteræ¹æ³ï¼ååç»­çè¿æ»¤å¨ä¼ é请æ±æååº F.å¨web.xml中éç½®Filter 2.使ç¨è¿æ»¤å¨å¤ç中æé®é¢    å½ç¨ç¨æ·ç»é页é¢è¾å¥å¸å·æ¶ï¼å¦æè¾å¥æ¯ä¸­æï¼åå°servletå次è¾åºè¿ä¸ªå容æ¶ï¼å¯è½å°±ä¼æ¯ä¹±ç ï¼è¿æ¯å ä¸ºserlvet中é»è®¤æ¯ä»¥ISO-8859-1æ ¼å¼ç¼ç çï¼å¦æåå°æå¤ä¸ªServlet,å¤ä¸ªåæ°ï¼è¿æ ·å°±ä¸åéï¼è¿ä¸ªé®é¢ï¼æ们å¯ä»¥éè¿ä¸ä¸ªè¿æ»¤å¨ç»ä¸è§£å³ï¼ä½¿åå°çè¾åºè¾åºé½æ¯æ中æï¼å°ISO-8859-1转ç ä¸ºGBKçé£æ®µä»£ç ï¼ 3.使ç¨è¿æ»¤å¨è®¤è¯ç¨æ·ï¼ æ¯ä¸ªè¿æ»¤å¨ä¹å¯ä»¥éç½®åå§ååæ°ï¼å¯ä»¥å°ä¸éè¦è¿æ»¤çå°åéç½®å°è¿ä¸ªFilterçéç½®åæ°ä¸­ï¼è¿æ»¤æ¶ï¼å¦æ请æ±å°åå¨éç½®åæ°ä¸­ï¼åæ¾è¡ï¼è¿æ · å°±é¿åäºå¨ç¨åºä¸­ç¡¬ç¼ç ãæ¯ä¸ªFilter中åå§åæ¶ï¼é½å¯ä»¥å¾å°é置对象ï¼å¨Filter中éç½®äºä¸ªä¸éè¦è¿æ»¤çå°åï¼ä¸ä¸ªæ¯ç»é页é¢ï¼ä¸ä¸ªæ¯æ§è¡ç»é 认è¯çservletï¼ 4.Servletçå¬å¨ 类似ä¸Swingçé¢åºç¨å¼åï¼Servletä¹å¯ä»¥å建çå¬å¨ï¼ä»¥å¯¹Servlet容å¨ï¼æServlet中以象çäºä»¶ååºååºãServletçå¬å¨ä¸»è¦æ以ä¸å ç§ï¼ ServletRequestListener ,ServletRequestAttributeListenerï¼ HttpSessionActivationListener ,HttpSessionBindingListener , HttpSessionAttributeListener,HttpSessionListener, ServletContextListenerç­ç­ã è¿äºçå¬å¨ä¸»è¦ç¨æ¥çå¬session,request,applicationè¿ä¸ä¸ªå¯¹è±¡éå­åæ°æ®çååã ----------------------------------------------------------------------------------------------------------------

servlet API中æéè¦çä¸ä¸ªåè½å°±æ¯è½å¤ä¸ºservletåJSP页é¢å®ä¹è¿æ»¤å¨ãè¿æ»¤å¨æä¾äºæäºæ©ææå¡å¨ææ¯æçéæ å“servleté¾æ¥”çä¸ç§åè½å¼ºå¤§ä¸æ åçæ¿ä»£åã                                                                                                       è¿æ»¤å¨æ¯ä¸ä¸ªç¨åºï¼å®åäºä¸ä¹ç¸å³çservletæJSP页é¢è¿è¡å¨æå¡å¨ä¸ãè¿æ»¤å¨å¯éå å°ä¸ä¸ªæå¤ä¸ªservletæJSP页é¢ä¸ï¼å¹¶ä¸å¯ä»¥æ£æ¥è¿å¥è¿äºèµæºç请æ±ä¿¡æ¯ãå¨è¿ä¹åï¼è¿æ»¤å¨å¯ä»¥ä½å¦ä¸çéæ©ï¼1. 以常è§çæ¹å¼è°ç¨èµæºï¼å³ï¼è°ç¨servletæJSP页é¢ï¼ã2.å©ç¨ä¿®æ¹è¿ç请æ±ä¿¡æ¯è°ç¨èµæºã3. è°ç¨èµæºï¼ä½å¨åéååºå°å®¢æ·æºå对å¶è¿è¡ä¿®æ¹4. é»æ­¢è¯¥èµæºè°ç¨ï¼ä»£ä¹ä»¥è½¬å°å¶ä»çèµæºï¼è¿åä¸ä¸ªç¹å®çç¶æ代ç æçææ¿æ¢è¾åºã

è¿æ»¤å¨æä¾äºå ä¸ªéè¦å¥½å¤ ï¼

        é¦åï¼å®ä»¥ä¸ç§æ¨¡ååçæå¯éç¨çæ¹å¼å°è£å¬å±çè¡ä¸ºãä½ æ30个ä¸åçserlvetæJSP页é¢ï¼éè¦å缩å®ä»¬çå容以åå°ä¸è½½æ¶é´åï¼æ²¡é®é¢ï¼æé ä¸ä¸ªå缩è¿æ»¤å¨ï¼ç¶åå°å®åºç¨å°30个èµæºä¸å³å¯ã å¶æ¬¡ï¼å©ç¨å®è½å¤å°é«çº§è®¿é®å³ç­ä¸è¡¨ç°ä»£ç ç¸å离ãè¿å¯¹äºJSPç¹å«æä»·å¼ï¼å¶ä¸­ä¸è¬å¸æå°å ä¹æ´ä¸ªé¡µé¢é中å¨è¡¨ç°ä¸ï¼èä¸æ¯é中å¨ä¸å¡é»è¾ä¸ãä¾å¦ï¼å¸ æé»å¡æ¥èªæäºç«ç¹ç访é®èä¸ç¨ä¿®æ¹å页é¢ï¼è¿äºé¡µé¢åå°è®¿é®éå¶ï¼åï¼æ²¡é®é¢ï¼å»ºç«ä¸ä¸ªè®¿é®éå¶è¿æ»¤å¨å¹¶æå®åºç¨å°æ³è¦éå¶è®¿é®ç页é¢ä¸å³å¯ã      æåï¼è¿æ»¤å¨ä½¿ä½ è½å¤å¯¹è®¸å¤ä¸åçèµæºè¿è¡æ¹éæ§çæ´æ¹ãä½ æ许å¤ç°å­èµæºï¼è¿äºèµæºé¤äºå¬å¸åè¦æ´æ¹å¤å¶ä»çä¿æä¸åï¼è½åå°ä¹ï¼æ²¡é®é¢ï¼æé ä¸ä¸ªä¸²æ¿æ¢è¿æ»¤å¨ï¼åªè¦åé就使ç¨å®ã      ä½è¦æ³¨æï¼è¿æ»¤å¨åªå¨ä¸servletè§è2.3çå¼å®¹çæå¡å¨ä¸æä½ç¨ãå¦æä½ çWebåºç¨éè¦æ¯ææ§çæå¡å¨ï¼å°±ä¸è½ä½¿ç¨è¿æ»¤å¨ã1ï¼   建ç«åºæ¬è¿æ»¤å¨å»ºç«ä¸ä¸ªè¿æ»¤å¨æ¶åä¸åäºä¸ªæ­¥éª¤ï¼ 1ï¼å»ºç«ä¸ä¸ªå®ç°Filteræ¥å£çç±»ãè¿ä¸ªç±»éè¦ä¸ä¸ªæ¹æ³ï¼åå«æ¯ï¼doFilterãinitådestroyã        doFilteræ¹æ³åå«ä¸»è¦çè¿æ»¤ä»£ç ï¼è§ç¬¬2æ­¥ï¼ï¼initæ¹æ³å»ºç«è®¾ç½®æä½ï¼èdestroyæ¹æ³è¿è¡æ¸æ¥ã 2ï¼å¨doFilteræ¹æ³ä¸­æ¾å¥è¿æ»¤è¡ä¸ºãdoFilteræ¹æ³ç第ä¸ä¸ªåæ°ä¸ºServletRequest对象ã此对象ç»è¿æ»¤å¨æä¾äºå¯¹è¿å¥çä¿¡æ¯ ï¼åæ¬è¡¨åæ°æ®ãcookieåHTTP请æ±å¤´ï¼çå®å¨è®¿é®ã第äºä¸ªåæ°ä¸ºServletResponseï¼é常å¨ç®åçè¿æ»¤å¨ä¸­å¿½ç¥æ­¤åæ°ãæåä¸ä¸ªå æ°ä¸ºFilterChainï¼å¦ä¸ä¸æ­¥æè¿°ï¼æ­¤åæ°ç¨æ¥è°ç¨servletæJSP页ã 3ï¼è°ç¨FilterChain对象çdoFilteræ¹æ³ãFilteræ¥å£çdoFilteræ¹æ³åä¸ä¸ªFilterChain对象ä½ä¸ºå®çä¸ä¸ªå æ°ãå¨è°ç¨æ­¤å¯¹è±¡çdoFilteræ¹æ³æ¶ï¼æ¿æ´»ä¸ä¸ä¸ªç¸å³çè¿æ»¤å¨ãå¦æ没æå¦ä¸ä¸ªè¿æ»¤å¨ä¸servletæJSP页é¢å³èï¼åservletæJSP 页é¢è¢«æ¿æ´»ã 4ï¼å¯¹ç¸åºçservletåJSP页é¢æ³¨åè¿æ»¤å¨ãå¨é¨ç½²æ述符æ件ï¼web.xmlï¼ä¸­ä½¿ç¨filteråfilter-mappingåç´ ã 5ï¼ç¦ç¨æ¿æ´»å¨servletãé²æ­¢ç¨æ·å©ç¨ç¼ºçservlet URLç»è¿è¿æ»¤å¨è®¾ç½®ã 1.1   建ç«ä¸ä¸ªå®ç°Filteræ¥å£çç±»       ææè¿æ»¤å¨é½å¿é¡»å®ç°javax.servlet.Filterãè¿ä¸ªæ¥å£åå«ä¸ä¸ªæ¹æ³ï¼åå«ä¸ºdoFilterãinitådestroyã public void doFilter(ServletRequset request,                      ServletResponse response,                      FilterChain chain)      thows ServletException, IOException æ¯å½è°ç¨ä¸ä¸ªè¿æ»¤å¨ï¼å³ï¼æ¯æ¬¡è¯·æ±ä¸æ­¤è¿æ»¤å¨ç¸å³çservletæJSP页é¢ï¼æ¶ï¼å°±æ§è¡å¶doFilteræ¹æ³ãæ­£æ¯è¿ä¸ªæ¹æ³åå«äºå¤§é¨åè¿æ»¤é»è¾ã 第ä¸ä¸ªåæ°ä¸ºä¸ä¼ å¥è¯·æ±æå³çServletRequestã对äºç®åçè¿æ»¤å¨ï¼å¤§å¤æ°è¿æ»¤é»è¾æ¯åºäºè¿ä¸ªå¯¹è±¡çãå¦æå¤çHTTP请æ±ï¼å¹¶ä¸éè¦è®¿é®è¯¸ å¦getHeaderægetCookiesç­å¨ServletRequest中æ æ³å¾å°çæ¹æ³ï¼å°±è¦æ此对象æé æ HttpServletRequestã 第äºä¸ªåæ°ä¸ºServletResponseãé¤äºå¨ä¸¤ä¸ªæå½¢ä¸è¦ä½¿ç¨å®ä»¥å¤ï¼é常忽ç¥è¿ä¸ªåæ°ãé¦åï¼å¦æå¸æå®å¨é»å¡å¯¹ç¸å³servletæJSP页 é¢ç访é®ãå¯è°ç¨response.getWriter并ç´æ¥åéä¸ä¸ªååºå°å®¢æ·æºãå¶æ¬¡ï¼å¦æå¸æä¿®æ¹ç¸å³çservletæJSP页é¢çè¾åºï¼å¯æå åºåå«å¨ä¸ä¸ªæ¶éææåéå°å®çè¾åºç对象中ãç¶åï¼å¨è°ç¨serlvetæJSP页é¢åï¼è¿æ»¤å¨å¯æ£æ¥è¾åºï¼å¦æåé就修æ¹å®ï¼ä¹ååéå°å®¢æ·æºã DoFilterçæåä¸ä¸ªåæ°ä¸ºFilterChain对象ã对此对象è°ç¨doFilter以æ¿æ´»ä¸servletæJSP页é¢ç¸å³çä¸ä¸ä¸ªè¿æ»¤å¨ãå¦æ没æå¦ä¸ä¸ªç¸å³çè¿æ»¤å¨ï¼å对doFilterçè°ç¨æ¿æ´»servletæJSPæ¬èº«ã public void init(FilterConfig config)   thows ServletException initæ¹æ³åªå¨æ­¤è¿æ»¤å¨ç¬¬ä¸æ¬¡åå§åæ¶æ§è¡ï¼ä¸æ¯æ¯æ¬¡è°ç¨è¿æ»¤å¨é½æ§è¡å®ã对äºç®åçè¿æ»¤å¨ï¼å¯æä¾æ­¤æ¹æ³çä¸ä¸ªç©ºä½ï¼ä½æ两个åå éè¦ä½¿ç¨initã é¦åï¼FilterConfig对象æä¾å¯¹servletç¯å¢åweb.xmlæ件中ææ´¾çè¿æ»¤å¨åç访é®ãå æ­¤ï¼æ®éçåæ³æ¯å©ç¨initå° FilterConfig对象å­æ¾å¨ä¸ä¸ªå­æ®µä¸­ï¼ä»¥ä¾¿doFilteræ¹æ³è½å¤è®¿é®servletç¯å¢æè¿æ»¤å¨å.å¶æ¬¡ï¼FilterConfigå¯¹è±¡å· æä¸ä¸ªgetInitParameteræ¹æ³ï¼å®è½å¤è®¿é®é¨ç½²æ述符æ件ï¼web.xmlï¼ä¸­åéçè¿æ»¤å¨åå§ååæ°ã public void destroy( )      大å¤æ°è¿æ»¤å¨ç®åå°ä¸ºæ­¤æ¹æ³æä¾ä¸ä¸ªç©ºä½ï¼ä¸è¿ï¼å¯å©ç¨å®æ¥å®æ诸å¦å³é­è¿æ»¤å¨ä½¿ç¨çæ件ææ°æ®åºè¿æ¥æ± ç­æ¸é¤ä»»å¡ã 1.2   å°è¿æ»¤è¡ä¸ºæ¾å¥doFilteræ¹æ³      doFilteræ¹æ³ä¸ºå¤§å¤æ°è¿æ»¤å¨å°å³é®é¨åãæ¯å½è°ç¨ä¸ä¸ªè¿æ»¤å¨æ¶ï¼é½è¦æ§è¡doFilterã对äºå¤§å¤æ°è¿æ»¤å¨æ¥è¯´ï¼doFilteræ§è¡çæ­¥éª¤æ¯ åºäºä¼ å¥çä¿¡æ¯çãå æ­¤ï¼å¯è½è¦å©ç¨ä½ä¸ºdoFilterç第ä¸ä¸ªåæ°æä¾çServletRequestãè¿ä¸ªå¯¹è±¡å¸¸å¸¸æé ä¸º HttpServletRequestç±»åï¼ä»¥æä¾å¯¹è¯¥ç±»çæ´ç¹æ®æ¹æ³ç访é®ã1.3   è°ç¨FilterChain对象çdoFilteræ¹æ³     Filteræ¥å£çdoFilteræ¹æ³ä»¥ä¸ä¸ªFilterChain对象ä½ä¸ºå®ç第ä¸ä¸ªåæ°ãå¨è°ç¨è¯¥å¯¹è±¡çdoFilteræ¹æ³æ¶ï¼æ¿æ´»ä¸ä¸ä¸ªç¸å³ç è¿æ»¤å¨ãè¿ä¸ªè¿ç¨ä¸è¬æç»­å°é¾ä¸­æåä¸ä¸ªè¿æ»¤å¨ä¸ºæ­¢ãå¨æåä¸ä¸ªè¿æ»¤å¨è°ç¨å¶FilterChain对象çdoFilteræ¹æ³æ¶ï¼æ¿æ´»servletæ 页é¢èªèº«ã ä½æ¯ï¼é¾ä¸­çä»»æè¿æ»¤å¨é½å¯ä»¥éè¿ä¸è°ç¨å¶FilterChainçdoFilteræ¹æ³ä¸­æ­è¿ä¸ªè¿ç¨ãå¨è¿æ ·çæåµä¸ï¼ä¸åè°ç¨JSP页é¢çserlvetï¼å¹¶ä¸ä¸­æ­æ­¤è°ç¨è¿ç¨çè¿æ»¤å¨è´è´£å°è¾åºæä¾ç»å®¢æ·æºã 1.4   对éå½çservletåJSP页é¢æ³¨åè¿æ»¤å¨      é¨ç½²æ述符æ件ç2.3çæ¬å¼å¥äºä¸¤ä¸ªç¨äºè¿æ»¤å¨çåç´ ï¼åå«æ¯ï¼filteråfilter-mappingãfilteråç´ åç³»ç»æ³¨åä¸ä¸ªè¿æ»¤å¯¹è±¡ï¼filter-mappingåç´ æå®è¯¥è¿æ»¤å¯¹è±¡æåºç¨çURLã 1.filteråç´  filteråç´ ä½äºé¨ç½²æ述符æ件ï¼web.xmlï¼çåé¨ï¼ææfilter-mappingãservletæservlet-mappingåç´ ä¹åãfilteråç´ å·æå¦ä¸å­ä¸ªå¯è½çå­åç´ ï¼ 1ã icon   è¿æ¯ä¸ä¸ªå¯éçåç´ ï¼å®å£°æIDEè½å¤ä½¿ç¨çä¸ä¸ªå¾è±¡æ件ã 2ãfilter-name   è¿æ¯ä¸ä¸ªå¿éçåç´ ï¼å®ç»è¿æ»¤å¨åéä¸ä¸ªéå®çåå­ã 3ãdisplay-name   è¿æ¯ä¸ä¸ªå¯éçåç´ ï¼å®ç»åºIDE使ç¨çç­å称ã 4ã description   è¿ä¹æ¯ä¸ä¸ªå¯éçåç´ ï¼å®ç»åºIDEçä¿¡æ¯ï¼æä¾ææ¬ææ¡£ã 5ã filter-class   è¿æ¯ä¸ä¸ªå¿éçåç´ ï¼å®æå®è¿æ»¤å¨å®ç°ç±»çå®å¨éå®åã 6ã init-param   è¿æ¯ä¸ä¸ªå¯éçåç´ ï¼å®å®ä¹å¯å©ç¨FilterConfigçgetInitParameteræ¹æ³è¯»åçåå§ååæ°ãå个è¿æ»¤å¨åç´ å¯åå«å¤ä¸ªinit-paramåç´ ã 请注æï¼è¿æ»¤æ¯å¨serlvetè§è2.3ç中å次å¼å¥çãå æ­¤ï¼web.xmlæ件å¿é¡»ä½¿ç¨DTDç2.3çæ¬ãä¸é¢ä»ç»ä¸ä¸ªç®åçä¾å­ï¼

      DOCTYPE web-app PUBLIC         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"          "http://java.sun.com/dtd/web-app_2_3.dtd">                 MyFilterfilter-name>        myPackage.FilterClassfilter-class>      filter>            ...filter-mapping>     2.filter-mappingåç´     filter-mappingåç´ ä½äºweb.xmlæ件中filteråç´ ä¹åserlvetåç´ ä¹åãå®åå«å¦ä¸ä¸ä¸ªå¯è½çå­åç´ ï¼ 1ã filter-name   è¿ä¸ªå¿éçåç´ å¿é¡»ä¸ç¨filterå素声ææ¶ç»äºè¿æ»¤å¨çå称ç¸å¹éã 2ã url-pattern   æ­¤å素声æä¸ä¸ªä»¥ææ ï¼/ï¼å¼å§ç模å¼ï¼å®æå®è¿æ»¤å¨åºç¨çURLãææfilter-mappingå素中å¿é¡»æä¾url-patternæ servlet-nameãä½ä¸è½å¯¹å个filter-mappingåç´ æä¾å¤ä¸ªurl-patternå素项ãå¦æå¸æè¿æ»¤å¨éç¨äºå¤ä¸ªæ¨¡å¼ï¼å¯éå¤ æ´ä¸ªfilter-mappingåç´ ã 3ã servlet-name   æ­¤åç´ ç»åºä¸ä¸ªå称ï¼æ­¤å称å¿é¡»ä¸å©ç¨servletåç´ ç»äºservletæJSP页é¢çå称ç¸å¹éãä¸è½ç»å个filter-mappingåç´ æä¾ å¤ä¸ªservlet-nameå素项ãå¦æå¸æè¿æ»¤å¨éåäºå¤ä¸ªservletåï¼å¯éå¤è¿ä¸ªfilter-mappingåç´ ã ä¸é¢ä¸¾ä¸ä¸ªä¾å­ï¼

xml version="1.0" encoding="ISO-8859-1"?>    DOCTYPE web-app PUBLIC         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"        "http://java.sun.com/dtd/web-app_2_3.dtd">                  MyFilterfilter-name>        myPackage.FilterClassfilter-class>      filter>                    MyFilterfilter-name>        /someDirectory/SomePage.jspurl-pattern>      filter-mapping>    web-app>

1.5   ç¦ç¨æ¿æ´»å¨servlet     å¨å¯¹èµæºåºç¨è¿æ»¤å¨æ¶ï¼å¯éè¿æå®è¦åºç¨è¿æ»¤å¨çURL模å¼æservletåæ¥å®æãå¦ææä¾servletåï¼åæ­¤å称å¿é¡»ä¸web.xmlç servletå素中ç»åºçå称ç¸å¹éãå¦æ使ç¨åºç¨å°ä¸ä¸ªserlvetçURL模å¼ï¼å此模å¼å¿é¡»ä¸å©ç¨web.xmlçåç´ servlet- mappingæå®ç模å¼ç¸å¹éãä½æ¯ï¼å¤æ°æå¡å¨ä½¿ç¨“æ¿æ´»å¨servlet”为servletä½ç»ä¸ä¸ªç¼ºççURLï¼http: //host/WebAppPrefix/servlet/ServletNameãéè¦ä¿è¯ç¨æ·ä¸å©ç¨è¿ä¸ªURL访é®servletï¼è¿æ ·ä¼ç»è¿è¿æ»¤å¨ 设置ï¼ã ä¾å¦ï¼åå¦å©ç¨filteråfilter-mappingæ示å为SomeFilterçè¿æ»¤å¨åºç¨å°å为SomeServletçservletï¼åå¦ä¸ï¼

      SomeFilterfilter-name>      somePackage.SomeFilterClassfilter-class>                 SomeFilterfilter-name>      SomeServletservlet-name>    

æ¥çï¼ç¨servletåservlet-mappingè§å®URL   http://host/webAppPrefix/Blah åºè¯¥è°ç¨SomeSerlvetï¼å¦ä¸æ示ï¼

      SomeFilterfilter-name>      somePackage.SomeFilterClassfilter-class>    filter>              SomeFilterfilter-name>      /Blahservlet-name>    

ç°å¨ï¼å¨å®¢æ·æºä½¿ç¨URL   http://host/webAppPrefix/Blah æ¶å°±ä¼è°ç¨è¿æ»¤å¨ãè¿æ»¤å¨ä¸åºç¨å° http://host/webAppPrefix/servlet/SomePackage.SomeServletClassã 尽管æå³é­æ¿æ´»å¨çæå¡å¨ä¸ç¨æ¹æ³ãä½æ¯ï¼å¯ç§»æ¤æ强çæ¹æ³æ¶éæ°æ å°Webåºç¨éç/servlet模å¼ï¼è¿æ ·ä½¿ææåå«æ­¤æ¨¡å¼ç请æ±è¢«éå°ç¸åç servlet中ã为äºéæ°æ å°æ­¤æ¨¡å¼ï¼é¦ååºè¯¥å»ºç«ä¸ä¸ªç®åçservletï¼å®æå°ä¸æ¡é误æ¶æ¯ï¼æéå®åç¨æ·å°é¡¶å±é¡µãç¶åï¼ä½¿ç¨servletå servlet-mappingåç´ åéåå«/servlet模å¼ç请æ±å°è¯¥servletãç¨åºæ¸å9-1ç»åºäºä¸ä¸ªç®ç­çä¾å­ã ç¨åºæ¸å9-1 web.xmlï¼éå®å缺çservlet URLçæå½ï¼

 xml version="1.0" encoding="ISO-8859-1"?>    DOCTYPE web-app PUBLIC          "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"          "http://java.sun.com/dtd/web-app_2_3.dtd">                  Errorservlet-name>      somePackage.ErrorServletservlet-class>    servlet>              Errorservlet-name>      /servlet/*url-pattern>    servlet-mapping>       

------------------------------------------------------------------------------------------- 解å³ä¹±ç 

web.xmlå éç½®

    Filter       com.util.EncodingFilter          Encoding    gb2312          Filter   /*  

EncodingFilter.java

package com.hibernate.util;

import java.io.IOException;

import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter {  protected FilterConfig config;

 protected String Encoding = null;

 public void init(FilterConfig config) throws ServletException {

  this.config = config;   this.Encoding = config.getInitParameter("Encoding");

 }

 public void doFilter(ServletRequest request, ServletResponse response,    FilterChain chain) throws IOException, ServletException {

  if (request.getCharacterEncoding() == null) {    if (Encoding != null) {     request.setCharacterEncoding(Encoding);     response.setCharacterEncoding(Encoding);    }   }   chain.doFilter(request,response);  }  public void destroy() {} }

OK!!!

---------------------------------------------------------------------------------------------------- å¾ç®åçè¿æ»¤å¨ï¼å°±æ¯ä¸ºäºè®°å½ä¸ä¸ªurlç请æ±æ¶é´ filter: package com.javaeye.wqf;  import javax.servlet.*;    public class CounterFilter implements Filter {      public void doFilter(ServletRequest request, ServletResponse response,              FilterChain chain) throws IOException, ServletException {          long start = System.currentTimeMillis();          System.out.println("Filter start at "+start);          chain.doFilter(request, response);          long end = System.currentTimeMillis();          System.out.println("Filter end at "+end);      }  }        test      com.javaeye.wqf.CounterFilter            test      /*    ä¸è¬æåµä¸æ¯æ²¡ä»ä¹é®é¢ï¼ä½æ¯å½æä¸è½½ä¸ä¸ªç¨å¾®å¤§çæ件æ¶ï¼è·³åºç¡®è®¤çªå£ï¼å¦æéæ©çæ¯cancelï¼ å°±ä¼åç°filter并没æè¿åï¼ä¹å°±æ¯è¯´ System.out.println("Filter end at "+end);  并没ææ§è¡. åå æ¯: chain.doFilter(request, response);   æ§è¡å°è¿éæ¶ä¼ä»è¿éè°ç¨å©ä¸çfilteråservletï¼æ以è¿ä¸ªè°ç¨å°ä¼æ¯ä¸ä¸ªå¾é¿çè¿ç¨ã å¨è¿ä¸ªè°ç¨éï¼å°ä¼å®å¨éè¿requeståresonseå»æä½è¿æ¥ï¼åå¾/åéæ°æ®ï¼å¦æè¿æ¥åºç°å¼å¸¸ï¼å°ç´æ¥å¼¹åºException ä½ ç代ç é没ææè·å¼å¸¸ï¼æ以å¦æåºç°å¼å¸¸ï¼chain.doFilteråé¢çå°±ä¸ä¼æ§è¡ã å¯ä»¥æchain.doFilteræ¾å°try finallyç»æ中ï¼ä¿è¯åç»­ä¼è¢«æ§è¡


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3