1 package cn.web.servlet; 2 3 import java.io.UnsupportedEncodingException; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletRequestWrapper; 7 /** 8 * 裝飾者模式對HttpServletRequest進行增強。 9 * 兩種方法: 10 * 1. implements HttpServletRequest(所有的方法都要自己來重寫,所以,建議使用第二種方法,也就是通過繼承HttpServletRequestWrapper,再對自己的需要進行重寫相應的方法) 11 * 2. extends HttpServletRequestWrapper(已經用裝飾者模式幫我們重寫所有的方法,我們只需要重寫自己需要重寫的方法就可以了,而免去了對其它方法的進行重寫的麻煩) 12 * @author Administrator 13 * 14 */ 15 public class EncodingRequest extends HttpServletRequestWrapper { 16 private HttpServletRequest req ; 17 public EncodingRequest(HttpServletRequest request) { 18 super(request); 19 this.req = request; 20 } 21 /** 22 * 增強getParameter()方法,使其能夠自行處理get的編碼問題 23 */ 24 @Override 25 public String getParameter(String name) { 26 String value = req.getParameter(name); 27 try { 28 value = new String(value.getBytes("ISO-8859-1"),"UTF-8");//處理get方式 29 } catch (UnsupportedEncodingException e) { 30 e.printStackTrace(); 31 } 32 return value; 33 } 34 }
主要增強了request的編碼問題。。