当前位置: 首页 > news >正文

电子商务网站建设的一般过程lamp网站开发项目文档

电子商务网站建设的一般过程,lamp网站开发项目文档,免费的舆情网站下载,网站建设市场趋势由来在写一个小小的表单提交功能的时候#xff0c;出现了乱码#xff0c;很奇怪request上来的参数全部是乱码#xff0c;而从数据库查询出来的中文显示到页面正常#xff0c;锁定肯定是request对象那里出了问题。后来经过排查#xff0c;发现是我封装的框架中出了问题出现了乱码很奇怪request上来的参数全部是乱码而从数据库查询出来的中文显示到页面正常锁定肯定是request对象那里出了问题。后来经过排查发现是我封装的框架中出了问题总结为在setCharacterEncoding方法之前调用了getParameter方法导致字符集改变失败。没看过Tomcat实现Servlet的源码貌似是一旦调用getParameter方法Request的参数就会全部被解析从而再调用setCharacterEncoding就无效了。原理解析其实编码问题本质还是两点:浏览器在封装Http请求的时候的编码和服务器在解析Http请求编码不一致服务器返回数据的时候编码和浏览器解析不同。那么我们就从这两点入手解析。浏览器请求在点击提交表单的那一刻浏览器把表单内容封装成一个Http请求数据通过a1b2这样的形式直接请求服务器表单值会被浏览器最一次urlencode对于不同的请求方式编码不同Get和Post请求浏览器会读取页面的编码(页面编码会在Content-type头中体现)用此编码对表单值做urlencode那么到服务器的编码方式就是你Content-Type里的编码。很多通过JS提交表单为了规避浏览器的urlencode带来的编码混淆会对数据首先做一次urlencode这样在服务器上做一次urldecode既可(因为js做完urlencode后内容为ASCII字符所以这样的字符无论浏览器用什么编码解码出来都是一样的)AJAX请求在Jquery中AJAX请求全部使用utf8编码封装请求如果你的页面和项目用的非utf8编码一定会出现乱码浏览器地址栏直接输入带参数的地址这种情况就比较复杂不同的浏览器编码也不相同。Chrome之类的浏览器默认使用utf8编码(urlencode)而IE则使用GBK(死变态IE)。服务器端解码对于服务器端我在此只讨论Servlet。Get请求对于Get请求有两种方式解码在Servlet容器中设置例如Tomcat设置URIEncodingUTF-8就会对Get请求用utf8解码(貌似Tomcat7会报无效具体解决请百度反正我不同这种方法)String name new String(request.getParameter(name).getBytes(iso-8859-1),GBK));第一个编码就是你Servlet容器(例如Tomcat)里设置的编码默认iso-8859-1第二个参数就是你浏览器使用的编码格式。如果你用表单提交那这个编码就是页面的编码(Content-Type里的charsetXXX)如果你直接用浏览器地址栏里敲恭喜你你得判断userAgent来使用不同编码了。这也是我为啥不提倡第一种方式因为它遇到浏览器直接敲出来的参数就非常不灵活。至于为什么要使用getBytes(iso-8859-1)是因为在你浏览器用某种编码后Servlet容器自作多情给你用iso-8859-1解码了一下如果你设置了URIEncodingUTF-8它就会用utf8给你解码运气好你浏览器用的也是这种编码那解出来就直接用了所以在ISO-8859-1的情况下你得再“原路返回”到二进制重新用正确的编码解码一下。Post请求和Ajax请求Post请求就比较简单一点了同样你可以使用Get请求中的方法2来解决不过比较麻烦这时候我们就可以使用Servlet里的方法request.setCharacterEncoding方法设置你的解码类型例如你的页面编码是utf8表单则urlencode成utf8了那么你在调用getParameter方法之前(记住一定要之前在第一次调用getParameter之前)使用setCharacterEncoding方法。 Ajax请求同理。响应请求响应也是相同道理这回轮到服务器做编码浏览器做解码。只需要设置response.setCharacterEncoding就会自动在响应头的Content-Type中加入charsetXXX返回的内容就可以被正常解析啦~我想我说的相对比较清楚了网上很多解决乱码的帖子都只是讲你加上某句代码就会解决这样是不科学的一定也要知道原理也要知道每句代码背后做了哪些工作。其实我们在操作HttpServlet对象的时候本质上是对Http头的一些信息做修改。如果有什么问题或者理解错误的地方欢迎指正讨论。
http://www.yutouwan.com/news/134718/

相关文章:

  • 汕头市作风建设的网站网站页面引导怎么做
  • 网站分销系统90后做网站月入万元
  • 企业官网建站系统图文广告设计制作软件
  • 5年网站seo优化公司wordpress rss已删除
  • html5网站链接标签上海做网站找哪个公司好
  • 资源网站建设活动感受个性化建网站定制
  • 邢台企业做网站价格有限公司和有限责任的区别在哪里
  • 深圳建网站一般多少钱石家庄网站制作软件
  • 配音网站赚钱做采集网站赚钱吗
  • 电子商务网站建设方案推荐菜谱网站开发系统
  • 公司网站建设的好处用dw做网站首页步骤
  • 北京电商网站开发价格wordpress中文视频插件下载
  • 易语言如何做验证系统官方网站网络整合营销的概念
  • 宁波网站排名方法广东省住房及建设厅官方网站
  • 什么是建设网站的主题wordpress gallery widget
  • 建设招标网是什么网站哪个网站可以做照片分享
  • 公司网站 百度延边住房和城乡建设局网站
  • 做网站的格言软装设计费收费标准
  • 做网站外国的服务器国外 家具 网站模板下载
  • 建设工程合同包括哪些关键词优化的策略
  • 中小企业网站制作是什么优化推广排名网站教程
  • 保健品网站怎么做的网站开发pc版与手机版
  • 商城网站建设哪个公司好学编程好找工作吗?
  • 网站开发 jsp自己怎么创建网站
  • 高校二级网站建设方案wordpress手机版安装
  • 做网站前端用什么技术好宝塔为wordpress安装redis
  • 美食网站开发目的与意义阜新网站设计
  • 网站建设 图片html网站结构解决方案
  • 做古代风格头像的网站cpa单页网站怎么做
  • 公司营销型网站公司wordpress取消邮件验证码