This stuff is getting *really* funny! I run it under Windows and it worked.
I compared HTTP headers, the problem is that:

 - Apache (under Windows or Linux) does not set "Expires" header for HTML
pages restituted by Tomcat
 - Apache _under Linux_ sets a wrong (i.e. old, not updated) "Last-Modified"
header, so that the browser loads a local cached copy of the page

The time set by Apache into the "Last-Modified" header is not the time of
creation/modification of any other file of my webapps/test directory, so I
really can't understand how Apache sets it.

Any hint?

Cheers,
Michele

> -----Original Message-----
> From: Michele Milani 
> Sent: luned́ 10 dicembre 2001 12:14
> To: '[EMAIL PROTECTED]'
> Subject: Apache + mod_jk (ajp13) + Tomcat: no "Expires" header in the
> response
> 
> 
> Dear guys,
> 
> I searched the archive and the Usenet without success.
> 
> I'm using a box with:
> 
>  - Linux Red Hat 7.2
>  - Apache 1.3.20
>  - mod_jk (ajp13)
>  - Tomcat 3.3
> 
> I developed a web application that let you browse through 
> some static HTML pages and let you update the content of 
> these HTML page, inserting some data in a form.
> 
> The update of the static pages is done by a servlet that 
> rewrite the HTML file. The problem is that I can't get the 
> last updated HTML page in my browser.
> 
> I thought it was a problem realted to caching, so I forced 
> Apache to set the "Expires" header writing in the httpd.conf:
> 
> #ExpiresActive On
> #ExpiresByType text/html "access"
> 
> but this solution didn't help.
> 
> I turned on a protocol analyzer (Etheral) to try and 
> understand what the problem was and I realized that Apache 
> does not set the "Expires" header when the HTML page comes 
> from Tomcat.
> 
> I think my application is not so strange: I want to save the 
> new data inserted by the user so that the next time she 
> requests the page she gets the last version of it.
> 
> I wrote another very simple application to explain my problem 
> better, simply copy the following files under 
> $TOMCAT_HOME/webapps/ and compile the servlet:
> 
> ===============
> test/index.html
> ===============
> <html>
> <head>
> </head>
> <body>
> <a href="servlet/DateServlet">Test</a><br>
> </body>
> </html>
> 
> =====================================
> test/WEB-INF/classes/DateServlet.java
> =====================================
> import java.io.*;
> import java.util.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> 
> public class DateServlet extends HttpServlet {
>       
>       public void doGet(HttpServletRequest request, 
> HttpServletResponse response) throws IOException, ServletException {
>               try {
>                       Date now = new Date();
>                       
>                       PrintWriter dateWriter = new 
> PrintWriter(new FileWriter("../webapps/test/date.html"), true);
>                       dateWriter.println(now);
>                       dateWriter.println("<br>");
>                       dateWriter.println("<a 
> href=\"servlet/DateServlet\">Update</a>");
>                       dateWriter.close();
>                       
>                       response.setContentType("text/html");
>                       PrintWriter out = response.getWriter();
>                       out.println(now);
>                       out.println("<meta http-equiv='refresh' 
> content='3; url=\"/test/date.html\"'></meta>");
>                       
>               } catch(Exception ex) {
>                       PrintWriter errorWriter = new 
> PrintWriter(new FileWriter("../webapps/bib/error.txt"), true);
>                       ex.printStackTrace(errorWriter);
>                       errorWriter.close();
>               }
>       }
>       
> }
> 
> Did anyone else experiment such problems?
> 
> Cheers,
> Michele
> 

--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to