装饰request和response:实现功能分别是,请求编码和页面静态化
继承的类分别是:HttpServletRequestWrapper和HttpServletResponseWrapper
编码
public class EncodeRequest extends HttpServletRequestWrapper{
//是你
private HttpServletRequest req;
//还有你
public EncodeRequest(HttpServletRequest request) {
super(request);
this.req=request;
// TODO 自动生成的构造函数存根
}
/**
* 一切拜托你
*/
@Override
public String getParameter(String name) {
String value=req.getParameter(name);
try {
value=new String(value.getBytes("iso-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return value;
}
页面静态化
public class OutResponse extends HttpServletResponseWrapper {
private PrintWriter pw;
public OutResponse(HttpServletResponse response ,String path) throws FileNotFoundException, UnsupportedEncodingException {
super(response);
// 创建一个与html文件路径在一起的流对象
pw = new PrintWriter(path, "utf-8");
}
public PrintWriter getWriter() {
// 返回一个与html绑定在一起的printWriter对象
// jsp会使用它进行输出,这样数据都输出到html文件了。
return pw;
}