|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectwt.httpgw.HTTPRequest
This class is a carrier of HTTP request information to a Windchill method server. It uses customized serialization code to stream request bodies to the server. Instances contain information about the request (I.e. CGI environment values) and an input stream reference.
Client-side Serialization The client (HTTP gateway) constructs request objects to carry request information to a method server. The client stores the available HTTP request information in the object and sets the input stream reference to the actual HTTP request's input stream provided by the Web server.
Serialization of the object sends the request information followed by the content of the input stream. The content is forwarded by reading blocks of data from the input stream and writing them to the marshal stream until the entire body has been sent. The length of the body is determined from the content-length HTTP header. If no content-length is specified, it reads until EOF on the input stream.
Server-side Deserialization
The server (Windchill method server) receives the request object as
an argument to an RMI call. It is deserialized before the target
method is invoked. The deserialization code stores a reference to
the RMI marshal stream in the object and directly dispatches the target
method (HTTPServer.processRequest) prematurely. The body of the request
is then available as an input stream to the dispatched method. The
RMI marshal stream is simply being used as a pipe to connect the
input stream provided to the HTTP gateway by the Web server to an
input stream in the Windchill method server.
Supported API: true
Extendable: false
Field Summary | |
Object |
bizData
Public Object for general use by business classes to facilitate passing info across method calls, etc. |
InputStream |
inputStream
Public InputStream for general use. |
(package private) HTTPResponse |
response
Result object created during server-side unmarshalling |
(package private) static long |
serialVersionUID
|
Constructor Summary | |
HTTPRequest()
|
Method Summary | |
abstract String |
getBaseURL()
Determine the Base URL of this script. |
abstract String |
getEncoding()
Guess user agent's file encoding from request headers. |
abstract Properties |
getFormData()
Retrieves the FORM data from the incoming input stream as x-www-form-urlencoded data. |
abstract Properties |
getFormData(String encoding)
Retrieves the FORM data from the incoming input stream as x-www-form-urlencoded data. |
abstract Hashtable |
getFormDataMultivalue()
Retrieves the FORM data from the incoming input stream as x-www-form-urlencoded data. |
abstract Hashtable |
getFormDataMultivalue(String encoding)
Retrieves the FORM data from the incoming input stream as x-www-form-urlencoded data. |
abstract String |
getFullURL()
Determine the Full URL of this script. |
abstract String |
getMultiPartBoundary(String ContentType)
Utility routine to parse out the multipart object-body boundary Supported API: true |
abstract String |
getProperty(String key)
Public getter method for access to CGI data. |
abstract String |
getProperty(String key,
String default_value)
Public getter method for access to CGI data. |
abstract Enumeration |
getPropertyKeys()
Public getter method for access to CGI data keys. |
abstract String |
getQueryString()
Gets the URLs query string in decoded format. |
abstract String |
getQueryString(String encoding)
Gets the URLs query string in decoded format. |
abstract boolean |
isGetRequest()
Determine if the REQUEST_METHOD used to send the data from the browser was the GET method. |
abstract boolean |
isPostRequest()
Determine if the REQUEST_METHOD used to send the data from the browser was the POST method. |
abstract boolean |
isUrlencodedContent()
Determine if the CONTENT_TYPE used to send the data from the browser was urlencoded form data. |
abstract void |
listProperties(PrintWriter out)
Public lister method for debug access to CGI data. |
abstract PrintWriter |
newPrintWriter(OutputStream output_stream)
Utility routine to construct a buffered PrintWriter from an OutputStream. |
abstract void |
printFormDataHTML(PrintWriter out)
Print all of the form data using HTML. |
abstract void |
printHTMLBottom(PrintWriter out)
Generate some vanilla HTML that you usually want to include at the bottom of any HTML page you generate. |
abstract void |
printHTMLHeader(PrintWriter out)
Print a standard HTTP HTML header. |
abstract void |
printHTMLTop(PrintWriter out,
String title)
Generate some vanilla HTML that you usually want to include at the top of any HTML page you generate. |
abstract void |
printPropertiesHTML(PrintWriter out)
Print all of the CGI properties and the associated values using HTML. |
abstract void |
setFormData(Properties p)
Sets the FORM data from a saved session. |
abstract void |
setProperty(String key,
String value)
Public setter method for CGI data. |
abstract Properties |
splitQueryString()
Splits the URLs query string into name value pairs based on the ampersand and equal character tokens. |
private static void |
splitQueryString(Hashtable result,
String query_string,
String encoding)
|
static Properties |
splitQueryString(String query_string)
Splits the given query string into name value pairs based on the ampersand and equal character tokens. |
static Properties |
splitQueryString(String query_string,
String encoding)
Splits the URLs query string into name value pairs based on the ampersand and equal character tokens. |
abstract Hashtable |
splitQueryStringMultivalue()
Splits the URLs query string into name value pairs based on the ampersand and equal character tokens. |
static Hashtable |
splitQueryStringMultivalue(String query_string)
Splits the given query string into name value pairs based on the ampersand and equal character tokens. |
static Hashtable |
splitQueryStringMultivalue(String query_string,
String encoding)
Splits the URLs query string into name value pairs based on the ampersand and equal character tokens. |
static String |
urlDecode(String encoded)
Deprecated. Replaced by wt.httpgw.WTURLEncoder.decode method. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public transient InputStream inputStream
static final long serialVersionUID
transient HTTPResponse response
public transient Object bizData
A business class can set this Object to reference any object desired in one method. Then retrieve it with an appropriate type cast in another method.
This allows the method reading a posted request body to construct an arbitrary object and make it available later when the response is being written.
Constructor Detail |
public HTTPRequest()
Method Detail |
public abstract Properties getFormData()
getEncoding
.
public abstract void setFormData(Properties p)
public abstract Properties getFormData(String encoding)
public abstract Hashtable getFormDataMultivalue()
getEncoding
. Multivalue fields are stored in a Vector which can be
iterated for the individual values.
public abstract Hashtable getFormDataMultivalue(String encoding)
public abstract String getQueryString()
public abstract String getQueryString(String encoding)
public abstract Properties splitQueryString()
public abstract Hashtable splitQueryStringMultivalue()
public static Properties splitQueryString(String query_string)
query_string
- the query string.
public static Hashtable splitQueryStringMultivalue(String query_string)
query_string
- the query string.
public static Properties splitQueryString(String query_string, String encoding)
query_string
- the query string.encoding
- the character encoding name
public static Hashtable splitQueryStringMultivalue(String query_string, String encoding)
query_string
- the query string.encoding
- the character encoding name
private static void splitQueryString(Hashtable result, String query_string, String encoding)
public static String urlDecode(String encoded)
wt.httpgw.WTURLEncoder.decode
method.
Data passed through the CGI API is URL encoded by the browser.
All spaces are turned into plus characters (+) and all "special"
characters are hex escaped into a %dd format (where dd is the hex
ASCII value that represents the original character).
Supported API: false
public abstract boolean isGetRequest()
public abstract boolean isPostRequest()
public abstract boolean isUrlencodedContent()
public abstract String getBaseURL()
public abstract String getFullURL()
public abstract String getProperty(String key)
public abstract Enumeration getPropertyKeys()
public abstract void listProperties(PrintWriter out)
public abstract String getProperty(String key, String default_value)
public abstract void setProperty(String key, String value)
public abstract String getEncoding()
wt.httpgw.encoding.xxx=yyy
where xxx
is
the lower case IANA encoding name and yyy
is the
Java encoding name. If no Accept-Charset header is present,
use template encoding rules to guess.
public abstract void printHTMLHeader(PrintWriter out) throws IOException
out
- PrintWriter to receive output.
IOException
public abstract void printHTMLTop(PrintWriter out, String title) throws IOException
out
- PrintWriter to receive output.
IOException
public abstract void printHTMLBottom(PrintWriter out) throws IOException
out
- PrintWriter to receive output.
IOException
public abstract void printPropertiesHTML(PrintWriter out) throws IOException
out
- PrintWriter to receive output.
IOException
public abstract void printFormDataHTML(PrintWriter out) throws IOException
out
- PrintWriter to receive output.
IOException
public abstract PrintWriter newPrintWriter(OutputStream output_stream)
output_stream
- OutputStream to be wrapped
public abstract String getMultiPartBoundary(String ContentType)
ContentType
- String containing the content-type and boundary,
separated by a semi-colon
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |