00001
00002
00003 #ifndef QHTTPSERVLETRESPONSE_H
00004 #define QHTTPSERVLETRESPONSE_H
00005
00006 #include <qmap.h>
00007 #include <qstring.h>
00008
00009 #include <qhttpservletrequest.h>
00010 #include <qservletresponse.h>
00011
00012 class QDateTime;
00013 class QHttpServletRequest;
00014
00018 class QHttpServletResponse : public QServletResponse
00019 {
00020 public:
00022 enum ResponseStatus {
00023 StatusNull = 0,
00024
00025 StatusContinue = 100,
00026 StatusSwitchingProtocols = 101,
00027
00028 StatusOk = 200,
00029 StatusCreated = 201,
00030 StatusAccepted = 202,
00031 StatusNonAuthoritativeInformation = 203,
00032 StatusNoContent = 204,
00033 StatusResetContent = 205,
00034 StatusPartialContent = 206,
00035
00036 StatusMultipleChoices = 300,
00037 StatusMovedPermanently = 301,
00038 StatusMovedTemporarily = 302,
00039 StatusSeeOther = 303,
00040 StatusNotModified = 304,
00041 StatusUseProxy = 305,
00042
00043 StatusBadRequest = 400,
00044 StatusUnauthorised = 401,
00045 StatusPaymentRequired = 402,
00046 StatusForbidden = 403,
00047 StatusNotFound = 404,
00048 StatusMethodNotAllowed = 405,
00049
00050
00051 StatusInternalServerError = 500,
00052 StatusNotImplemented = 501
00053
00054 };
00055
00056 QHttpServletResponse( QIODevice *out, QHttpServletRequest *req );
00057 virtual ~QHttpServletResponse();
00058
00063 virtual QTextStream *outputStream();
00064
00066 void setStatus( int status ) { stat = status; }
00067
00069 int status() const { return stat; }
00070
00071 virtual QHttpServletRequest *request() const {
00072 return (QHttpServletRequest *) QServletResponse::request();
00073 }
00074
00075
00076
00077
00078
00080 virtual bool sendMessage( const QString &msg=QString::null );
00081
00083 virtual bool sendError( int status, const QString &msg=QString::null );
00084
00086 virtual bool sendRedirect( const QString &location );
00087
00088
00089
00090
00091
00093
00094 void setHeader( const QString &name, const QString &value );
00095 void setHeader( const QString &name, int value );
00096 void setHeader( const QString &name, const QDateTime &value );
00098
00100 void sendHeaders( QTextStream *out );
00101
00102 static QString statusString( int status );
00103 private:
00104 int stat;
00105 QMap<QString,QString> headers;
00106 };
00107
00108 #endif // QHTTPSERVLETRESPONSE_H
00109
00110
00111
00112
00113