# JSP und File



## mathon (15. Nov 2005)

Hallo,


Ich habe eine JSP Seite wo ich in einem Formular ein paar Daten eingebe und dann wenn ich auf submit drücke wird eine neue Seite angezeigt wo die daten wieder angezeigt werden und eine entsprechende grafik dazu, die von den eingegebenen werten abhängt. Jedoch ist das problem, dass nach dem abschicken und anzeigen der werte und grafik immer noch die alte grafik von der vorigen aktion angezeigt wird und erst wenn ich auf refresh im browser klicke wird die neue grafik bzw. file angezeigt. Kann man das problem irgendwie beheben??

danke

mfg
mat


----------



## Bleiglanz (16. Nov 2005)

wenn die Graphik dynamisch erzeugt wird dann an der Stelle

```
res.setHeader("Expires","Mon, 1 Jan 1990 12:00:00 GMT");
res.setHeader("Cache-Control","no-store, no-cache, must-revalidate");
res.addHeader("Cache-Control","post-check=0, pre-check=0");
res.setHeader("Pragma","no-cache");
```
einbauen - oder woher kommt denn das Bild?


----------



## mathon (16. Nov 2005)

Das Bild kommt von einem jpeg File in meinem WebApplication Root directory.

Wo soll ich das Code-Fragement in meiner JSP-Seite einbauen?

lg


----------



## Bleiglanz (16. Nov 2005)

gar nicht

wie wird denn die "neue Graphik" bei dir eingebunden? musstu halt ein anderes src Attribut verwenden


----------



## mathon (16. Nov 2005)

Eingebunden wird das ganze folgendermaßen:


```
<% TestForm form = (TestForm)request.getAttribute("testForm");
  	
  	  LineChart demo = new LineChart("Your Chart");
  	  
  	  CategoryDataset dataset = demo.createDataset(form.getJahre(), form.getRates(), form.getDerivatesValues());
	  JFreeChart chart = demo.createChart(dataset);
	  
	  String path = "C:/Programme/jboss-4.0.3/server/default/deploy/TestWebApplication.war/lineSample.png";

	  File chartfile = new File(path);
		
	  	
		try
		{
			ChartUtilities.saveChartAsPNG(chartfile, chart, 700, 600); 
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
  	  %>

<html:img page="http://localhost:8080/AssetRatioCheck/lineSample.png"/>
```

Also in einem scriptlet erzeug ich das Chart speicher es in einem file (hab da den absoluten Pfad angeben, da mir nicht klar war, wie ich das definieren kann, damit automatisch ins root verzeichnis meiner WebApplication das png-file gespeichert wird)
Ja und dann binde ich es mit dem html:img tag ein.

Kann man da jetzt was machen, damit man nicht immer auf refresh vom browser klicken muss damit gleich das neue linechart diagram angezeigt wird?

lg


----------



## Bleiglanz (16. Nov 2005)

hmm, da gibts eigentlich nur eine Möglichkeit

du schreibst dir ein Servlet, das das Bild von der Platte liest und zurück zum Client stream und baust die obigen Header mit ein

ggf. könnte es auch funktionieren, wenn du nach dem saveChartAsPNG einen harten redirect zum Client schickst und auf einer weiteren Seite das HTML ablieferst


----------

