request和response操作响应行头体信息
2016-11-04 22:26
295 查看
请求:
请求行:
1.Get方式,请求参数放在请求行上,需要一个一个转。
new String(ss.getBytes(“iso8859-1”),”utf-8”);
因为行、头 字符集固定为iso8859-1
Post方式,请求参数放在请求体重,只需要修改请求体的字符集为UTF-8即可
Request.setCharacterEncoding(“utf-8”);
注意:请求体字符集设置,必须放在读取请求体内容之前。getParameter这类方法之前,否则无效
2.String getMethod() 该方法用于获取HTTP请求消息中的请求方式(如GET、POST等)
3.String getRequestURI() 该方法用于获取请求行中资源名称部分,即位于URL的主机和端口之后、参数部分之前的部分
4.String getContextPath() 该方法用于获取请求URL中属于WEB应用程序的路径,这个路径以“/”开头,表示相对于整个WEB站点的根目录,路径结尾不含“/”。如果请求URL属于WEB站点的根目录,那么返回结果为空字符串(””)
动态获取当前的项目名
例如:/web12_1
5.String getRemoteAddr() 该方法用于获取请求客户端的IP地址,其格式类似于“192.168.0.3”
Localhost
127.0.0.1
0:0:0:0:0:0:0:1
------------------
请求头:
Request操作请求头
方法声明 功能描述
String getHeader(String name) 该方法用于获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null;如果请求消息中包含有多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值
响应:
响应行: 响应状态码
response.setStatus(int status);
response.sendError(int status,String msg);//设置错误状态码4xx,5xx时,会将错误信息显示出来
响应头:
Response.setHeader(String name,String value);//设置响应头 如果name相同,新值覆盖旧值
响应头是可以自定义,但是没有意义
Name忽略大小写的
Response.addHeader(String name,String value);//追加响应头 如果name相同,值进行追加操作
重定向操作:【多练】
状态码:302
响应头:location【已经被response.sendRedirct(request.getContextPath()+"/register.htm"(路径名称)取代】
3、 响应体
字节流:getOutputStream();
字符流:getWriter();
String path = this.getServletContext().getRealPath("/")+"download/"+file_name;
FileInputStream fis = new FileInputStream(path);
ServletOutputStream out = response.getOutputStream();
注意:
①一山难容二虎(一个响应体中,不能同时用多个流操作)
②无论是response的字节流还是字符流不需要咱们手动关闭的,由服务器托管。
③刷新流,建议使用response.flushBuffer();
问题1:一个Servlet代码能否同时存在两种流的代码?没问题
If(xxx){
getOutputStream();
}else{
getWriter();
}
修改响应体字符集,同时修改前端解码字符集
response.setContentType("text/html;charset=utf-8");
请求行:
1.Get方式,请求参数放在请求行上,需要一个一个转。
new String(ss.getBytes(“iso8859-1”),”utf-8”);
因为行、头 字符集固定为iso8859-1
Post方式,请求参数放在请求体重,只需要修改请求体的字符集为UTF-8即可
Request.setCharacterEncoding(“utf-8”);
注意:请求体字符集设置,必须放在读取请求体内容之前。getParameter这类方法之前,否则无效
2.String getMethod() 该方法用于获取HTTP请求消息中的请求方式(如GET、POST等)
3.String getRequestURI() 该方法用于获取请求行中资源名称部分,即位于URL的主机和端口之后、参数部分之前的部分
4.String getContextPath() 该方法用于获取请求URL中属于WEB应用程序的路径,这个路径以“/”开头,表示相对于整个WEB站点的根目录,路径结尾不含“/”。如果请求URL属于WEB站点的根目录,那么返回结果为空字符串(””)
动态获取当前的项目名
例如:/web12_1
5.String getRemoteAddr() 该方法用于获取请求客户端的IP地址,其格式类似于“192.168.0.3”
Localhost
127.0.0.1
0:0:0:0:0:0:0:1
------------------
请求头:
Request操作请求头
方法声明 功能描述
String getHeader(String name) 该方法用于获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null;如果请求消息中包含有多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值
响应:
响应行: 响应状态码
response.setStatus(int status);
response.sendError(int status,String msg);//设置错误状态码4xx,5xx时,会将错误信息显示出来
响应头:
Response.setHeader(String name,String value);//设置响应头 如果name相同,新值覆盖旧值
响应头是可以自定义,但是没有意义
Name忽略大小写的
Response.addHeader(String name,String value);//追加响应头 如果name相同,值进行追加操作
重定向操作:【多练】
状态码:302
响应头:location【已经被response.sendRedirct(request.getContextPath()+"/register.htm"(路径名称)取代】
3、 响应体
字节流:getOutputStream();
字符流:getWriter();
String path = this.getServletContext().getRealPath("/")+"download/"+file_name;
FileInputStream fis = new FileInputStream(path);
ServletOutputStream out = response.getOutputStream();
注意:
①一山难容二虎(一个响应体中,不能同时用多个流操作)
②无论是response的字节流还是字符流不需要咱们手动关闭的,由服务器托管。
③刷新流,建议使用response.flushBuffer();
问题1:一个Servlet代码能否同时存在两种流的代码?没问题
If(xxx){
getOutputStream();
}else{
getWriter();
}
修改响应体字符集,同时修改前端解码字符集
response.setContentType("text/html;charset=utf-8");
相关文章推荐
- node.js http中请求request和响应response信息说明
- 使用JAVA发送HTTP请求(Http Request),返回HTTP响应(Http Response)内容,代码程序例子及原理说明
- 稳扎稳打Silverlight(21) - 2.0通信之WebRequest和WebResponse, 对指定的URI发出请求以及接收响应
- WebService 中操作 HttpRequest / HttpResponse (一)
- DWR中获取Session,Request,Response等信息
- JavaEE:response响应和request请求
- asp.net 中请求-响应(request-response)的几种方法
- php关于接收post过来的xml信息以及给出响应(response)
- JSP网络编程-请求和响应-HttpServletRequest-HttpServletResponse-学习笔记
- LoadRunner获取WEB请求头信息的方法:Request、Response
- request response session的常用操作
- 稳扎稳打Silverlight(21) - 2.0通信之WebRequest和WebResponse, 对指定的URI发出请求以及接收响应
- WebService 中操作 HttpRequest / HttpResponse (一)
- 理解HTTP协议的Request/Response(请求响应)模型
- IOS学习笔记26—HTTP操作之ASIHTTPRequest(二) 请求-响应
- 使用HttpWebRequest和HttpWebResponse在后台进行文件的请求和响应
- LoadRunner获取WEB请求头信息的方法:REQUEST、RESPONSE
- LoadRunner获取WEB请求头信息的方法:REQUEST、RESPONSE
- [转]asp.net Request、Response 响应在此上下文中不可用
- PHP利用fastcgi_finish_request()函数实现异步操作,提高响应速度