加载jsp页面前先调用servlet返回javabean,再在jsp中显示javabean的内容 10
jsp页面需要把数据库中的东西显示出来,那么就要在jsp开头调用servlet查询数据库,并返回javabean,最终在jsp中显示1.servlet查询完把数据存到se...
jsp页面需要把数据库中的东西显示出来,那么就要在jsp开头调用servlet查询数据库,并返回javabean,最终在jsp中显示
1.
servlet查询完把数据存到session中(假如a),再跳转回jsp,jsp前面只需要判断session前面存的属性a是否为null,如果为null,那么就直接跳转到相应servlet,不为空就是a存在数据,可以直接显示在当前jsp中,但是session范围是直到关闭浏览器才消失的,所以下次进入到这个jsp中,他不会再查询一遍,因为a有数据了,但是我在后台更新了数据库,当用户进入该jsp中不会显示最新数据
2.如果servlet查询完把数据存到request中(假如a),那么就要通过请求转发跳转回jsp,只要以非请求转发方式离开本jsp,那么a就会失效,基本上就可以达到每次进入jsp查询最新的数据,但是网址是servlet的地址,我想要的是原本的jsp地址
3.如果在servlet把a放进session中,而在jsp末尾清除a,但是如果存在多个属性
bcdefg,那么清除就很乱了,因为每个页面需要的javabean数量不同,那么很容易遗漏,也不可以直接把session弄成失效,因为session某些属性还需要一直用的(比如记录用户登录成功)
4.如果直接在jsp开头调用查询数据库代码,那么问题都解决了,而且最简单,但是不符合MVC分层要求。。。
问题:有没有更好的方法? 展开
1.
servlet查询完把数据存到session中(假如a),再跳转回jsp,jsp前面只需要判断session前面存的属性a是否为null,如果为null,那么就直接跳转到相应servlet,不为空就是a存在数据,可以直接显示在当前jsp中,但是session范围是直到关闭浏览器才消失的,所以下次进入到这个jsp中,他不会再查询一遍,因为a有数据了,但是我在后台更新了数据库,当用户进入该jsp中不会显示最新数据
2.如果servlet查询完把数据存到request中(假如a),那么就要通过请求转发跳转回jsp,只要以非请求转发方式离开本jsp,那么a就会失效,基本上就可以达到每次进入jsp查询最新的数据,但是网址是servlet的地址,我想要的是原本的jsp地址
3.如果在servlet把a放进session中,而在jsp末尾清除a,但是如果存在多个属性
bcdefg,那么清除就很乱了,因为每个页面需要的javabean数量不同,那么很容易遗漏,也不可以直接把session弄成失效,因为session某些属性还需要一直用的(比如记录用户登录成功)
4.如果直接在jsp开头调用查询数据库代码,那么问题都解决了,而且最简单,但是不符合MVC分层要求。。。
问题:有没有更好的方法? 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询