response和request的区别以及常见问题解决

  request是请求,即客服端发来的请求

  response是响应,是服务器做出的响应

--------------------------------------------------------------

  request 是请求的载体,它附带着,请求的参数,ip,cookie,表单,字符编码,或者上传文件。你可以通过request去获得你所需要的信息。

  response是响应的载体,你可以设置,表头,报文,响应文件类型,字符编码,response,自带一个输出流,当你需要将一个页面或者一个文件传到客户端时,你可以通过这个流来进行操作。

--------------------------------------------------------------

  在servlet中,当服务器接收到客户端发来的请求(即url字符串,通常指在浏览器的地址栏中输入相应的地址),服务器就会对客户端所发出的请求做出相应的响应,也就是利用response的方式向客户端发出相应的内容和要求。例如:response.setContentType("text/html;charset=utf-8");的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,并且设置了内容的编码类型。

--------------------------------------------------------------

  //设置请求中的字符串的编码格式设置为UTF-8

  request.setCharacterEncoding("UTF-8");

  向服务器发送请求的编码方式是utf-8。在get发送方式下,设置此方式后依然有乱码情况出现。

  原因:request是对请求报文中的内容进行处理

  使用get发送方式提交参数时,使用的方式和post方式有一定的区别。在客户端和服务器之间传递参数时,相当于把一封信从客户端发向服务器,get方式提交是把要发送的内容(即报文)写在了信封上,而post方式提交相当于把要发送的内容写在了信的内容当中(塞在信封里面的),request.setCharacterEncoding("UTF-8");方式相当于把信的内容进行了编码,所以造成的结果就是get方式还是乱码,只对post放是发送的内容有效。

-------------------------------------------------------------

  解决方法:

  1、get方式不要传递中文;

  2、使用URLDecoder解决:String str = URLDecoder.decode(username,"utf-8");

  3、使用一种最原始的办法来解决:String str = new String(username.getBytes("iso8859-1"),"utf-8");

时间: 2024-10-12 11:31:12

response和request的区别以及常见问题解决的相关文章

request 和response 中的setCharacterEncoding区别

response和request的setCharacterEncoding 一.request.setCharacterEncoding():是设置从request中取得的值或从数据库中取出的值. 指定后可以通过getParameter()则直接获得正确的字符串,如果不指定,则默认使用iso8859-1编码.值得注意的是在执行setCharacterEncoding()之前,不能执行任何getParameter().而且,该指定只对POST方法有效,对GET方法无效.分析原因,应该是在执行第一个

springmvc环境搭建以及常见问题解决

1.新建maven工程 a)  打开eclipse,file->new->project->Maven->Maven Project b)  下一步 c)   选择创建的工程为webapp,下一步 d)   填写项目的group id和artifact id.一般情况下,group id写域名的倒序,artifact id写项目名称即可.最后点完成. e)   最初建好后,项目目录结构如下 f)   一般的项目目录中,还有src/main/java,src/main/test/ja

response和request详解

JavaEE:response响应和request请求 Web服务器接收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象既然代表请求和响应,那么我们要获取客户机提交过来的数据,只需要找request对象,就行了.要向客户机输出数据,只需要找response对象就行了. HttpServletRequest封装客户端相关信息,服务器Servlet程序可以通过request对象操作客户端信

网易视频云技术分析:IOS工程常见问题解决方法

网易视频云是网易推出的视频云服务,目前已经y广泛应用于在线教育.秀场直播.远程医疗.企业协作等领域.现在,网易视频云的技术专家们给大家分享一则移动APP测试技术文:IOS工程常见问题解决方法. 最近在做IOS测试时,碰到了几个环境引起的问题,主要是开发工具新版本及IOS系统新版本特性导致.现挑取两个比较典型的问题来分享给大家. 1. Xcode版本引出的问题 问题描述:开发提测时,创建的工程是在xcode6版本上创建的,而测试环境使用新的版本Xcode7,将开发提测工程导入后进行编译报如下错误:

HTTP和HTTPS的区别和常见的面试题

本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POST方法的区别,什么时候应该使用GET什么时候应该使用POST HTTP请求报文与响应报文格式 常见的HTTP的状态码 HTTP1.0,1.1,2.0之间的区别和特性 常见HTTP首部字段 HTTP的缺点与HTTPS有哪些改进 HTTP优化 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生

附:02 eclipse常见问题解决方法

一.出现"Location of the Android SDK has not been setup in the preferences" 当新建一个工作区间时,android项目时出现"Location of the Android SDK has not been setup in the preferences"时,是因为没有设置SDK的位置,window->preferences->android->SDK Location里面选择你的

[Gradle] Gradle 构建 android 应用常见问题解决指南

转载地址:http://www.cnblogs.com/youxilua/p/3348162.html 1: 使用最新的gradle android插件 以前我们写的时候会这么写 dependencies { classpath 'com.android.tools.build:gradle:0.5.0' } 不过,由于android gradle 插件的开发还是很活跃的,而且目前而言,可能还存在一些我们不知道的坑,但是,别人踩过,后边,官方修复,为了不踩坑,我建议android gradle

mysql 的常用命令及常见问题解决方法

运行sql C:\Users\Martin>mysql -uroot -pyang cdm_db <d:/cdm_db.sql 运行sql mysql>source /tmp/terminal.sql; mysql忘记密码: mysqladmin -uroot flush-privileges password "newpassword" mysql的select into file命令 SELECT a,b,a+b INTO OUTFILE '/tmp/result

android导入项目常见问题解决

android导入项目常见问题解决 标签: androideclipseapipropertiescompilertools 2011-12-25 21:52 11268人阅读 评论(7) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 初学android,最近在使用现成的代码的过程中发现直接导入的eclipse项目大都不能直接使用,总结下出现的问题和解决方案: 1.project.properties或default. Properties的问题 有的项目这两个问题不能在ec