1. 程式人生 > >Filter對Request的改變:HttpServletRequestWrapper的工作原理

Filter對Request的改變:HttpServletRequestWrapper的工作原理

8)Filter對Request的改變:HttpServletRequestWrapper的工作原理

馬 克-to-win:有了HttpServletResponseWrapper的基礎,就好理解HttpServletRequestWrapper了。 無疑它就是想在Request到達伺服器之前,先把它處理一下。比如過濾掉一些政治敏感字。意義嘛,也好理解。比如n個html頁面都需要過濾,如果都在 n個servlet當中過濾的話,會造成未來程式碼維護困難。馬克-to-win:HttpServletRequestWrapper的使用方法就是靠 著:1)MarkToWinRequestWrapper  hsr =new MarkToWinRequestWrapper((HttpServletRequest)request); 和 2)chain.doFilter(hsr, response);
這兩句話以後MarkToWinRequestWrapper的例項hsr取 代了request,之後在servlet呼叫的request.getParameter(String name)方法當然就是MarkToWinRequestWrapper類的getParameter方法。如果servlet想呼叫request的其 他方法,MarkToWinRequestWrapper這個類也可以覆蓋掉它。

例 1.2.8

package com;
import javax.servlet.http.*;
public class MarkToWinRequestWrapper extends HttpServletRequestWrapper {
    public MarkToWinRequestWrapper(HttpServletRequest request) {

詳情請見:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp6_web.html#HttpServletRequestWrapper