java – servlet是否知道使用http-equiv指定的已发送表单的编码?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – servlet是否知道使用http-equiv指定的已发送表单的编码?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1144字,纯文字阅读大概需要2分钟。
内容图文
![java – servlet是否知道使用http-equiv指定的已发送表单的编码?](/upload/InfoBanner/zyjiaocheng/821/4df74cc26b1542e5acf5e1e80f407db0.jpg)
servlet是否知道使用http-equiv指定的已发送表单的编码?
当我使用http-equiv指定POSTed表单的编码时:
<HTML>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'/>
</head>
<BODY >
<form name="form" method="post" >
<input type="text" name="v_rcvname" value="相宜本草">
</form>
</BODY>
</HTML>
然后在servlet我使用方法,request.getCharacterEncoding()我得到了null!
那么,有没有办法告诉服务器我在一些字符编码中编码数据?
解决方法:
这确实会从大多数webbrowsers返回null.但通常你可以放心地假设webbrowser实际上使用了原始响应头中指定的编码,在本例中为gb2312.一种常见的方法是创建一个过滤器,用于检查请求编码,然后使用ServletRequest#setCharacterEncoding()强制获取所需的值(当然,您应该在整个Web应用程序中使用该值).
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
if (request.getCharacterEncoding() == null) {
request.setCharacterEncoding("gb2312");
}
chain.doFilter(request, response);
}
将此过滤器映射到覆盖所有servlet请求的url-pattern,例如/ *.
如果你没有这样做并放手,那么servletcontainer将使用其默认编码来解析参数,这通常是ISO-8859-1,而这又是错误的.您对相宜本草的输入最终会像ÏàÒ˱¾².
内容总结
以上是互联网集市为您收集整理的java – servlet是否知道使用http-equiv指定的已发送表单的编码?全部内容,希望文章能够帮你解决java – servlet是否知道使用http-equiv指定的已发送表单的编码?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。