3-2 JSP中的请求、响应、Cookie、会话HttpSession
1 JSP中的请求与响应
1.1 请求与响应的基本概念
请求:当用户在浏览器中输入 URL并提交或提交表单时,一个请求即被创建并送到服务器上。
响应:当服务器接收到用户的请求时,会根据用户的具体请求做相应的处理操作,并将操作结果返回给用户。
1.2 request对象的常用方法
- object getAttribute(String name) 返回指定属性的属性值
- Enumeration getAttributeNames() 返回所有可用属性名的枚举
- String getCharacterEncoding() 返回字符编码方式
- int getContentLength() 返回请求体的长度(以字节数)
- String getContentType() 得到请求体的MIME类型
- ServletInputStream getInputStream() 得到请求体中一行的二进制流
- String getParameter(String name) 返回name指定参数的参数值
- Enumeration getParameterNames() 返回可用参数名的枚举
- String[] getParameterValues(String name) 返回包含参数name的所有值的数组
- String getProtocol() 返回请求用的协议类型及版本号
- String getScheme() 返回请求用的计划名,如:http.https及ftp等
- String getServerName() 返回接受请求的服务器主机名
- int getServerPort() 返回服务器接受此请求所用的端口号
- BufferedReader getReader() 返回解码过了的请求体
- String getRemoteAddr() 返回发送此请求的客户端IP地址
- String getRemoteHost() 返回发送此请求的客户端主机名
- void setAttribute(String key,Object obj) 设置属性的属性值
- String getRealPath(String path) 返回一虚拟路径的真实路径
- void setCharacterEncoding(String charset) 指定请求的编码
1.3 response对象的常用方法
- String getCharacterEncoding() 返回响应用的是何种字符编码
- ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
- PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
- void setContentLength(int len) 设置响应头长度
- void setContentType(String type) 设置响应的MIME类型
- sendRedirect(java.lang.String location) 重新定向客户端的请求
2 Cookie
Cookie是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
2.1 Cookie的使用
Cookie c= new Cookie("name","value");
其中,name为创建的Cookie名称,将来读取这个Cookie时使用;value为Cookie对象的值。
Cookie cookies[] = request.getCookies();
得到的是一个Cookie数组,使用for循环遍历:
for(int i=0;i<cookies.length;i++)
System.out.println(cookies[i].getValue());
将cookie放入到HTTP响应报头,可以使用HttpServletResponse的addCookie方法
response.addCookie(c);
删除Cookie时,只需要将Cookie的最大时效设置为0
for(int i=0;i<cookies.length;i++){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i])}
3 会话HttpSession
3.1 会话的常用方法
- Object getAttribute(String name) 根据name获取设置的属性值。
- void setAttribute(String name,Object value) 设置session对象属性值
- void removeAttribute(String name) 删除session对象的name属性
- Enumeration getAttributeName() 返回捆绑到当前会话的所有属性名
- long getCreationTime() 返回表示会话创建的一个长整型值
- long getLastAccessedTime() 最后访问日期和时间的一个长整型值
- String getId() 返回会话ID
- int getMaxIn