JAVA中servlet页面怎样刷新session,使JSP页面得到即使更新????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中servlet页面怎样刷新session,使JSP页面得到即使更新????相关的知识,希望对你有一定的参考价值。

参考技术A 为什么要把不固定的东西放到session?
要么就是所有涉及到session数据改变的操作都去将session时时更新。
要么就不要将数据存放到session中,每次都去数据库什么的地方获取最新数据。追问

不放在session里面JSP页面怎么显示啊

追答

首先,你session中的东西为什么会变?具体什么操作会涉及到他会变?
我说了两个解决办法,看你这么执意的要用session,那么就使用我说的第一个方法呗。

追问

但是还是不能更新session里面的值呀

参考技术B

实现服务器和客户端异步数据一致的方法有两种通信方式:

    客户端定时请求服务器端的服务,B/S框架下使用html页面用js定时轮询(ajax方式后台请求),请求某个URI,访问servlet实现查询所需要的信息。(刷新session是什么意思?)

    服务器端主动推送消息(Push技术,06年开始技术趋于成熟),客户端现请求服务器端建立一个连接,然后服务器端不回执通信结束符,使这个连接保持(comet长连接模型),用长连接的方式可以实现服务器对web客户端的消息推送,客户端的实现用js实现,服务器端有pushlet框架或最新的websocket框架。

追问

具体怎么晕啊

追答

具体实现不是一两句话能够说完的,你可以根据关键字百度一下。

参考技术C 只能通过后台定时任务或者前台js定时发送请求追问

具体怎么做呀

追答

比如前台js每5秒钟发送一次请求到后台,后台再发送数据回前台。不过这样缺点很大,会影响性能。一般web页面都不要求及时刷新,只要求用户点击后刷新信息

Servlet/JSP-07 Session应用:避免表单重复提交

Session应用:避免表单重复提交

一. 表单的重复提交

1. 重复提交的情况

  ①在表单提交到一个 Servlet,而 Servlet 又通过请求转发的方式响应了一个 JSP 或者 HTML 页面,此时浏览器地址栏还保留着 Servlet 路径,在此响应页面点击”刷新“按钮

  ② 在响应页面尚未到达时,重复点击表单的”提交“按钮

  ③ 点击”返回“按钮或者浏览器的回退按钮,再点击”提交“按钮

 

2.如何避免表单重复提交?

原理:在表单中做一个标记,当表单提交到Servlet时,检查标记是否存在且是否和预定义的一致,若一致则受理请求,若不一致或没有标记,则提示重复提交。

方法:

  ① 仅提供一个隐藏域,<input type="hidden" name="token" value="tomas" />    无法实现:没有办法清除请求参数

  ② 把标记放在 request 中。无法实现:因为当表单页面显示后(包括刷新),本次JSP页面对应request已被销毁,在提交的时候已经是一个新的request

  ③ 把标记放在 session 中。可以实现,步骤如下:

    1> 在原表单页面,生成一个随机值(时间戳)token

    2> 在原表单页面, 将 token 值放入 session 中

    3> 在原表单页面, 将 token 值放入隐藏域中

 

    1>> 在表单提交的目标 Servlet 中,获取 session 和隐藏域中的 token 值

    2>> 比较两个值是否一致:若一致则受理请求,且把session 中的 token 值清除

    3>> 若不一致,则直接响应提示:重复提交。

    

以上是关于JAVA中servlet页面怎样刷新session,使JSP页面得到即使更新????的主要内容,如果未能解决你的问题,请参考以下文章

asp中session超时怎样写,超时后怎样跳转到指定页面?

ajax怎样从后台获取数据进行局部刷新

在jsp中使用js怎样才能获取session的值

怎样在html页面中取得session中的值

Servlet/JSP-07 Session应用:避免表单重复提交

Java实现登录验证码