001: /*
002: * This file is part of PFIXCORE.
003: *
004: * PFIXCORE is free software; you can redistribute it and/or modify
005: * it under the terms of the GNU Lesser General Public License as published by
006: * the Free Software Foundation; either version 2 of the License, or
007: * (at your option) any later version.
008: *
009: * PFIXCORE is distributed in the hope that it will be useful,
010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012: * GNU Lesser General Public License for more details.
013: *
014: * You should have received a copy of the GNU Lesser General Public License
015: * along with PFIXCORE; if not, write to the Free Software
016: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
017: *
018: */
019: package de.schlund.pfixxml;
020:
021: import java.util.List;
022:
023: import javax.servlet.http.Cookie;
024: import javax.servlet.http.HttpServletRequest;
025: import javax.servlet.http.HttpSession;
026:
027: public interface PfixServletRequest {
028:
029: public static final String PAGEPARAM = "__page";
030:
031: public long getCreationTimeStamp();
032:
033: /**
034: * Returns the value of the request-attribute that is stored under the key
035: * {@link #ATTR_LASTEXCEPTION ATTR_LASTEXCEPTION}
036: */
037: public Throwable getLastException();
038:
039: /**
040: * Stores the given <code>exception</code>-object as an attribute in the request,
041: * under the key of {@link #ATTR_LASTEXCEPTION ATTR_LASTEXCEPTION}.
042: * @param lastException The value to assign lastException.
043: */
044: public void setLastException(Throwable lastException);
045:
046: /**
047: * Retrieve the server name form the orginal request
048: * @return the name
049: */
050: public String getOriginalServerName();
051:
052: /**
053: * Retrieve the query string from the orginal request
054: * @return the query string
055: */
056: public String getOriginalQueryString();
057:
058: /**
059: * Retrieve the scheme from the orginal request
060: * @return the scheme
061: */
062: public String getOriginalScheme();
063:
064: /**
065: * Retrieve the request uri from the orginal request
066: * @return the uri
067: */
068: public String getOriginalRequestURI();
069:
070: /**
071: * Retrieve the port number from the orginal request
072: * @return the port
073: */
074: public int getOriginalServerPort();
075:
076: /**
077: * Update the servlet request. After calling this method
078: * the request data used by constructor are accesible
079: * only by the 'getOriginal' methods.
080: * @param req the new request
081: */
082: public void updateRequest(HttpServletRequest req);
083:
084: /**
085: * Retrieve the current request.
086: * @return the current request.
087: */
088: public HttpServletRequest getRequest();
089:
090: /**
091: * Determine if any error happened.
092: * @return true if error happened, else false
093: */
094: public boolean errorHappened();
095:
096: /**
097: * Retrieve all exceptions that happened during multipart-handling
098: * @return a list containing all exceptions
099: */
100: public List<Exception> getAllExceptions();
101:
102: /**
103: * Retrieve all cookies from the current request
104: * @return an array containing all cookies
105: */
106: public Cookie[] getCookies();
107:
108: /**
109: * Retrieve the path information from the current request
110: * @return the path info
111: */
112: public String getPathInfo();
113:
114: /**
115: * Retrieve the translated path from the current request
116: * @return the translated path
117: */
118: public String getPathTranslated();
119:
120: /**
121: * Retrieve the query string from the current request
122: * @return the query string
123: */
124: public String getQueryString();
125:
126: /**
127: * Retrieve the session id belonging to the current request
128: * @return the session id
129: */
130: public String getRequestedSessionId();
131:
132: /**
133: * Retrieve the request uri from the current request
134: * @return the request uri
135: */
136: public String getRequestURI();
137:
138: /**
139: * Retrieve the context path from the current request
140: * @return the context path
141: */
142: public String getContextPath();
143:
144: /**
145: * Retrieve the servlet path from the current request
146: * @return the servlet path
147: */
148: public String getServletPath();
149:
150: /**
151: * Retrieve the session belonging to the current request
152: * @param create if true a new session will be created if not exists
153: * in the current request, if false the orginal session will be returned
154: * @return the http session
155: */
156: public HttpSession getSession(boolean create);
157:
158: /**
159: * Retrieve whether the requested session id is valid
160: * @return true if valid, else false
161: */
162: public boolean isRequestedSessionIdValid();
163:
164: /**
165: * Retrieve the remote ip-address from the current request
166: * @return the remote address
167: */
168: public String getRemoteAddr();
169:
170: /**
171: * Retrieve the remote host from the current request
172: * @return the remote host
173: */
174: public String getRemoteHost();
175:
176: /**
177: * Retrieve the scheme from the current request
178: * @return the scheme
179: */
180: public String getScheme();
181:
182: /**
183: * Retrieve the port number from the current request
184: * @return the port number
185: */
186: public int getServerPort();
187:
188: /**
189: * Retrieve the server name from the current request
190: * @return the name
191: */
192: public String getServerName();
193:
194: /**
195: * Gets the part of this request's URI that refers to the servlet being invoked.
196: * @ the servlet being invoked, as contained in this request's URI
197: */
198: public String getServletName();
199:
200: /**
201: * Retrieve a {@link RequestParam} according to the name parameter
202: * @param the name used as a key
203: * @return the request param or null if not exists
204: */
205: public RequestParam getRequestParam(String name);
206:
207: /**
208: * Retrieve all request params according to the name parameter
209: * @param the name used as a key
210: * @return an array containing all request params or null if not exists
211: */
212: public RequestParam[] getAllRequestParams(String name);
213:
214: /**
215: * Retrieve all names of all request params
216: * @return an array containing all names for all request params.
217: */
218: public String[] getRequestParamNames();
219:
220: /**
221: * Extracts page name from pathinfo of this request.
222: *
223: * @return page name for the given request or <code>null</code>
224: * if no page name has been specified or specified page name
225: * has invalid scheme
226: */
227: public String getPageName();
228:
229: }
|