Tomcat中HttpServletResponse的实现类

我们经常会自定义servlet然后重写doget和dopost方法

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");ServletInputStream in = request.getInputStream();String s = IOUtils.toString(in, "utf-8");System.out.println(s);}

参数中有HttpServletRequest和HttpServletResponse他们都是接口,那么实现类是什么?

public class HttpServletResponseWrapper extends ServletResponseWrapperimplements HttpServletResponse {

实现类是ServletResponseWrapper,这个类中有一个ServletResponse成员,但是他是接口,实现类是ResponseFacade。

public class ServletResponseWrapper implements ServletResponse {private ServletResponse response;

在自定义的servlet中我们经常会设置字符编码。

response.setContentType("text/html;charset=utf-8");

他调用了ServletResponseWrapper的方法,,这个方法又调用了成员的方法。

@Overridepublic void setContentType(String type) {this.response.setContentType(type);}@Overridepublic void setContentType(String type) {if (isCommitted()) {return;}if (SecurityUtil.isPackageProtectionEnabled()){AccessController.doPrivileged(new SetContentTypePrivilegedAction(type));} else {response.setContentType(type);}}

终于知道了自定义servlet中response的实现类。。。

也会有想更换的念头。旅行,正好提供了这样一个机会,

Tomcat中HttpServletResponse的实现类

相关文章:

你感兴趣的文章:

标签云: