request中的遍历,Cookie ,Session,Application--4.21号学习总结

1.request获得所有参数和值

  1)用Enumeration遍历,req.getParameeterNames()可以获得参数的集合,用Enumeration中的next什么的方法(具体忘了,可以查手册),调用req.getParameterValues(Parameter)方法,获得值的字符数组,for循环,遍历出来

  2)用Iterator接口遍历,req中有个返回map的方法,map中有个setmap方法,返回键值,set中有个iterator方法,返回iterator接口,通过Iterator it = s.set.iterator就一个获得一个键值的集合,调用req.getParameterValues(Parameter)方法,获得值的字符数组,for循环,遍历出来,思路就是这样。

2.Cookie  记录着客户端和服务器端的通信数据,因为http协议中,链接是不持续的,所有需要一个用来保存记录的数据包。保存在客户端中,一般是经过加密的文本文件,与特定的客户端有关,以名-值对形式保存。

两种形式,一种是临时的,它写在内存中,只跟打开它的窗口有关,窗口关闭就释放消亡。

另一种是写在本地硬盘的文本文件,可以设定存活时间。 

注意:一个servlet/jsp设置的cookie可以被同一个目录路径还要子路径下的servlet/jsp读取。

Cookie cookies = new Cookie(String name,String value);

resp.addCookie(cookie);添加cookie

req.getCookie();读取cookie  具体查手册

3.Session 同Cookie,记录着服务器与客户端的通信数据,不过它保存在服务器内存中,生成一个不会重复的SessionID验证,一个浏览器窗口对应一个(子窗口可以公用一个)。

有两种实现方式,第一种,如果浏览器支持cookie,创建session时,会把sessionID保存在cookie中,用cookie实现。

第二中,浏览器不支持cookie,需要重写URL,自己编写response.encodeURL(URL);将sessionID加入到URL后面。

创建方法:Httpsession session = req.getSession(true);也是获取方法

session没有路径访问问题,在同一个窗口及其子窗口中同一个webapplication的servlet/jsp都能够得到同一个sessionID,因此我们可以编写一个session通过setAttribute写入一个名-值对,另一个页面通过getAttribute读取名对应的值,比较是否跟写入的相等,判断有没有权限读取此页面。

4.Application 一个Application的上下文(运行状态),保存着整个WebApplication生命中可以访问的全局数据,表现为ServletContext,通过继承HttpServlet的get/setAttribute设置某个属性,比如一个页面在运行过程中,总共被访问了多少次。

//终于写完了,Application的小程序还没写完,继续奋斗去了!

猜你喜欢

转载自blog.csdn.net/x3499633/article/details/70339870