import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import jdbm.RecordManager; import jdbm.RecordManagerFactory; import jdbm.helper.FastIterator; import jdbm.htree.HTree; /* * 7.1 * Karl-Adam Karlsson * 06-11-06 * DBM * * */ public class DbmServlet extends HttpServlet { RecordManager recmng; HTree hashtable; FastIterator itera; String time; String remAdr; String remUsAg; public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException { res.setContentType( "text/plain" ); PrintWriter targetClient = res.getWriter(); /////////////////////////////////////////// Properties properties = new Properties(); recmng = RecordManagerFactory.createRecordManager( "poster", properties ); //Ladda eller skapa ny. long recid = recmng.getNamedObject( "data" ); if ( recid != 0 ) { hashtable = HTree.load( recmng, recid ); //showBasket(); } else { hashtable = HTree.createInstance( recmng ); recmng.setNamedObject( "data", hashtable.getRecid() ); } /////////////////////////////////////////// time = Calendar.getInstance().getTime().toString(); remAdr = req.getRemoteAddr(); remUsAg = req.getHeader("User-Agent"); String allData = remAdr.concat("##").concat(remUsAg); // allData = adress##useragent hashtable.put( time, allData ); recmng.commit(); printAll(targetClient); }//end of doGet /* * Dopost för POST-funktionalitet */ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet( req, res ); } /////////////////////////////////////////// public void printAll(PrintWriter targetClient) throws IOException { String allDat; String usragent; String remAddress; itera = hashtable.keys(); time = (String) itera.next(); while ( time != null ) { allDat = (String) hashtable.get( time ); remAddress = allDat.split("##")[0]; usragent = allDat.split("##")[1]; targetClient.println(""); targetClient.print( "TID: "+ time +"\n" ); targetClient.print( "REMOTE_ADDR: "+ remAddress +"\n" ); targetClient.print( "REMOTE_USER_AGENT: "+ usragent +"\n" ); targetClient.println(""); time = (String) itera.next(); } }//end of printall }