📄 serve.java
字号:
}
/// Applies alias rules to the specified virtual path and returns the
// corresponding real path, or null if the translation can not be
// performed for any reason. For example, an HTTP servlet would
// resolve the path using the virtual docroot, if virtual hosting is
// enabled, and with the default docroot otherwise. Calling this
// method with the string "/" as an argument returns the document root.
public String getRealPath( String path )
{
return serve.getRealPath( path );
}
/// Returns an input stream for reading request data.
// @exception IllegalStateException if getReader has already been called
// @exception IOException on other I/O-related errors
public ServletInputStream getInputStream() throws IOException
{
return in;
}
/// Returns a buffered reader for reading request data.
// @exception UnsupportedEncodingException if the character set encoding isn't supported
// @exception IllegalStateException if getInputStream has already been called
// @exception IOException on other I/O-related errors
public BufferedReader getReader()
{
// !!!
return null;
}
Vector queryNames = null;
Vector queryValues = null;
/// Returns the parameter names for this request.
public Enumeration getParameterNames()
{
if ( queryNames == null )
{
queryNames = new Vector();
queryValues = new Vector();
String qs = getQueryString();
if ( qs != null )
{
Enumeration en = new StringTokenizer( qs, "&" );
while ( en.hasMoreElements() )
{
String nv = (String) en.nextElement();
int eq = nv.indexOf( '=' );
String name, value;
if ( eq == -1 )
{
name = nv;
value = "";
}
else
{
name = nv.substring( 0, eq );
value = nv.substring( eq + 1 );
}
queryNames.addElement( name );
queryValues.addElement( value );
}
}
}
return queryNames.elements();
}
/// Returns the value of the specified query string parameter, or null
// if not found.
// @param name the parameter name
public String getParameter( String name )
{
Enumeration en = getParameterNames();
int i = queryNames.indexOf( name );
if ( i == -1 )
return null;
else
return (String) queryValues.elementAt( i );
}
/// Returns the values of the specified parameter for the request as an
// array of strings, or null if the named parameter does not exist.
public String[] getParameterValues( String name )
{
Vector v = new Vector();
Enumeration en = getParameterNames();
for ( int i = 0; i < queryNames.size(); ++i )
{
String n = (String) queryNames.elementAt( i );
if ( name.equals( n ) )
v.addElement( queryValues.elementAt( i ) );
}
if ( v.size() == 0 )
return null;
String[] vArray = new String[v.size()];
v.copyInto( vArray );
return vArray;
}
/// Returns the value of the named attribute of the request, or null if
// the attribute does not exist. This method allows access to request
// information not already provided by the other methods in this interface.
public Object getAttribute( String name )
{
// This server does not implement attributes.
return null;
}
// Methods from HttpServletRequest.
/// Gets the array of cookies found in this request.
public Cookie[] getCookies()
{
Cookie[] cookieArray = new Cookie[cookies.size()];
cookies.copyInto( cookieArray );
return cookieArray;
}
/// Returns the method with which the request was made. This can be "GET",
// "HEAD", "POST", or an extension method.
// Same as the CGI variable REQUEST_METHOD.
public String getMethod()
{
return reqMethod;
}
/// Returns the full request URI.
public String getRequestURI()
{
String portPart = "";
int port = getServerPort();
if ( port != 80 )
portPart = ":" + port;
String queryPart = "";
String queryString = getQueryString();
if ( queryString != null && queryString.length() > 0 )
queryPart = "?" + queryString;
return "http://" + getServerName() + portPart + reqUriPath + queryPart;
}
/// Returns the part of the request URI that referred to the servlet being
// invoked.
// Analogous to the CGI variable SCRIPT_NAME.
public String getServletPath()
{
// In this server, the entire path is regexp-matched against the
// servlet pattern, so there's no good way to distinguish which
// part refers to the servlet.
return reqUriPath;
}
/// Returns optional extra path information following the servlet path, but
// immediately preceding the query string. Returns null if not specified.
// Same as the CGI variable PATH_INFO.
public String getPathInfo()
{
// In this server, the entire path is regexp-matched against the
// servlet pattern, so there's no good way to distinguish which
// part refers to the servlet.
return null;
}
/// Returns extra path information translated to a real path. Returns
// null if no extra path information was specified.
// Same as the CGI variable PATH_TRANSLATED.
public String getPathTranslated()
{
// In this server, the entire path is regexp-matched against the
// servlet pattern, so there's no good way to distinguish which
// part refers to the servlet.
return null;
}
/// Returns the query string part of the servlet URI, or null if not known.
// Same as the CGI variable QUERY_STRING.
public String getQueryString()
{
return reqQuery;
}
/// Returns the name of the user making this request, or null if not known.
// Same as the CGI variable REMOTE_USER.
public String getRemoteUser()
{
// This server does not support authentication, so even if a username
// is supplied in the headers we don't want to look at it.
return null;
}
/// Returns the authentication scheme of the request, or null if none.
// Same as the CGI variable AUTH_TYPE.
public String getAuthType()
{
// This server does not support authentication.
return null;
}
/// Returns the value of a header field, or null if not known.
// Same as the information passed in the CGI variabled HTTP_*.
// @param name the header field name
public String getHeader( String name )
{
int i = reqHeaderNames.indexOf( name.toLowerCase() );
if ( i == -1 )
return null;
return (String) reqHeaderValues.elementAt( i );
}
/// Returns the value of an integer header field.
// @param name the header field name
// @param def the integer value to return if header not found or invalid
public int getIntHeader( String name, int def )
{
String val = getHeader( name );
if ( val == null )
return def;
try
{
return Integer.parseInt( val );
}
catch ( Exception e )
{
return def;
}
}
/// Returns the value of a long header field.
// @param name the header field name
// @param def the long value to return if header not found or invalid
public long getLongHeader( String name, long def )
{
String val = getHeader( name );
if ( val == null )
return def;
try
{
return Long.parseLong( val );
}
catch ( Exception e )
{
return def;
}
}
/// Returns the value of a date header field.
// @param name the header field name
// @param def the date value to return if header not found or invalid
public long getDateHeader( String name, long def )
{
String val = getHeader( name );
if ( val == null )
return def;
try
{
return DateFormat.getDateInstance().parse( val ).getTime();
}
catch ( Exception e )
{
return def;
}
}
/// Returns an Enumeration of the header names.
public Enumeration getHeaderNames()
{
return reqHeaderNames.elements();
}
// Session stuff. Not implemented, but the API is here for compatibility.
/// Gets the current valid session associated with this request, if
// create is false or, if necessary, creates a new session for the
// request, if create is true.
// <P>
// Note: to ensure the session is properly maintained, the servlet
// developer must call this method (at least once) before any output
// is written to the response.
// <P>
// Additionally, application-writers need to be aware that newly
// created sessions (that is, sessions for which HttpSession.isNew
// returns true) do not have any application-specific state.
public HttpSession getSession( boolean create )
{
return null;
}
/// Gets the session id specified with this request. This may differ
// from the actual session id. For example, if the request specified
// an id for an invalid session, then this will get a new session with
// a new id.
public String getRequestedSessionId()
{
return null;
}
/// Checks whether this request is associated with a session that is
// valid in the current session context. If it is not valid, the
// requested session will never be returned from the getSession
// method.
public boolean isRequestedSessionIdValid()
{
return false;
}
/// Checks whether the session id specified by this request came in as
// a cookie. (The requested session may not be one returned by the
// getSession method.)
public boolean isRequestedSessionIdFromCookie()
{
return false;
}
/// Checks whether the session id specified by this request came in as
// part of the URL. (The requested session may not be the one returned
// by the getSession method.)
public boolean isRequestedSessionIdFromUrl()
{
return false;
}
// Methods from ServletResponse.
/// Sets the content length for this response.
// @param length the content length
public void setContentLength( int length )
{
setIntHeader( "Content-Length", length );
}
/// Sets the content type for this response.
// @param type the content type
public void setContentType( String type )
{
setHeader( "Content-Type", type );
}
/// Returns an output stream for writing response data.
public ServletOutputStream getOutputStream()
{
return out;
}
/// Returns a print writer for writing response data. The MIME type of
// the response will be modified, if necessary, to reflect the character
// encoding used, through the charset=... property. This means that the
// content type must be set before calling this method.
// @exception UnsupportedEncodingException if no such encoding can be provided
// @exception IllegalStateException if getOutputStream has been called
// @exception IOException on other I/O errors
public PrintWriter getWriter() throws IOException
{
// !!!
return null;
}
/// Returns the character set encoding used for this MIME body. The
// character encoding is either the one specified in the assigned
// content type, or one which the client understands. If no content
// type has yet been assigned, it is implicitly set to text/plain.
public String getCharacterEncoding()
{
// !!!
return null;
}
// Methods from HttpServletResponse.
/// Adds the specified cookie to the response. It can be called
// multiple times to set more than one cookie.
public void addCookie( Cookie cookie )
{
cookies.addElement( cookie );
}
/// Checks whether the response message header has a field with the
// specified name.
public boolean containsHeader( String name )
{
return resHeaderNames.contains( name );
}
private int resCode = -1;
private String resMessage = null;
private Vector resHeaderNames = new Vector();
private Vector resHeaderValues = new Vector();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -