在servlet java类中,我输入 request.setCharacterEncoding(“utf-8”),然后我想看看这个方法在源代码中实际是什么,我使用CTRL + LEFT-CLICK输入方法的源代码
然后进入 ServletRequest接口,在接口中方法的代码是
public void setCharacterEncoding(String env)
throws java.io.UnsupportedEncodingException;
这肯定是一个空方法,因为ServletRequest
是一个接口。
我在哪里可以看到这种方法实际上设置了什么编码?
答案 0 :(得分:1)
此方法由servlet容器实现。例如,Tomcat 8.5实现驻留在 org.apache.catalina.connector.Request#的setCharacterEncoding 看起来像是:
public void setCharacterEncoding(String enc) throws UnsupportedEncodingException {
if(!this.usingReader) {
B2CConverter.getCharset(enc);
this.coyoteRequest.setCharacterEncoding(enc);
}
}
正如您所看到的,它只是验证编码名称并设置存储编码的内部请求实现字段。您可以搜索implements HttpServletRequest
的servlet容器源代码并查看实现。