001: /**
002: * @author garethc
003: * 25/10/2002 12:21:23
004: */package vqwiki.servlets;
005:
006: import org.apache.log4j.Logger;
007:
008: import javax.servlet.RequestDispatcher;
009: import javax.servlet.http.HttpServlet;
010: import javax.servlet.http.HttpServletRequest;
011: import javax.servlet.http.HttpServletResponse;
012: import java.io.IOException;
013:
014: public class VQWikiServlet extends HttpServlet {
015:
016: private static final Logger logger = Logger
017: .getLogger(VQWikiServlet.class);
018:
019: /**
020: *
021: */
022: protected void error(HttpServletRequest request,
023: HttpServletResponse response, Exception err) {
024: request.setAttribute("exception", err);
025: request.setAttribute("title", "Error");
026: err.printStackTrace();
027: logger.error(err.getMessage(), err);
028: log("Error in " + this .getClass(), err);
029: if (err instanceof WikiServletException) {
030: request.setAttribute("javax.servlet.jsp.jspException", err);
031: }
032: dispatch("/jsp/servlet-error.jsp", request, response);
033: }
034:
035: /**
036: *
037: */
038: protected void dispatch(String destination,
039: HttpServletRequest request, HttpServletResponse response) {
040: logger.debug("getting dispatcher for " + destination
041: + ", current URL: " + request.getRequestURL());
042: RequestDispatcher dispatcher = request
043: .getRequestDispatcher(destination);
044: if (dispatcher == null) {
045: logger.error("No dispatcher available for " + destination
046: + " (request=" + request + ", response=" + response
047: + ")");
048: return;
049: }
050: try {
051: dispatcher.forward(request, response);
052: } catch (Exception e) {
053: log("Dispatch error: " + e.getMessage(), e);
054: e.printStackTrace();
055: logger.error("dispatch error", e);
056: try {
057: dispatcher = request
058: .getRequestDispatcher("/jsp/servlet-error.jsp");
059: dispatcher.forward(request, response);
060: } catch (Exception e1) {
061: log("Error within dispatch error" + e1);
062: }
063: }
064: }
065:
066: /**
067: *
068: */
069: protected void include(String destination,
070: HttpServletRequest request, HttpServletResponse response) {
071: RequestDispatcher dispatcher = request
072: .getRequestDispatcher(destination);
073: if (dispatcher == null) {
074: log("No dispatcher available for " + destination
075: + " (request=" + request + ", response=" + response
076: + ")");
077: return;
078: }
079: try {
080: dispatcher.include(request, response);
081: } catch (Exception e) {
082: log("Dispatch error: " + e.getMessage(), e);
083: e.printStackTrace();
084: logger.error(e);
085: try {
086: dispatcher = request
087: .getRequestDispatcher("/jsp/servlet-error.jsp");
088: dispatcher.forward(request, response);
089: } catch (Exception e1) {
090: log("Error within dispatch error" + e1);
091: }
092: }
093: }
094:
095: /**
096: *
097: */
098: protected void redirect(String destination,
099: HttpServletResponse response) {
100: String url = response.encodeRedirectURL(destination);
101: try {
102: response.sendRedirect(url);
103: } catch (IOException e) {
104: logger.error(e);
105: }
106: }
107: }
108:
109: // $Log$
110: // Revision 1.11 2006/04/23 06:36:56 wrh2
111: // Coding style updates (VQW-73).
112: //
113: // Revision 1.10 2006/03/26 23:07:06 studer
114: // Cleanup: Removing deprecated method access.
115: //
116: // Revision 1.9 2003/10/05 05:07:32 garethc
117: // fixes and admin file encoding option + merge with contributions
118: //
119: // Revision 1.8 2003/06/12 20:37:37 garethc
120: // merge
121: //
122: // Revision 1.7 2003/05/18 21:16:07 garethc
123: // lex fixes
124: //
125: // Revision 1.6 2003/04/15 23:11:04 garethc
126: // lucene fixes
127: //
128: // Revision 1.5 2003/04/15 08:33:11 mrgadget4711
129: // ADD: Search using Lucene
130: // ADD: RSS feed
131: //
132: // Revision 1.4 2003/04/09 20:44:29 garethc
133: // package org
134: //
135: // Revision 1.3 2003/03/11 20:21:16 garethc
136: // fixes and 2.5 enhancements
137: //
138: // Revision 1.2 2003/03/05 00:56:18 garethc
139: // lock list
140: //
141: // Revision 1.1 2003/02/02 19:41:25 garethc
142: // servlets
143: //
144: // Revision 1.5 2003/01/07 03:11:53 garethc
145: // beginning of big cleanup, taglibs etc
146: //
147: // Revision 1.4 2002/11/26 00:26:19 garethc
148: // fixes
149: //
150: // Revision 1.3 2002/11/15 03:31:44 garethc
151: // small fixes
152: //
153: // Revision 1.2 2002/11/10 23:53:02 garethc
154: // manual and plugins
155: //
156: // Revision 1.1 2002/11/01 03:12:43 garethc
157: // starting work on new two pass lexer
158: //
|