`
szhnet
  • 浏览: 109452 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web编码的一些总结

    博客分类:
  • java
阅读更多
1.get
客户端:
get将请求参数作为url的一部分。浏览器会对url进行编码后发给服务器。浏览器具体用什么编码,依赖于浏览器的具体实现(而且有些浏览器对查询串和URI会分别采取不同的编码)。所以url中不要出现非ASCII字符。非ASCII字符可以在用js在客户端进行统一的编码。
服务器端:
通过request.getParameter获取参数时,参数已经被服务器解码,具体解码方式依赖于服务器的实现。这里要注意用request.setCharacterEncoding是无法指定get请求参数的编码的(有例外下面会提到),request.setCharacterEncoding是用来解码post参数的。
比如tomcat默认用iso-8859-1,可以用java代码来转码new String(request.getParameter("name").getBytes("iso-8859-1"),"客户端指定的URL编码方式")。当然可以通过server.xml配置文件中的Connector节点的URIEncoding来指定编码,这样就不用再转了。
URIEncoding应用到tomcat的所有webapp,如果不同的webapp用不同的URL编码就会有问题。所以推荐使用useBodyEncodingForURI="true",这样将采用和处理post请求的同样的方式。于是可以将get与post进行统一处理,比如可以设置过滤器。

2.post
客户端:
post将请求参数放在请求体中。请求参数也要由浏览器编码。一般都是采用浏览器解码页面所用的编码,这个是由浏览器收到服务器响应中的Content-Type所指定的(比如Content-Type text/html;charset=utf-8),响应的Content-Type可以用jsp中的<%@ page contentType='text/html;charset=utf-8'%>,或者通过response.setContentType来指定。如果响应的Content-Type中没有charset则采用html的meta中的Content-Type编码(比如<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>),如果都没指定,则由浏览器自己决定。
服务器端:
如果请求头中Content-Type包含了编码,这时服务器端的将用此来解码参数,getCharacterEncoding方法返回的就是这个编码。我们经常getCharacterEncoding返回的是null,这是因为有些浏览器不发送请求的Content-Type,这时我们需要在服务器端用request.setCharacterEncoding来指定编码对post请求进行解码。

所以一般<%@ page contentType=%>,request.setCharacterEncoding,useBodyEncodingForURI="true"就可以解决大部分乱码问题了。

推荐一篇文章http://blog.csdn.net/yzhz/archive/2007/07/03/1676796.aspx
分享到:
评论

相关推荐

    Web课程设计总结.pdf

    标题为《Web课程设计总结》,意味着文档内容涉及对一段时间内进行的Web开发相关课程学习成果的回顾与总结。虽然具体的内容和知识点未能充分展现,但可以通过文件的标题和描述来推测文档所涵盖的Web开发相关技术、...

    WEB软件测试总结报告.doc

    5. **建议**:基于测试结果,测试工程师可能会提出一些建议,如加强编码规范的执行,提高代码质量;优化界面设计以提升用户体验;进行跨平台和多浏览器的兼容性测试,确保在不同环境下软件的表现;以及针对易用性...

    web安全前端编码规范1

    总结,前端编码安全规范是保护Web应用安全的重要环节,它涉及到多个层面,包括代码压缩、字符过滤、数据转义以及防注入策略等。遵循这些规范,可以显著提高前端代码的安全性,有效防范各种常见的Web安全威胁。开发者...

    web中间件常见漏洞总结.pdf

    Web中间件是构建Web应用程序的关键组件,它负责处理HTTP请求,提供动态内容,管理会话,以及处理其他与网络交互相关的任务。...同时,进行安全编码培训和定期的安全审计也是保障Web中间件安全的重要步骤。

    web编码问题小结.doc

    本文档《web编码问题小结》详细总结了Java开发中可能遇到的各种编码问题及其解决方案,覆盖了数据库、Cookie、静态页面、POST与GET请求等多种场景。 #### 数据库的中文问题 数据库的中文问题主要源于数据库与应用...

    tomcat字符编码总结

    ### Tomcat字符编码总结 #### 一、引言 在Web开发中,字符编码问题一直是让人头疼的问题之一,尤其是在处理中文等多字节字符时。本文将深入探讨Tomcat环境中字符编码的相关知识点,并通过实际案例分析如何有效解决...

    web项目经验总结

    ### Web项目经验总结 #### 网页开发常见故障及解决方案 **一、部署到Tomcat容器时控制台报错** - **问题描述**:在将Web应用部署至Tomcat容器时,控制台出现错误提示,表明部署失败。 - **原因分析**:此问题通常...

    java web课程笔记总结

    根据提供的标题、描述和部分上下文内容,我们可以推断出这份“Java Web课程笔记总结”是一份关于Java Web开发的学习资料。尽管实际的文字内容没有给出,但基于标题和描述中的关键词,我们可以归纳出一系列重要的Java...

    Java_Web总结

    Java Web 总结 Java Web 应用程序是基于 Java 语言和 Web 技术的应用程序,它们可以运行在 Web 服务器上,为用户提供各种服务。Java Web 应用程序的核心技术是 Servlet 和 JavaServer Pages(JSP),它们是 Java ...

    WEB安全知识总结.zip

    本总结将深入探讨一些常见的Web漏洞及其防范措施,帮助读者快速掌握Web安全的基本知识。 1. **SQL注入**:这是一种允许攻击者通过在Web应用程序的输入字段中插入恶意SQL代码来获取、修改或删除数据库信息的攻击方式...

    网络安全、Web安全、渗透测试笔试总结.pdf

    这篇文档是关于网络安全、Web安全和渗透测试相关笔试的总结,适合刚毕业的实习生准备相关面试。 对称加密和非对称加密是两种常见的加密方法。对称加密使用相同的密钥进行加密和解密,适合于加密大量数据,但密钥的...

    web 取颜色的编码值的小工具

    标题中的“web 取颜色的编码值的小工具”指的是一个用于获取网页颜色代码的实用程序。这类工具通常可以帮助Web开发者和设计师快速查找、选择并复制网页设计中使用的颜色的十六进制或RGB值。在Web开发中,颜色编码...

    WEB应用系统编码与部署安全规范

    ### WEB应用系统编码与部署安全规范知识点解析 #### 一、引言 随着互联网技术的飞速发展,WEB应用已成为企业信息化建设的重要组成部分。然而,伴随着广泛应用的同时,WEB应用的安全问题日益凸显,如SQL注入、跨站...

    web前端面经总结(含答案).pdf

    标题“web前端面经总结(含答案).pdf”暗示了文档内容围绕web前端开发领域的面试题及其答案展开。文中所提及的高频面试题目覆盖了web前端开发的多个关键技术点,包括网络基础、HTTP/HTTPS协议、TCP与UDP协议、以及...

    WEB项目测试经验总结

    本文将从零开始,总结Web项目测试的一些关键点和常用方法。 首先,进行页面链接检查,这是最基本的测试步骤。每一条链接都应该指向有效的页面,页面间的跳转应该准确无误。如果一个链接无法打开或者跳转错误,可能...

    PHP WEB 开发乱码问题总结

    ### PHP WEB 开发乱码问题总结 在进行PHP Web开发时,编码问题一直是开发者们头疼的一个环节,尤其是在处理中文或多种语言的情况下。本文主要总结了五个方面可能导致的乱码问题及解决方案,帮助开发者们更好地理解...

    web程序员面试总结资料

    总结来说,Web程序员在面试中需要了解和掌握数据库的优化策略,包括字段属性的选择、JOIN与子查询的合理使用、UNION操作的运用、事务处理以及在特定情况下的表锁定技术。这些技巧能有效提升数据库性能,保障数据一致...

    web实习个人总结范文.docx

    1. **Web开发基础**:Web实习个人总结中提到了JSP、Servlet和JavaBean,这是Java Web开发中的核心技术。JSP(JavaServer Pages)是一种动态网页技术,用于创建交互式、动态生成的Web内容。Servlet是Java语言编写的...

    web端播放h264解决方案

    总结,实现Web端播放H264视频流,关键在于结合WebSocket服务器与Web客户端,利用MSE处理H264码流。通过服务器端拉取RTSP流并转化为WebSocket传输,客户端接收数据并播放,可以实现在Web上的高效实时视频体验。

Global site tag (gtag.js) - Google Analytics