request和response对象常用方法

request:

request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)" 
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名" 
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST

request.getParameter(): 是常见的方法,用于获取单值的参数
request.getParameterValues(): 用于获取具有多值的参数,比如注册时候提交的 "hobits",可以是多选的。
request.getParameterMap(): 用于遍历所有的参数,并返回Map类型。

response:设置响应编码有两种方式

 
1. response.setContentType("text/html; charset=UTF-8");
2. response.setCharacterEncoding("UTF-8");
 这两种方式都需要在response.getWriter调用之前执行才能生效

他们的区别在于

1. response.setContentType("text/html; charset=UTF-8");

不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文

2. response.setCharacterEncoding("UTF-8");

仅仅是发送的浏览器的内容是UTF-8编码的,至于浏览器是用哪种编码方式显示不管。 所以当浏览器的显示编码方式不是UTF-8的时候,就会看到乱码,需要手动再进行一次设置。

设置响应格式,设置响应编码,设置响应内容

客户端有两种跳转
302 表示临时跳转
301 表示永久性跳转

302就是前面在客户端跳转章节用到过的

 
response.sendRedirect("fail.html");
 



301要使用另外的手段:

 
response.setStatus(301);
response.setHeader("Location", "fail.html");
 


用户感受不出这两种跳转的区别,但是可以借助火狐的调试工具看到响应的头信息是:
301 Moved Permanently。

原文地址:https://www.cnblogs.com/zrmj/p/11380809.html