001: /*
002: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/web/Attic/TKHttpSessionThread.java,v 1.8 2002/01/21 09:59:34 mischa Exp $
003: *
004: */
005: package com.teamkonzept.web;
006:
007: import com.teamkonzept.lib.*;
008:
009: /**
010: *
011: * Die abstrakte Klasse TKHttpSessionThread ist von der abstrakten Klasse
012: * TKHttpThread abgeleitet, welche das Interface Runnable und die run()-Methode
013: * fuer die erzeugung eines Threads implementiert.
014: * Da beide Klassen Abstrakt sind, kann keine Instanz von Ihnen erzeugt werden.
015: * In der Applikation muss daher eine nichtabstrakte Klasse implementiert werden,
016: * die von TKHttpSessionThread abgeleitet ist (falls eine SessionId in der
017: * Applikation erforderlich ist). TKHttpSessionThread erweitert die Klasse
018: * TKHttpThread um die SessionId.
019: * @author $Author: mischa $
020: * @version $Revision: 1.8 $
021: */
022: public abstract class TKHttpSessionThread extends TKHttpThread {
023:
024: // private Object newSession = new Object();
025: // private int sessionCount = 0;
026:
027: /**
028: * Konstruktor
029: *
030: * @param, ein TKHttpIntzerface-Objekt muss uebergeben werden
031: */
032: public TKHttpSessionThread(TKHttpInterface httpInterface) {
033: super (httpInterface);
034: }
035:
036: // /**
037: // * 1. Die aktuelle SessionId wird geholt, bzw. neu erzeugt
038: // * 2. Die SessionId ist ein globaler Parameter und wird in jeder
039: // * TKForm benoetigt
040: // * 3. Die start()-Methode der Superklasse (TKHttpThread) wird aufgerufen.
041: // */
042: // public void start()
043: // {
044: // String sessionId = getSessionId();
045: // if( checkSessionId( sessionId ) ) {
046: // if( sessionId == null ) {
047: // sessionId = newSessionId();
048: // }
049: // params.put( TKForm.PARAM, "SID", sessionId );
050: // super.start();
051: // }
052: // }
053:
054: // /**
055: // * Die SessionId wird aus TKForm gelesen
056: // *
057: // * @return die SessionId
058: // */
059: // public String getSessionId()
060: // {
061: // return params.get( TKForm.PARAM, "SID" );
062: // }
063:
064: // /**
065: // * Die SessionId wird ueberprueft
066: // *
067: // * @return boolean
068: // */
069: // public boolean checkSessionId( String sessionId )
070: // {
071: // return true;
072: // }
073:
074: // public String newSessionId()
075: // {
076: // return TKLib.fillInt( Long.toHexString( System.currentTimeMillis() / 1000 ), 8 ).substring(0,8)
077: // + TKLib.fillInt( Integer.toHexString( newSession.hashCode() ), 8 ).substring(4,8)
078: // + TKLib.fillInt( Integer.toHexString( sessionCount++ ), 4 ).substring(0,4);
079: // }
080:
081: // /**
082: // * 1. In dem uebergebenen Template-Objekt wird zusaetzlich
083: // * die sessionId gesetzt.
084: // * 2. Die Methode prepTemplate() der Superklasse( TKHttpThread wird aufgerufen)
085: // *
086: // * @return ein vorpraeperiertes Template.
087: // */
088: // public TKHTMLTemplate prepTemplate( TKHTMLTemplate t )
089: // {
090: // //TKHttp.println( "prep session-id ="+params.get( TKForm.PARAM, "SID" ) );
091: // t.set( "SID", params.get( TKForm.PARAM, "SID" ) );
092: // return super.prepTemplate(t);
093: // }
094:
095: // /**
096: // * 1. Die Methode getParamsString der Superklasse (TKHttpThread)wird aufgerufen
097: // * 2. Der String der parameter aus der URL wird um die sessionId erweitert
098: // *
099: // * @return result, Parameter des URL's
100: // */
101: // public String getParamsString()
102: // {
103: // String result = super.getParamsString();
104: // // %%ANDI: Einfach nach SID zu suchen ist wohl etwas wenig !!!!!
105: // if( result.indexOf( "SID" ) < 0 && params.defined( TKForm.PARAM, "SID" ) ) {
106: // TKUrlConverter encoder = new TKUrlConverter();
107: // String sid = params.get( TKForm.PARAM, "SID" );
108: // byte[] encoded = new byte[ encoder.minByteSize( sid.length() ) ];
109: // result += "&TK_PAR[SID]=" + new String( encoded, 0, 0, encoder.charsToBytes( sid.toCharArray(), encoded, 0, sid.length(), 0 ) );
110: // }
111: // return result;
112: // }
113: }
|