关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
来源:互联网 发布:matlab智能算法目录 编辑:程序博客网 时间:2024/05/23 14:09
1.服务器(Server)响应,浏览器(Brower)请求:
对于B/S的软件,数据的传递体现在,用户利用浏览器请求,以获得服务器响应。在JavaWeb项目中,大致包含.java文件的数据处理模块,和在浏览器展示的.jsp,.html信息展示模块。这里还要区分前台和后台两个概念,前台并不代表浏览器端,后台并不代表服务器端。
按上图的流程中,我们可以看到我们完成编码工作后,tomcat将会把我们工程中的WebRoot加载到tomcat的webapps下。浏览器请求后,服务器根据.java编码的数据处理方式进行数据处理,通过jsp将信息展示到浏览器。这里我们要注意,jsp是从服务器被传到浏览器的,那么在这个过程中,就涉及到jsp文件的服务器编码、传递、浏览器解码。同理,浏览器的请求也会包含,数据发送的浏览器编码、传递、服务器解码的过程。
浏览器请求和服务器响应过程,都会涉及编码与解码的过程,这也是JavaWeb项目开发中,出现大量乱码的问题所在。只要出现一个流程的编码、解码错误,都可能出现乱码。
这里引申另外一个问题:当我们在action中,通过request.setAttribute("name",name)时,按道理映射之后的jsp应该是不能通过request.getAttribute("name")访问到name的,因为action中,request请求结束后,应该要被销毁的,不应该被传到jsp页面中的。这是为什么呢?
经试验表明,该过程是透过请求转发(forward)实现的, 而不是重定向(redirect)实现的,因为请求转发会把(request,response)都转发到jsp,所以在jsp中能访问到,在action中通过request.setAttribute("name",name)设的值!
2.如何避免出现乱码?(参照上图)
(1)对于同一个应用,最好统一编码,推荐为 UTF-8 ,当然 GBK 也可以。
(2)正确设置 JSP 的三个重要编码:
response.setCharacterEncoding("UTF-8")
contentType="text/html;charset=UTF-8"
pageEncoding=“UTF-8”
(3)对于请求,可以使用过滤器或者在每个 JSP/Servlet 中设置request.setCharacterEncoding ("UTF-8") 。同时,要修改 Tomcat 的默认配置,推荐将 useBodyEncodingForURI 参数设置为 true ,也可以将 URIEncoding 参数设置为 UTF-8 (有可能影响其他应用,所以不推荐.)
- 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
- javaweb(二):JSP响应数据和浏览器解析数据的编码问题
- Http响应和请求的编码问题
- 关于 服务器获取浏览器中文参数编码 问题的思考
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- J2EE-JavaWeb项目的编码乱码问题
- JavaWeb中请求与响应的乱码问题
- 《JavaWeb---Servlet的简单例子》---响应浏览器的请求,向浏览器输出数据
- 全站编码问题 请求和响应编码的处理
- 浏览器到服务器的请求响应过程时序图
- 关于服务器和浏览器的编码解码
- JavaWeb的编码问题
- 关于JavaWeb项目乱码的问题
- 关于Ajax响应服务器的问题!
- JavaWeb---Servlet的请求和响应
- JSF中请求响应的字符编码问题
- 深入体验JavaWeb开发内幕——关于JEE中的response、resquest应答、请求头的编码问题的解决
- 史上最全SSM框架整合(二)-----SSM框架实践搭建
- Mysql Innodb小结
- 论文图片模糊问题的解决
- PHP函数篇之掌握ord()与chr()函数应用,处理汉字
- 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
- 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题
- 神经网络入门之线性回归
- Java使用ClassLoader抛ClassNotFoundException
- MySql 创建只读账号
- linux实战~mysql的安装
- eclipse debug
- WebService之XFire和SOAP实例(基于JAVA)
- [FUNC]为字符串类添点料
- 表单自动填充样式修改