Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-1573

Handling of If-Modified-Since header for static content

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.1
    • 2.0.2
    • Dispatch Filter
    • None
    • Patch

    Description

      The issue described here was first described in WW-1536, but I think it is something more 'standalone' and not only 'tabbed panel' specific.

      The problem is that Struts2 currently does not behave correctly on requests of type 'If-Modified-Since' for static content.
      I am using firefox 1.5 and 2.0 and when reloading pages with ajax scripts, the browser usually asks for the content again, but it also uses 'If-Modified-Since' header.
      Struts dispatcher ignores this header and sends the full content again.
      But these are often static scripts/images of size 100kB-500kB in total.

      I am trying to 'split' the WW-1536 issue as I was the originator of the problem description on the mailing list.
      I am attaching a patch (a bit improved version from the one in WW-1536) which works for me for about 3 weeks perfectly - using trung from struts2.
      I have examined the headers/content exchanged between server and browser and it is really worth it.

      It only changes single method in the FilterDispatcher, enables If-Modified-Since and fixes 2 other issues:
      a) no more thread-unsafe formatter instances (class level formatter)
      b) no more playing with GMT and other timezones - there were issues with calculations seen during debug and interaction with the browser

      Attachments

        1. FilterDispatcher_patch.patch
          6 kB
          Dariusz Wojtas

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dwojtas@gmail.com Dariusz Wojtas
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: