Grokbase Groups Struts dev May 2005
FAQ

[Struts-dev] Fwd: RequestProcessor, cache control, IE bug

Giovanni Santini
May 24, 2005 at 1:18 pm

---------- Forwarded message ----------
From: Giovanni Santini <giovanni.santini@gmail.com>
Date: May 24, 2005 3:16 PM
Subject: Fwd: RequestProcessor, cache control, IE bug
To: dev@struts.apache.org
Hi,
we have a problem with RequestProcessor when you set nocache set to true in
struts config file.
It sets in http header the Cache-control parameter, and when we try to
download a pdf it conflicts with a bug of explorer.
How we can have a fine grain in the decision of this parameter in our
action?
If I set again the cache-control parameter on the action, does it will
overwrite the value set in requestProcessor?
Do you know which is the best way to fix this problem?
In attachment you can find the IE bug!
Kind regards

"Internet Explorer Cannot Download" Error Message When You Use an HTTPS URL
to Open an Office Document or PDF File 05/20/2005 09:20 AM

http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 1 of 2

Article ID : 812935

Last Review : April 15, 2004

Revision : 2.0
*

"Internet Explorer Cannot Download" Error Message

When You Use an HTTPS URL to Open an Office

Document or PDF File

SYMPTOMS
*

When you try to open a Microsoft Office document or a PDF file by

typing an HTTPS Uniform Resource Locator (URL) for the document on

the Address bar in Internet Explorer 6 Service Pack 1 (SP1), the

document may not open, and you may receive the following error

message:

Internet Explorer cannot download
*document.pdf *from *server**

CAUSE
*

This issue may occur if any one or more of the following conditions are
true:


The *Do not save encrypted pages to disk *check box is selected in Internet
Explorer 6.0 SP1.


The server sends the "Cache-Control: No Store" header.


The server sends the "Cache-Control: No Cache" header.*

RESOLUTION
*

A supported fix is now available from Microsoft, but it is only intended to
correct the problem that is

described in this article. Apply it only to computers that are experiencing
this specific problem. This fix

may receive additional testing. Therefore, if you are not severely affected
by this problem, Microsoft

recommends that you wait for the next Internet Explorer 6 service pack that
contains this fix.

To resolve this problem immediately, contact Microsoft Product Support
Services to obtain the fix. For a

complete list of Microsoft Product Support Services phone numbers and
information about support

costs, visit the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
*

NOTE
*: In special cases, charges that are ordinarily incurred for support calls
may be canceled if a

Microsoft Support Professional determines that a specific update will
resolve your problem. The typical

support costs will apply to additional support questions and issues that do
not qualify for the specific

update in question.

The English version of this fix has the file attributes (or later) that are
listed in the following table. The

dates and times for these files are listed in coordinated universal time
(UTC). When you view the file

information, it is converted to local time. To find the difference between
UTC and local time, use the
*

Time Zone
*tab in the Date and Time tool in Control Panel.

Date Time Version Size File name
----------------------------------------------------------

11-Mar-2003 08:42 6.0.2800.1174 585,728 Wininet.dll
*

WORKAROUND
*

To work around this problem, make sure that
*Do Not Save Encrypted Files *check box is not checked

and that the server does not send the "Cache-Control: No Store" or the
"Cache-Control: No Cache"

header.

You may also be able to work around this problem by using an HREF to load
the document.
*

Note
*This method does not work if the server uses the "Cache-Control: No Cache"
header.*

STATUS
*

Microsoft has confirmed that this is a problem in the Microsoft products
that are listed at the beginning

of this article.
*

APPLIES TO
*


Microsoft Internet Explorer 6.0 Service Pack 1*

Keywords:
*kberrmsg kbfix kbhttp kbie600presp2fix kbinetdev kbqfe kbhtml kbbrowse
KB812935

"Internet Explorer Cannot Download" Error Message When You Use an HTTPS URL
to Open an Office Document or PDF File 05/20/2005 09:20 AM

http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 2 of 2

(c)2005 Microsoft Corporation. All rights reserved.
On 5/24/05, Joe Germuska wrote:
At 10:39 PM -0400 5/23/05, Frank W. Zammetti wrote:
Hey all... I was working with a user who is using AjaxTags, and he
raised something that I wanted to check with you guys on...

What is the difference between struts-html.tld and
struts-html-1.1.tld? The user indicated that the 1.1 version
provides servlet 2.4 compatibility. Is this accurate?
No. If you're talking about the files such as can be retrieved from
http://www.ibiblio.org/maven/struts/tlds/struts-html-1.1.tld , the
only reason those have version numbers is because they are part of a
maven repository. If you look inside the file, you'll see that it
has a DTD declaration that looks like this:

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
Library 1.1//EN"
" " rel="nofollow">http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"<http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd%22>
, while Servlet 2.4 (or rather JSP 2.0 ) TLD files use XML Schema and
have an opening element that looks like this:

<taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
"
version="2.0">

To be honest, I'm not sure what part of Maven retrieves TLD files
from the repository, but the surest way to know is to look inside the
file.

However, you can use JSP 2.0 with the non-EL tags with no problem.
(At least, I haven't had any yet.)

Joe

--
Joe Germuska
Joe@Germuska.com
http://blog.germuska.com
"Narrow minds are weapons made for mass destruction" -The Ex

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org

--
Graag gedaan
_____________________________
Giovanni Santini
EDS Italy
ABN-AMRO Working Capital OLS
Loc: Kostverlorenhof 2 AK8000
1183HE Amstelveen (Amsterdam)
The Netherlands
Mobile: +31 (0) 652245333
Tel: +31 (0) 203437771
Fax: +31 (0) 206299404


--
Graag gedaan
_____________________________
Giovanni Santini
EDS Italy
ABN-AMRO Working Capital OLS
Loc: Kostverlorenhof 2 AK8000
1183HE Amstelveen (Amsterdam)
The Netherlands
Mobile: +31 (0) 652245333
Tel: +31 (0) 203437771
Fax: +31 (0) 206299404



--
Graag gedaan
_____________________________
Giovanni Santini
EDS Italy
ABN-AMRO Working Capital OLS
Loc: Kostverlorenhof 2 AK8000
1183HE Amstelveen (Amsterdam)
The Netherlands
Mobile: +31 (0) 652245333
Tel: +31 (0) 203437771
Fax: +31 (0) 206299404
reply

Search Discussions

3 responses

  • Frank W. Zammetti at May 24, 2005 at 2:02 pm
    What a freaky coincidence... I just rolled my app into a new environment
    last night and was having this exact problem. I didn't even think of the
    nocache setting, but sure enough I removed it from my struts-config and
    now my PDFs are working again.

    I have the same question as you now though. I don't *believe* there is a
    way to do it per-path within Struts... My idea is to set the header myself
    in my base Action, or else create a filter to do it that knows which paths
    to NOT apply it to (since I only have 3-4 like that it's a reasonable
    solution).

    If you come up with something better, I would very much appreciate hearing
    about it though. :)

    --
    Frank W. Zammetti
    Founder and Chief Software Architect
    Omnytex Technologies
    http://www.omnytex.com

    On Tue, May 24, 2005 9:18 am, Giovanni Santini said:
    ---------- Forwarded message ----------
    From: Giovanni Santini <giovanni.santini@gmail.com>
    Date: May 24, 2005 3:16 PM
    Subject: Fwd: RequestProcessor, cache control, IE bug
    To: dev@struts.apache.org

    Hi,
    we have a problem with RequestProcessor when you set nocache set to true
    in
    struts config file.
    It sets in http header the Cache-control parameter, and when we try to
    download a pdf it conflicts with a bug of explorer.
    How we can have a fine grain in the decision of this parameter in our
    action?
    If I set again the cache-control parameter on the action, does it will
    overwrite the value set in requestProcessor?
    Do you know which is the best way to fix this problem?
    In attachment you can find the IE bug!
    Kind regards

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 1 of 2

    Article ID : 812935

    Last Review : April 15, 2004

    Revision : 2.0
    *

    "Internet Explorer Cannot Download" Error Message

    When You Use an HTTPS URL to Open an Office

    Document or PDF File

    SYMPTOMS
    *

    When you try to open a Microsoft Office document or a PDF file by

    typing an HTTPS Uniform Resource Locator (URL) for the document on

    the Address bar in Internet Explorer 6 Service Pack 1 (SP1), the

    document may not open, and you may receive the following error

    message:

    Internet Explorer cannot download
    *document.pdf *from *server**

    CAUSE
    *

    This issue may occur if any one or more of the following conditions are
    true:


    The *Do not save encrypted pages to disk *check box is selected in
    Internet
    Explorer 6.0 SP1.


    The server sends the "Cache-Control: No Store" header.


    The server sends the "Cache-Control: No Cache" header.*

    RESOLUTION
    *

    A supported fix is now available from Microsoft, but it is only intended
    to
    correct the problem that is

    described in this article. Apply it only to computers that are
    experiencing
    this specific problem. This fix

    may receive additional testing. Therefore, if you are not severely
    affected
    by this problem, Microsoft

    recommends that you wait for the next Internet Explorer 6 service pack
    that
    contains this fix.

    To resolve this problem immediately, contact Microsoft Product Support
    Services to obtain the fix. For a

    complete list of Microsoft Product Support Services phone numbers and
    information about support

    costs, visit the following Microsoft Web site:

    http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
    *

    NOTE
    *: In special cases, charges that are ordinarily incurred for support
    calls
    may be canceled if a

    Microsoft Support Professional determines that a specific update will
    resolve your problem. The typical

    support costs will apply to additional support questions and issues that
    do
    not qualify for the specific

    update in question.

    The English version of this fix has the file attributes (or later) that
    are
    listed in the following table. The

    dates and times for these files are listed in coordinated universal time
    (UTC). When you view the file

    information, it is converted to local time. To find the difference between
    UTC and local time, use the
    *

    Time Zone
    *tab in the Date and Time tool in Control Panel.

    Date Time Version Size File name
    ----------------------------------------------------------

    11-Mar-2003 08:42 6.0.2800.1174 585,728 Wininet.dll
    *

    WORKAROUND
    *

    To work around this problem, make sure that
    *Do Not Save Encrypted Files *check box is not checked

    and that the server does not send the "Cache-Control: No Store" or the
    "Cache-Control: No Cache"

    header.

    You may also be able to work around this problem by using an HREF to load
    the document.
    *

    Note
    *This method does not work if the server uses the "Cache-Control: No
    Cache"
    header.*

    STATUS
    *

    Microsoft has confirmed that this is a problem in the Microsoft products
    that are listed at the beginning

    of this article.
    *

    APPLIES TO
    *


    Microsoft Internet Explorer 6.0 Service Pack 1*

    Keywords:
    *kberrmsg kbfix kbhttp kbie600presp2fix kbinetdev kbqfe kbhtml kbbrowse
    KB812935

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 2 of 2

    (c)2005 Microsoft Corporation. All rights reserved.
    On 5/24/05, Joe Germuska wrote:
    At 10:39 PM -0400 5/23/05, Frank W. Zammetti wrote:
    Hey all... I was working with a user who is using AjaxTags, and he
    raised something that I wanted to check with you guys on...

    What is the difference between struts-html.tld and
    struts-html-1.1.tld? The user indicated that the 1.1 version
    provides servlet 2.4 compatibility. Is this accurate?
    No. If you're talking about the files such as can be retrieved from
    http://www.ibiblio.org/maven/struts/tlds/struts-html-1.1.tld , the
    only reason those have version numbers is because they are part of a
    maven repository. If you look inside the file, you'll see that it
    has a DTD declaration that looks like this:

    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
    Library 1.1//EN"
    "
    " rel="nofollow">http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"<http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd%22>
    , while Servlet 2.4 (or rather JSP 2.0 ) TLD files use XML Schema and
    have an opening element that looks like this:

    <taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
    "
    version="2.0">

    To be honest, I'm not sure what part of Maven retrieves TLD files
    from the repository, but the surest way to know is to look inside the
    file.

    However, you can use JSP 2.0 with the non-EL tags with no problem.
    (At least, I haven't had any yet.)

    Joe

    --
    Joe Germuska
    Joe@Germuska.com
    http://blog.germuska.com
    "Narrow minds are weapons made for mass destruction" -The Ex

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
    For additional commands, e-mail: dev-help@struts.apache.org

    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404


    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404



    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
    For additional commands, e-mail: dev-help@struts.apache.org
  • Giovanni Santini at May 24, 2005 at 3:27 pm
    I've to go through the class RequestProcessors
    And I'lll send other news
    I think this settings has to be possible overwrite in the action with some
    methods where it'll be possible
    make this settings
    Best regards
    On 5/24/05, Frank W. Zammetti wrote:

    What a freaky coincidence... I just rolled my app into a new environment
    last night and was having this exact problem. I didn't even think of the
    nocache setting, but sure enough I removed it from my struts-config and
    now my PDFs are working again.

    I have the same question as you now though. I don't *believe* there is a
    way to do it per-path within Struts... My idea is to set the header myself
    in my base Action, or else create a filter to do it that knows which paths
    to NOT apply it to (since I only have 3-4 like that it's a reasonable
    solution).

    If you come up with something better, I would very much appreciate hearing
    about it though. :)

    --
    Frank W. Zammetti
    Founder and Chief Software Architect
    Omnytex Technologies
    http://www.omnytex.com

    On Tue, May 24, 2005 9:18 am, Giovanni Santini said:
    ---------- Forwarded message ----------
    From: Giovanni Santini <giovanni.santini@gmail.com>
    Date: May 24, 2005 3:16 PM
    Subject: Fwd: RequestProcessor, cache control, IE bug
    To: dev@struts.apache.org

    Hi,
    we have a problem with RequestProcessor when you set nocache set to true
    in
    struts config file.
    It sets in http header the Cache-control parameter, and when we try to
    download a pdf it conflicts with a bug of explorer.
    How we can have a fine grain in the decision of this parameter in our
    action?
    If I set again the cache-control parameter on the action, does it will
    overwrite the value set in requestProcessor?
    Do you know which is the best way to fix this problem?
    In attachment you can find the IE bug!
    Kind regards

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 1 of 2
    Article ID : 812935

    Last Review : April 15, 2004

    Revision : 2.0
    *

    "Internet Explorer Cannot Download" Error Message

    When You Use an HTTPS URL to Open an Office

    Document or PDF File

    SYMPTOMS
    *

    When you try to open a Microsoft Office document or a PDF file by

    typing an HTTPS Uniform Resource Locator (URL) for the document on

    the Address bar in Internet Explorer 6 Service Pack 1 (SP1), the

    document may not open, and you may receive the following error

    message:

    Internet Explorer cannot download
    *document.pdf *from *server**

    CAUSE
    *

    This issue may occur if any one or more of the following conditions are
    true:


    The *Do not save encrypted pages to disk *check box is selected in
    Internet
    Explorer 6.0 SP1.


    The server sends the "Cache-Control: No Store" header.


    The server sends the "Cache-Control: No Cache" header.*

    RESOLUTION
    *

    A supported fix is now available from Microsoft, but it is only intended
    to
    correct the problem that is

    described in this article. Apply it only to computers that are
    experiencing
    this specific problem. This fix

    may receive additional testing. Therefore, if you are not severely
    affected
    by this problem, Microsoft

    recommends that you wait for the next Internet Explorer 6 service pack
    that
    contains this fix.

    To resolve this problem immediately, contact Microsoft Product Support
    Services to obtain the fix. For a

    complete list of Microsoft Product Support Services phone numbers and
    information about support

    costs, visit the following Microsoft Web site:

    http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
    *

    NOTE
    *: In special cases, charges that are ordinarily incurred for support
    calls
    may be canceled if a

    Microsoft Support Professional determines that a specific update will
    resolve your problem. The typical

    support costs will apply to additional support questions and issues that
    do
    not qualify for the specific

    update in question.

    The English version of this fix has the file attributes (or later) that
    are
    listed in the following table. The

    dates and times for these files are listed in coordinated universal time
    (UTC). When you view the file

    information, it is converted to local time. To find the difference between
    UTC and local time, use the
    *

    Time Zone
    *tab in the Date and Time tool in Control Panel.

    Date Time Version Size File name
    ----------------------------------------------------------

    11-Mar-2003 08:42 6.0.2800.1174 585,728 Wininet.dll
    *

    WORKAROUND
    *

    To work around this problem, make sure that
    *Do Not Save Encrypted Files *check box is not checked

    and that the server does not send the "Cache-Control: No Store" or the
    "Cache-Control: No Cache"

    header.

    You may also be able to work around this problem by using an HREF to load
    the document.
    *

    Note
    *This method does not work if the server uses the "Cache-Control: No
    Cache"
    header.*

    STATUS
    *

    Microsoft has confirmed that this is a problem in the Microsoft products
    that are listed at the beginning

    of this article.
    *

    APPLIES TO
    *


    Microsoft Internet Explorer 6.0 Service Pack 1*

    Keywords:
    *kberrmsg kbfix kbhttp kbie600presp2fix kbinetdev kbqfe kbhtml kbbrowse
    KB812935

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 2 of 2
    (c)2005 Microsoft Corporation. All rights reserved.
    On 5/24/05, Joe Germuska wrote:
    At 10:39 PM -0400 5/23/05, Frank W. Zammetti wrote:
    Hey all... I was working with a user who is using AjaxTags, and he
    raised something that I wanted to check with you guys on...

    What is the difference between struts-html.tld and
    struts-html-1.1.tld? The user indicated that the 1.1 version
    provides servlet 2.4 compatibility. Is this accurate?
    No. If you're talking about the files such as can be retrieved from
    http://www.ibiblio.org/maven/struts/tlds/struts-html-1.1.tld , the
    only reason those have version numbers is because they are part of a
    maven repository. If you look inside the file, you'll see that it
    has a DTD declaration that looks like this:

    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
    Library 1.1//EN"
    "
    http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"<
    http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd%22>
    , while Servlet 2.4 (or rather JSP 2.0 ) TLD files use XML Schema and
    have an opening element that looks like this:

    <taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="
    http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
    "
    version="2.0">

    To be honest, I'm not sure what part of Maven retrieves TLD files
    from the repository, but the surest way to know is to look inside the
    file.

    However, you can use JSP 2.0 with the non-EL tags with no problem.
    (At least, I haven't had any yet.)

    Joe

    --
    Joe Germuska
    Joe@Germuska.com
    http://blog.germuska.com
    "Narrow minds are weapons made for mass destruction" -The Ex

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
    For additional commands, e-mail: dev-help@struts.apache.org

    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404


    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404



    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404

    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404
  • Frank W. Zammetti at May 24, 2005 at 3:47 pm
    FYI, I solved this with a filter. Pretty simple... I intend to load the
    paths from a config file, but for now this is fine. If you want to use
    it, just remove the nocache setting from struts-config and configure this
    filter in web.xml:

    ----------------------------------------------------------------------

    package com.company.app.filters;

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;

    /**
    * This filter more or less mimics the cachecontrol Struts RP setting, but
    * allows you to set paths that cache headers will NOT be set for.
    *
    * @author <a href="mailto:fzammetti@omnytex.com">Frank W. Zammetti</a>
    */
    public class CacheControlFilter implements Filter {

    /**
    * List of paths to *NOT* set cache headers on.
    */
    private ArrayList noCachePaths = new ArrayList();

    /**
    * Destroy.
    */
    public void destroy() { } // End destroy.

    /**
    * Populate the list of paths that cache headers will NOT be set for.
    *
    * @param filterConfig The configuration information for this filter.
    * @throws ServletException ServletException.
    */
    public void init(FilterConfig filterConfig) throws ServletException {
    noCachePaths.add("/app/path1.do");
    noCachePaths.add("/app/path2.do");
    noCachePaths.add("/app/path3.do");
    } // End init().


    /**
    * Set the cache headers to response, where applicable.
    *
    * @param request The current request object.
    * @param response The current response object.
    * @param filterChain The current filter chain.
    * @throws ServletException ServletException.
    * @throws IOException IOException.
    */
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain filterChain)
    throws ServletException, IOException {
    String path = ((HttpServletRequest)request).getServletPath();
    for (Iterator it = noCachePaths.iterator(); it.hasNext();) {
    String noCachePath = (String)it.next();
    if (!path.equalsIgnoreCase(noCachePath)) {
    ((HttpServletResponse)response).setHeader("Pragma", "No-cache");
    ((HttpServletResponse)response).setHeader("Cache-Control",
    "no-cache,no-store,max-age=0");
    ((HttpServletResponse)response).setDateHeader("Expires", 1);
    }
    }
    filterChain.doFilter(request, response);
    } // End doFilter().

    } // End CacheControlFilter class.

    ----------------------------------------------------------------------

    --
    Frank W. Zammetti
    Founder and Chief Software Architect
    Omnytex Technologies
    http://www.omnytex.com

    On Tue, May 24, 2005 11:26 am, Giovanni Santini said:
    I've to go through the class RequestProcessors
    And I'lll send other news
    I think this settings has to be possible overwrite in the action with some
    methods where it'll be possible
    make this settings
    Best regards
    On 5/24/05, Frank W. Zammetti wrote:

    What a freaky coincidence... I just rolled my app into a new environment
    last night and was having this exact problem. I didn't even think of the
    nocache setting, but sure enough I removed it from my struts-config and
    now my PDFs are working again.

    I have the same question as you now though. I don't *believe* there is a
    way to do it per-path within Struts... My idea is to set the header
    myself
    in my base Action, or else create a filter to do it that knows which
    paths
    to NOT apply it to (since I only have 3-4 like that it's a reasonable
    solution).

    If you come up with something better, I would very much appreciate
    hearing
    about it though. :)

    --
    Frank W. Zammetti
    Founder and Chief Software Architect
    Omnytex Technologies
    http://www.omnytex.com

    On Tue, May 24, 2005 9:18 am, Giovanni Santini said:
    ---------- Forwarded message ----------
    From: Giovanni Santini <giovanni.santini@gmail.com>
    Date: May 24, 2005 3:16 PM
    Subject: Fwd: RequestProcessor, cache control, IE bug
    To: dev@struts.apache.org

    Hi,
    we have a problem with RequestProcessor when you set nocache set to true
    in
    struts config file.
    It sets in http header the Cache-control parameter, and when we try to
    download a pdf it conflicts with a bug of explorer.
    How we can have a fine grain in the decision of this parameter in our
    action?
    If I set again the cache-control parameter on the action, does it will
    overwrite the value set in requestProcessor?
    Do you know which is the best way to fix this problem?
    In attachment you can find the IE bug!
    Kind regards

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 1
    of
    2
    Article ID : 812935

    Last Review : April 15, 2004

    Revision : 2.0
    *

    "Internet Explorer Cannot Download" Error Message

    When You Use an HTTPS URL to Open an Office

    Document or PDF File

    SYMPTOMS
    *

    When you try to open a Microsoft Office document or a PDF file by

    typing an HTTPS Uniform Resource Locator (URL) for the document on

    the Address bar in Internet Explorer 6 Service Pack 1 (SP1), the

    document may not open, and you may receive the following error

    message:

    Internet Explorer cannot download
    *document.pdf *from *server**

    CAUSE
    *

    This issue may occur if any one or more of the following conditions are
    true:


    The *Do not save encrypted pages to disk *check box is selected in
    Internet
    Explorer 6.0 SP1.


    The server sends the "Cache-Control: No Store" header.


    The server sends the "Cache-Control: No Cache" header.*

    RESOLUTION
    *

    A supported fix is now available from Microsoft, but it is only intended
    to
    correct the problem that is

    described in this article. Apply it only to computers that are
    experiencing
    this specific problem. This fix

    may receive additional testing. Therefore, if you are not severely
    affected
    by this problem, Microsoft

    recommends that you wait for the next Internet Explorer 6 service pack
    that
    contains this fix.

    To resolve this problem immediately, contact Microsoft Product Support
    Services to obtain the fix. For a

    complete list of Microsoft Product Support Services phone numbers and
    information about support

    costs, visit the following Microsoft Web site:

    http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
    *

    NOTE
    *: In special cases, charges that are ordinarily incurred for support
    calls
    may be canceled if a

    Microsoft Support Professional determines that a specific update will
    resolve your problem. The typical

    support costs will apply to additional support questions and issues that
    do
    not qualify for the specific

    update in question.

    The English version of this fix has the file attributes (or later) that
    are
    listed in the following table. The

    dates and times for these files are listed in coordinated universal time
    (UTC). When you view the file

    information, it is converted to local time. To find the difference between
    UTC and local time, use the
    *

    Time Zone
    *tab in the Date and Time tool in Control Panel.

    Date Time Version Size File name
    ----------------------------------------------------------

    11-Mar-2003 08:42 6.0.2800.1174 585,728 Wininet.dll
    *

    WORKAROUND
    *

    To work around this problem, make sure that
    *Do Not Save Encrypted Files *check box is not checked

    and that the server does not send the "Cache-Control: No Store" or the
    "Cache-Control: No Cache"

    header.

    You may also be able to work around this problem by using an HREF to load
    the document.
    *

    Note
    *This method does not work if the server uses the "Cache-Control: No
    Cache"
    header.*

    STATUS
    *

    Microsoft has confirmed that this is a problem in the Microsoft products
    that are listed at the beginning

    of this article.
    *

    APPLIES TO
    *


    Microsoft Internet Explorer 6.0 Service Pack 1*

    Keywords:
    *kberrmsg kbfix kbhttp kbie600presp2fix kbinetdev kbqfe kbhtml kbbrowse
    KB812935

    "Internet Explorer Cannot Download" Error Message When You Use an HTTPS
    URL
    to Open an Office Document or PDF File 05/20/2005 09:20 AM

    http://support.microsoft.com/default.aspx?scid=kb;en-us;812935 Page 2
    of
    2
    (c)2005 Microsoft Corporation. All rights reserved.
    On 5/24/05, Joe Germuska wrote:
    At 10:39 PM -0400 5/23/05, Frank W. Zammetti wrote:
    Hey all... I was working with a user who is using AjaxTags, and he
    raised something that I wanted to check with you guys on...

    What is the difference between struts-html.tld and
    struts-html-1.1.tld? The user indicated that the 1.1 version
    provides servlet 2.4 compatibility. Is this accurate?
    No. If you're talking about the files such as can be retrieved from
    http://www.ibiblio.org/maven/struts/tlds/struts-html-1.1.tld , the
    only reason those have version numbers is because they are part of a
    maven repository. If you look inside the file, you'll see that it
    has a DTD declaration that looks like this:

    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
    Library 1.1//EN"
    "
    http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"<
    http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd%22>
    , while Servlet 2.4 (or rather JSP 2.0 ) TLD files use XML Schema and
    have an opening element that looks like this:

    <taglib xmlns=" http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="
    http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
    "
    version="2.0">

    To be honest, I'm not sure what part of Maven retrieves TLD files
    from the repository, but the surest way to know is to look inside the
    file.

    However, you can use JSP 2.0 with the non-EL tags with no problem.
    (At least, I haven't had any yet.)

    Joe

    --
    Joe Germuska
    Joe@Germuska.com
    http://blog.germuska.com
    "Narrow minds are weapons made for mass destruction" -The Ex

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
    For additional commands, e-mail: dev-help@struts.apache.org

    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404


    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404



    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404

    --
    Graag gedaan
    _____________________________
    Giovanni Santini
    EDS Italy
    ABN-AMRO Working Capital OLS
    Loc: Kostverlorenhof 2 AK8000
    1183HE Amstelveen (Amsterdam)
    The Netherlands
    Mobile: +31 (0) 652245333
    Tel: +31 (0) 203437771
    Fax: +31 (0) 206299404

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
    For additional commands, e-mail: dev-help@struts.apache.org

Related Discussions

Discussion Navigation
viewthread | post