今天在整eclipse for jee,发现有一个项目原来用myeclipse6.0进行开发运行测试没问题,现在转用eclipse for jee版本时,代码无法编译通过,提示response.setCharacterEncoding("UTF-8");这行报错,说HttpServletResponse找不到setCharacterEncoding方法,刚开始以为是JDK版本问题。其实不然,servlet是独立的一个API,跟JDK的API不同,这里servlet也是分为好几个版本的。而HttpServletResponse是属于servlet API里面的接口,仔细查看了servlet2.3和servlet2.5的API,发现HttpServletResponse这个接口都不支持setCharacterEncoding这个方法,是属于servlet2.4特有的接口方法。而eclipse for jee版本的servlet用的就是2.5的版本。NND,搞死我了。
servlet的接口规范这样改出现了兼容性问题,很是不方便。
我暂时把这样的写法注视掉了,不知道还有没有其他的高招啊?
=======
重新在classpath里面引入2.4版本即可。