%
Tracker tr = new Tracker(request, response);
String tracker = tr.getTracker(); // in verborgenem Formularfeld
String counter = tr.getCounter(); // in Cookie
String meldung;
//=======================================================================
meldung = "Cookie: "+ counter+ " / Formular: "+ tracker+ "
";
if (!counter.equals(tracker) && !"".equals(tracker))
meldung += "Back und Reload dürfen nicht " +
"verwendet werden!
";
//=======================================================================
tr.modTracker(0);
%>
<%!
class Tracker {
private String counter, tracker;
private HttpServletResponse rs;
public Tracker(HttpServletRequest request, HttpServletResponse response) {
rs = response;
counter = "0";
Cookie[] cs = request.getCookies();
for (int i = 0; cs !=null && i < cs.length; i++) {
if ("tracker".equals(cs[i].getName())) {
counter = cs[i].getValue(); break;
}
}
tracker = request.getParameter("tracker");
tracker = tracker == null ? "" : tracker;
}
String getCounter() { return counter; }
String getTracker() { return tracker; }
void modTracker(int sekunden) {
int t = Integer.parseInt(counter);
counter = "" + ++t;
tracker = counter;
Cookie cookie = new Cookie("tracker", counter);
if (sekunden > 1) cookie.setMaxAge(sekunden);
rs.addCookie(cookie);
}
}
%>