java - 网页保存后不显示新条目。刷新后才出现

标签 java google-app-engine jsp

我有一个 JSP 页面,显示系统上插入的新条目的列表。

我的 myApplication.jsp 的结构如下:

A list of entries in the system
A form with textboxes that submits new entries.

当我的 JSP 提交时,它会调用我的 servlet 类来执行以下操作:

public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    String author = checkNull(req.getParameter("author"));
    String service = checkNull(req.getParameter("service"));
    Dao.INSTANCE.add(author, service);
    resp.sendRedirect("/myApplication.jsp");
}

我的 Dao.Add 看起来像这样:

public void add(String author,String service) {
    synchronized (this) {
        EntityManager em = EMFService.get().createEntityManager();
        Shortly shortly = new Shortly(author, service);
        em.persist(shortly);
        em.close();
    }
}

我遇到的问题是,当我重定向回 myApplication.jsp 时,列表不会显示我添加的新条目。 当我刷新页面时,它就会显示。

最佳答案

如果您使用 IE(甚至其他一些浏览器),请尝试在重定向代码段中放置一个随机数(例如时间戳)作为参数:

 resp.sendRedirect("/myApplication.jsp?t="+timestamp);

IE 在这种情况下是臭名昭著的,并且由于大量缓存,事情并不总是按预期方式工作。此时间戳将指示浏览器不显示缓存页面,并且始终(希望)从服务器重新获取页面。

关于java - 网页保存后不显示新条目。刷新后才出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392684/

相关文章:

java - 使用 AuthenticatingSMTPClient 和 SSL?

facebook - 如何在 Google App Engine 上创建 Facebook 应用程序?

mysql - 无法在 Google App Engine 中使用 MySQL Go Driver

java - 不能从具有方法和变量的静态上下文中引用非静态方法

JAVA hibernate/webservice - 时间戳问题

java - 当JSP中属性名称本身是变量时,如何获取对象属性的值?

java - 如何访问 javascript 中的 servlet 变量

java - 在所有jsp中添加一个jsp作为header

java - 无法赋值时,变量可能已经赋值

java - Google App Engine (Java) : servlets, 数据存储和多线程