`
yunchow
  • 浏览: 319117 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

servlet中共享数据

阅读更多
   servlet的主要作用是在不同的页面之间进行跳转,因为这个地方用了MVC设计模式,关于MVC设计模式具体的内容,以后会再细说,对于Servlet来说,它主要是充当了一个控制器的作用.在跳转时用到了两个非常重要的对象request,response一个是用来传递参数的,而另外一个主要是向客户端返回数据的.各有不同的作用.
    我们可以通过request.setAttribute("name",name);来达到在不同页面传递参数的目的.
然后再用request.getAttribute("name");来接收传过来的数据.这就是request共享数据的用法.在用她进行共享数据时,只能是跳转,而不能是重定向,不然的话,接收到的数据将会是一个 null.
    另一个共享数据的方法就是Cookie技术了,她的原理是在客户端建立一个Cookie文件,然后再去读取这个文件,从而达到不同页面共享数据的目的.我们可以利用response对象来建立一个cookie,然后将其保存.
   还有一种办法是隐藏表单,它的思想是在页面上建立一个隐藏表单,然后把想要共享的数据写到这个表单里,再利用request.getAttribute()的方法即可得到你想要的数据.具体用法是html的内容,此处不再重复.
   最后一个办法就是利用session,那什么是session呢,其实她实质上就是一片内存空间,而这个空间不在你自已的电脑上,她在服务器上,所以你只要把你想要共享的数据放到这个空间里去就可以达到共享数据的目的.关于session一个最经典的应用就是购物车了.如果你感兴趣的话可以google一下.如果你是一个有心人,便可注意到session是非常浪费资源的,如果一个客户端建立一个session,即使这个session很小,但是对于一个大的应用来说也是一笔很宏大的开销,所以不到万不得已不要用session.还有一个问题就是,session的生命周期问题,默认的session的存活时间为发呆30分钟吧(也就是两次空操作时间),这个是可以根据自已的实际情况进行配置的.我们可以通过request.getSession()来获得一个session,然后你就可以往里放数据和取数据了.
3
2
分享到:
评论
5 楼 yihuafu 2009-10-30  
servlet 中可以自定义变量么?如果可以的话,是全局的还是局部的?
4 楼 yunchow 2009-04-01  
metadmin 写道

还有一个就是全局的Application。------------------权限管理圈子欢迎您:http://accessmanager.group.iteye.com/

确实如此,不过在servlet里不叫做Application叫ServletContext吧
3 楼 metadmin 2009-03-30  
还有一个就是全局的Application。

------------------
权限管理圈子欢迎您:
http://accessmanager.group.iteye.com/
2 楼 yunchow 2009-03-30  
liangwenzheng 写道


引用
我们可以通过request.setParameter("name",name);来达到在不同页面传递参数的目的. 然后再用request.getParameter("name");应该是setAttribute()和getAttribute()吧?

谢谢liangwenzheng的提醒!当时真没注意,马上改!
1 楼 liangwenzheng 2009-03-28  

引用
我们可以通过request.setParameter("name",name);来达到在不同页面传递参数的目的.
然后再用request.getParameter("name");


应该是setAttribute()和getAttribute()吧?

相关推荐

Global site tag (gtag.js) - Google Analytics