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的编码问题。。