import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import jdbm.htree.*; import jdbm.*; import jdbm.helper.*; public class dbm extends HttpServlet{ String DATABASE = "DBvisitors1"; String HTREE_NAME = "visitors1"; Properties props; RecordManager recman; HTree table; String strDate; /*Skapar databasen "DBvisitors1" om den inte redan finns * Skapar hashtrŠdet (tabellen) "visitors1" om den inte redan finns */ public void init() throws ServletException{ props = new Properties(); try{ recman = RecordManagerFactory.createRecordManager(DATABASE, props); long recid = recman.getNamedObject(HTREE_NAME); if (recid != 0) table = HTree.load(recman, recid); else{ table = HTree.createInstance(recman); recman.setNamedObject(HTREE_NAME, table.getRecid()); } }catch(IOException e){} } //stŠnger databasen "DBvisitors" public void destroy(){ try{ recman.close(); }catch(IOException e){} super.destroy(); } //Skriver ut tabellen i form av en strŠng public String visitorsToString() throws IOException{ FastIterator iter = table.keys(); String key = (String)iter.next(); String value = null; if (key != null) value = (String)table.get(key); String strOutput = ""; while (key != null) { value = (String)table.get(key); strOutput = strOutput + key + "\n" + value + "\n\n"; key = (String)iter.next(); } return strOutput; } //LŠgger till en ny visitor och skriver ut tabellen public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{ PrintWriter out = res.getWriter(); res.setContentType("text/plain"); Calendar cal = Calendar.getInstance(); strDate = String.format("Time: %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", cal); table.put(strDate, "Remote Address: " + req.getRemoteAddr() + "\nRemote user agent" + req.getHeader("user-agent")); recman.commit(); out.println(visitorsToString()); } }