KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snipsnap > net > Layouter


1 /*
2  * This file is part of "SnipSnap Wiki/Weblog".
3  *
4  * Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel
5  * All Rights Reserved.
6  *
7  * Please visit http://snipsnap.org/ for updates and contact.
8  *
9  * --LICENSE NOTICE--
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  * --LICENSE NOTICE--
24  */

25 package org.snipsnap.net;
26
27 import org.snipsnap.app.Application;
28 import org.snipsnap.config.Configuration;
29 import org.snipsnap.snip.SnipLink;
30
31 import javax.servlet.RequestDispatcher JavaDoc;
32 import javax.servlet.ServletConfig JavaDoc;
33 import javax.servlet.ServletException JavaDoc;
34 import javax.servlet.http.HttpServlet JavaDoc;
35 import javax.servlet.http.HttpServletRequest JavaDoc;
36 import javax.servlet.http.HttpServletResponse JavaDoc;
37 import java.io.IOException JavaDoc;
38
39 /**
40  * Layouter and main handler for web sites.
41  * @author Matthias L. Jugel
42  * @version $Id: Layouter.java 1606 2004-05-17 10:56:18Z leo $
43  */

44 public class Layouter extends HttpServlet JavaDoc {
45
46   public final static String JavaDoc ATT_PAGE = "page";
47
48   public void init(ServletConfig JavaDoc config) throws ServletException JavaDoc {
49     super.init(config);
50   }
51
52   public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
53     throws IOException JavaDoc, ServletException JavaDoc {
54
55     // page attribute overrides pathinfo
56
String JavaDoc layout = (String JavaDoc) request.getAttribute(ATT_PAGE);
57     if (null == layout) {
58       layout = SnipLink.decode(request.getPathInfo());
59     }
60     Configuration config = Application.get().getConfiguration();
61
62     if (null == layout || "/".equals(layout)) {
63       response.sendRedirect(config.getUrl("/space/" + config.getStartSnip()));
64       return;
65     }
66
67     if(layout.endsWith(".jsp")) {
68       request.setAttribute(ATT_PAGE, layout);
69     } else {
70       request.setAttribute(ATT_PAGE, "/plugin"+layout);
71     }
72
73     RequestDispatcher JavaDoc dispatcher = request.getRequestDispatcher("/main.jsp");
74
75     if (dispatcher != null) {
76       dispatcher.forward(request, response);
77     } else {
78       response.sendRedirect(config.getUrl());
79     }
80   }
81
82   protected void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
83     doGet(request, response);
84   }
85 }
86
Popular Tags