Java 从后台返回给前台的数据都是用session的吗?

1.比如我在servlet里返回了一个List集合,我一般会存在session里,然后在jsp页面遍历输出,但是网上说要少用session,因为存的很多的话会影响速度。那么都是用什么方法替代session的?
2.处理的代码放到servlet里的话直接访问jsp页面会报500,一般怎么处理比较好?

阅读 6.3k
6 个回答

可以考虑放在request里,jsp四个作用域都可以用来向页面传递数据:

  • page

  • request

  • session

  • application

具体区别看这篇文章,在此不累述:http://www.tuicool.com/articl...

上面这是基于jsp的技术栈,通用的做法还可以使用json来进行前后端交互

1.一般需要保存状态的(比如用户登陆状态)才会需要使用session
2.servlet可以选择将数据转发到JSP中。

保存到request,和session一样的保存方式
session一般只用来保存用户的相关信息,

服务器端需要清楚知道是哪个用户请求并需要做一些相关动作的菜需要保存用户状态的session;servlet容器对于session的保存机制是一直存在内存中的,用户数量上去后会占用大量服务器内存,如果是分布式服务一般用集中式缓存设施来解决这个问题;
一般从数据库返回的一次性数据,给jsp用的,放在request域就可以了,这块不会持久的占用服务器内存,用过后就等GC回收,程序员无感知。

  1. session 相当于你在服务器内存存了一份数据,如果都用session 那服务器的内存会吃不消的

  2. 一般的数据最好用接口直接传json数据到前端

request.write(json),好像我们这儿的后端都是这么返回数据的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题