黑马程序员技术交流社区

标题: 关于servlet问题 [打印本页]

作者: hsen    时间: 2014-4-18 15:46
标题: 关于servlet问题
像下面这句话:request.setCharacterEncoding("gbk");我查了一下API中HttpServletRequest这个接口,这个方法出现在  HttpServletRequest接口的父接口ServletRequest中.而且HttpServletRequest这个接口的实现类只有HttpServletRequestWrapper  这个一个类,但是这个类中并没有实现父接口中的setCharacterEncoding(String env);这个方法。

看下面的方法
public void doGet  (HttpServletRequest request, HttpServletResponse response)  throws ServletException,IOException         {
  request.setCharacterEncoding("gbk");
}
在上面这个方法中request这个变量是接口HttpServletRequest的一个实例,我的想法是:它既然是HttpServletRequest的一个实例,   而HttpServletRequest的实现类就只有一个HttpServletRequestWrapper,那么这个request就是HttpServletRequestWrapper类的一  个对象了.但是HttpServletRequestWrapper这个类中并没有实现setCharacterEncoding(String env);这个方法,为什么上面的方法  中可以使用request.setCharacterEncoding("gbk");

作者: hsen    时间: 2014-4-18 15:52
HttpServletRequest的实现类确实只有一个HttpServletRequestWrapper
作者: 吴莫    时间: 2014-4-19 15:11
HttpServletRequestWrapper类implements接口HttpServletRequest,接口HttpServletRequest又实现接口ServletRequest。setCharacterEncoding(String env);这个方法是在接口ServletRequest中定义的,说白了吧,孙子可以调用爷爷的方法吧。我觉得应该就是这样吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2