在servlet java类中,我输入request.setCharacterEncoding("utf-8"),然后我想看看这个方法在源代码中实际上是什么,我使用了CTRL+左键单击进入方法的源代码
然后进入ServletRequest接口(interface),接口(interface)中方法的代码为
public void setCharacterEncoding(String env)
throws java.io.UnsupportedEncodingException;
这肯定是一个空方法,因为 ServletRequest
是一个接口(interface)。
我在哪里可以看到这个方法实际上做了什么来设置编码?
最佳答案
该方法由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);
}
}
正如您所看到的,它只是验证编码名称并设置存储编码的内部请求实现字段。您可以在 servlet 容器源代码中搜索 implements HttpServletRequest
并查看实现。
关于java - request.setcharacterencoding() 方法似乎在源代码中没有执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428185/