在jsp中处理浏览器的“后退”按钮

2024-04-02

我有一个jsp搜索页面(Search.jsp)和一个结果页面(Result.jsp),它们都可以选择搜索条件。然后将参数传递给java控制器文件(Controller.java)以构建查询字符串并执行查询搜索。查询字符串和搜索结果将传递到 Result.jsp 进行显示。

目前,我使用 servletContext 来记住处理后的查询字符串,如果用户使用 Result.jsp 选择搜索条件,Controller.java 会将此类条件附加到现有查询字符串中。如果我使用 Result.jsp 进行一些搜索。例如,查询字符串将显示((Query1) AND Query2) AND Query3在 Result.jsp 页面上。然后使用浏览器的后退按钮返回到上一个显示页面。对于同一示例,查询字符串显示(Query1) AND Query2。然后如果我再次搜索。查询字符串(((Query1) AND Query2) AND Query3) AND Query4会被使用。我知道这是我当前实现所期望的,因为 Result.jsp 不会对处理后的查询字符串进行任何修改。

但是,我希望当用户使用浏览器后退按钮时,例如,查询字符串在页面上显示为(Query1) AND Query2,并执行搜索,查询字符串应该是((Query1) AND Query2) AND Query4其中查询字符串是根据 Result.jsp 页面上当前显示的查询字符串加上当前选择构建的。我怎样才能做到这一点?听起来很简单,但我尝试了几种使用 Result.jsp 中的方法来更新查询字符串,但仍然无法正确完成。因此我想知道我的使用方法<c:set>是错的。我想听听你的建议。提前致谢。


目前我使用 servletContext 来记住处理后的查询字符串

你是否意识到ServletContext之间共享all正在访问您的网络应用程序的用户/会话?一旦访问者 X 对其进行修改,更改就会反映在所有其他访客。难道你不想把它存储在HttpSession保持数据访问者特定?

也可以看看:

  • Servlet 生命周期和多线程 https://stackoverflow.com/questions/3106452/java-servlet-instantiation-and-session-variables/3106909#3106909

我想使用后退按钮因为某些原因

我真的很难理解你的功能需求(一些原因部分)。但至少,由于您希望后退按钮能够正常工作,因此您希望在此处使用幂等请求。因此,如果适用,请将 POST 替换为 GET。

每当您想在服务器上重新触发真正的 HTTP 请求而不是从浏览器缓存加载页面时,您都需要通过向响应添加以下标头来指示浏览器不缓存页面:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.

您可以在控制器或其他控制器中执行此操作Filter覆盖url-pattern出于兴趣。

也可以看看:

  • 确保网页未在所有浏览器中缓存 https://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers
  • Web浏览器缓存教程 http://www.mnot.net/cache_docs/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在jsp中处理浏览器的“后退”按钮 的相关文章

  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 如何在Spring的applicationContext.xml中指定默认范围来请求范围?

    我想让所有 bean 请求默认作用域 但是 Spring 文档说默认作用域是 Singleton 第 3 4 1 和 3 4 2 节http static springsource org spring docs 2 5 x referen
  • 方法不必要地被调用?

    我有一个 BaseActivity 它可以通过其他所有活动进行扩展 问题是 每当用户离开 暂停 活动时 我都会将音乐静音 我也不再接听电话 问题是 onPause每当用户在活动之间切换时就会被调用 这意味着应用程序不必要地静音和停止tele
  • firestore快照监听器生命周期和定价之间有什么关系?

    在我的活动中 我有一个字符串列表 这些字符串表示我想要附加快照侦听器的 Firestore 文档 我使用 Acivity ModelView 存储库结构 在活动的 onCreate 中 我向 ViewModelProvider 询问适当的
  • Java:检查给定日期是否在当前月份内

    我需要检查给定的日期是否在当前月份 我编写了以下代码 但 IDE 提醒我getMonth https docs oracle com javase 7 docs api java util Date html getMonth and ge
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 我们可以在三元运算符(Java)中使用命令吗?

    这是一个工作代码 String a first String b second String object System out println object null a b 但它不是 String a first String b se
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • Java G1 GC 处理引用对象运行缓慢

    我已经在 J ava 上运行了计数器 它24小时工作 每秒点击通过100次左右 白天 GC 处理时间从 20 60 毫秒缓慢上升到 10000 60000 毫秒 然后下降到 20 60 毫秒 这种模式不时地重复 从 GC 日志中我发现 GC
  • 源服务器未找到目标资源的当前表示或不愿意透露该表示存在

    web xml
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • .class 与 .java

    class 文件和 java 文件有什么区别 我正在尝试让我的小程序工作 但目前我只能在 Eclipse 中运行它 还不能嵌入 HTML 谢谢 编辑 那么如何使用 JVM 进行编译呢 class 文件是编译后的 java 文件 java 都
  • Java中的DRY原则[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我一直在读关于DRY https en wikipedia org wiki Don 27t repeat yourself原则 虽然看起来
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 将字符串中的字符向左移动

    我是 Stack Overflow 的新手 有一道编程课的实验室问题一直困扰着我 该问题要求我们将字符串 s 的元素向左移动 k 次 例如 如果输入是 Hello World 和3 它将输出 lo WorldHel 对于非常大的 k 值 它
  • JDK 7 的快速调试/调试构建

    我正在寻找 JDK 的调试 或者我猜他们称之为快速调试构建 以启用在运行时生成的打印程序集以及查找性能问题时所需的其他诊断 就目前情况而言 我似乎找不到可以直接使用的 现成的 快速调试构建二进制包 有人可以帮我提供下载链接 或者至少提供有关
  • 为什么spring boot 1.5.3 jar无法识别src/main/resources/META-INF/resources/中的jsp文件

    我使用了spring boot jsp 我想构建一个可执行的jar 如下这个帖子 http www logicbig com tutorials spring framework spring boot boot serve dynamic
  • 会话过期后如何重定向到登录页面?

    我有三个 JSF 2 0 Web 模块 当会话过期时我需要重定向到登录页面 我已经尝试过使用HttpSessionListener 它正在调用sessionDestroyed 事件方法 但我无法在那里转发 重定向请求 我认为这是因为没有Ht

随机推荐