【请求对象-request对象】
获得客户机信息:
- getMethod(); —获得请求方式.
- getQueryString(); —获得请求路径后的参数.
- getRemoteAddr(); —获得客户机的IP地址.
- getRequestURI(); —获得请求的路径
- getRequestURL(); —获得请求的路径 getRequestURI 和getRequestURL区别
- getContextPath(); —获得工程名
获得请求头
- 请求头通常都是key:value的键值对的形式.一般情况下一个key对应一个value但也有一个key对应多个value的情况.
- Referer :网站的来源.防盗链.
- User-Agent :获得客户端浏览器的信息.(文件下载:IE:URL编码 火狐Base64)
- If-Modified-Since :和响应中一个头一起使用 完成本地缓存的查找.
请求参数:获得post和get请求参数方法总结
用来作为域对象存取值:Request域对象详解
参数接收中的乱码处理.
POST乱码处理: <form method=”post”>
的时候,这种提交才是POST提交.其他的都是get.- POST方式提交的参数在请求体中.request对象在后台接收参数.request对象有缓存区.默认缓冲区的编码ISO-8859-1.
- 处理方式:设置request的缓冲区的编码.
- request.setCharacterEncoding(“UTF-8”);
GET方式乱码处理:
- GET方式提交的参数会在地址栏上显示 在请求行的路径后面.浏览器就会对路径进行一次编码.将编码后内容取出来.再进行一次编码.
- 处理方式:
- 修改服务器提交的编码.
- 采用URLEncoder 和 URLDecoder类对中文进行编码和解码.
- 使用String类的构造方法:
username = new String(username.getBytes(“ISO-8859-1”),“UTF-8”);
System.out.println(username);
转发和重定向的区别:
【重定向】
response.sendRedirect(String path); – 完成重定向
【转发】
request.getRequestDispatcher(String path).forward(request,response);
【区别】
1.转发的地址栏不变的.重定向的地址栏发生变化的.
2.转发是一次请求一次响应,重定向是两次请求两次响应.
3.request域对象存取的值在转发中是有效的,在重定向无效的.
4.转发的路径不需要加工程名.重定向的路径需要加工程名.