ToplevelURLHandler.java
上传用户:huihesys
上传日期:2007-01-04
资源大小:3877k
文件大小:3k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /* CVS ID: $Id: ToplevelURLHandler.java,v 1.3 2000/04/06 08:02:02 wastl Exp $ */
  2. package net.wastl.webmail.server;
  3. import java.util.*;
  4. import net.wastl.webmail.xml.*;
  5. import net.wastl.webmail.ui.*;
  6. import net.wastl.webmail.ui.html.*;
  7. import net.wastl.webmail.ui.xml.*;
  8. import net.wastl.webmail.server.http.*;
  9. /*
  10.  * ToplevelURLHandler.java
  11.  * 
  12.  * Created: Tue Aug 31 17:20:29 1999
  13.  *
  14.  * Copyright (C) 1999-2000 Sebastian Schaffert
  15.  * 
  16.  * This program is free software; you can redistribute it and/or
  17.  * modify it under the terms of the GNU General Public License
  18.  * as published by the Free Software Foundation; either version 2
  19.  * of the License, or (at your option) any later version.
  20.  * 
  21.  * This program is distributed in the hope that it will be useful,
  22.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  23.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  24.  * GNU General Public License for more details.
  25.  * 
  26.  * You should have received a copy of the GNU General Public License
  27.  * along with this program; if not, write to the Free Software
  28.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  29.  */
  30. /**
  31.  * Handle URLs. Give them to the appropriate Plugins/Program parts
  32.  *
  33.  * Created: Tue Aug 31 17:20:29 1999
  34.  *
  35.  * @author Sebastian Schaffert
  36.  * @version
  37.  */
  38. public class ToplevelURLHandler implements URLHandler {
  39.     WebMailServer parent;
  40.     //Hashtable urlhandlers;
  41.     URLHandlerTree urlhandlers;
  42.     public ToplevelURLHandler(WebMailServer parent) {
  43. System.err.println("- Initializing WebMail URL Handler ... done.");
  44. urlhandlers=new URLHandlerTree("/");
  45. urlhandlers.addHandler("/",this);
  46. this.parent=parent;
  47.     }
  48.     
  49.     public void registerHandler(String url, URLHandler handler) {
  50. //urlhandlers.put(url,handler);
  51. urlhandlers.addHandler(url,handler);
  52. //System.err.println("Tree changed: "+urlhandlers.toString());
  53.     }
  54.     public String getURL() {
  55. return "/";
  56.     }
  57.     public String getName() {
  58. return "TopLevelURLHandler";
  59.     }
  60.     public String getDescription() {
  61. return "";
  62.     }
  63.     public HTMLDocument handleURL(String url, HTTPSession session, HTTPRequestHeader header) throws WebMailException {
  64. HTMLDocument content;
  65. if(url.equals("/")) {
  66.     //content=new HTMLLoginScreen(parent,parent.getStorage(),false);
  67.     XMLGenericModel model=parent.getStorage().createXMLGenericModel();
  68.     if(header.isContentSet("login")) {
  69. model.setStateVar("invalid password","yes");
  70.     }
  71.     content=new XHTMLDocument(model.getRoot(),parent.getStorage().getStylesheet("loginscreen.xsl",Locale.getDefault(),"default"));
  72. } else if(url.equals("/login")) {
  73.     //content=new HTMLParsedDocument(parent.getStorage(),session,"FrameSet");
  74.     WebMailSession sess=(WebMailSession)session;
  75.     UserData user=sess.getUser();
  76.     content=new XHTMLDocument(session.getModel(),parent.getStorage().getStylesheet("login.xsl",user.getPreferredLocale(),user.getTheme()));
  77. } else {
  78.     /* Let the plugins handle it */
  79.     URLHandler uh=urlhandlers.getHandler(url);
  80.     if(uh != null && uh != this) {
  81. // System.err.println("Handler: "+uh.getName()+" ("+uh.getURL()+")");
  82. String suburl=url.substring(uh.getURL().length(),url.length());
  83. content=uh.handleURL(suburl,session,header);
  84.     } else {
  85. throw new DocumentNotFoundException(url + " was not found on this server");
  86.     }
  87. }
  88. return content;
  89.     }
  90. } // URLHandler