request和session以及application辨析
2785 点击·0 回帖
![]() | ![]() | |
![]() | 1.request的setAttribute()与getAttribute()方法在服务器端调用,客户端不知道是否调用了这两个方法。 request的getParameter()方法获取到客户端通过表单或者url请求发过来的参数值,服务器端通过该方法得到客户端的这些值。 注意没有与getParameter()方法对应的setParameter()方法。request对象内数据的存活范围就是在request对象的存活范围内,客户端向服务器端发送一次请求之后 该对象就销毁了。当客户端再次向服务器端发送请求时就会创建新的request对象。以前的request对象的数据就无法得到。 2.同理session对象内数据的存活范围也就是session对象的存活范围。直观的感觉是浏览器不关闭,session对象就会一直存在(当然这样将是不合理的)。无论发送多少的session请求其对象只有一个。 3.application(应用对象):存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会一直存在。当然从这一方面来讲application对象所消耗服务器的资源也比较多,所以基本上在实际中很少用到application对象。 综上所述可见: request、session以及application这3个对象的范围是逐个增加的。 下面是一个用application对象在jsp中实现的一个简单的网页计数器: [java] <body> <!--网页计数器 --> <% if(application.getAttribute("counter") == null){ String counter = "1"; application.setAttribute("counter",counter); } else{ String counterNum = (String)application.getAttribute("counter"); int count = 0; count = Integer.valueOf(counterNum).intValue(); count++; application.setAttribute("counter",Integer.toString(count)); } %> 你是第<%=application.getAttribute("counter") %>位访者! </body> | |
![]() | ![]() |