|
|||||||||
| Home >> All >> [ maddany overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
maddany
Class ChatServlet

java.lang.Objectjavax.servlet.GenericServlet
javax.servlet.http.HttpServlet
maddany.ChatServlet
- All Implemented Interfaces:
- Analyzer, java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, Wakable
- public class ChatServlet
- extends javax.servlet.http.HttpServlet
- implements Analyzer, Wakable
- extends javax.servlet.http.HttpServlet
| Field Summary | |
static int |
IDENT_LENGTH
|
private ChatListener |
listener
|
private java.util.Vector |
pool
|
static int |
PORT
|
private java.util.Random |
r
|
static int |
TIMEOUT
|
private java.lang.String |
validChars
|
| Fields inherited from class javax.servlet.http.HttpServlet |
|
| Fields inherited from class javax.servlet.GenericServlet |
|
| Constructor Summary | |
ChatServlet()
|
|
| Methods inherited from class javax.servlet.http.HttpServlet |
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service |
| Methods inherited from class javax.servlet.GenericServlet |
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
validChars
private final java.lang.String validChars
- See Also:
- Constant Field Values
IDENT_LENGTH
public static final int IDENT_LENGTH
- See Also:
- Constant Field Values
TIMEOUT
public static final int TIMEOUT
- See Also:
- Constant Field Values
PORT
public static final int PORT
- See Also:
- Constant Field Values
pool
private java.util.Vector pool
r
private java.util.Random r
listener
private ChatListener listener
| Constructor Detail |
ChatServlet
public ChatServlet()
| Method Detail |
init
public void init(javax.servlet.ServletConfig conf) throws javax.servlet.ServletException
- Description copied from class:
javax.servlet.GenericServlet - Called by the servlet container to indicate to a servlet that the
servlet is being placed into service. See Servlet.init(javax.servlet.ServletConfig)>
Servlet.init(javax.servlet.ServletConfig)55 .This implementation stores the javax.servlet.ServletConfig object it receives from the servlet container for later use. When overriding this form of the method, call
super.init(config).- Specified by:
initin interfacejavax.servlet.Servlet
doGet
public void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, java.io.IOException
- Description copied from class:
javax.servlet.http.HttpServlet - Called by the server (via the
servicemethod) to allow a servlet to handle a GET request.Overriding this method to support a GET request also automatically supports an HTTP HEAD request. A HEAD request is a GET request that returns no body in the response, only the request header fields.
When overriding this method, read the request data, write the response headers, get the response's writer or output stream object, and finally, write the response data. It's best to include content type and encoding. When using a
PrintWriterobject to return the response, set the content type before accessing thePrintWriterobject.The servlet container must write the headers before committing the response, because in HTTP the headers must be sent before the response body.
Where possible, set the Content-Length header (with the ServletResponse.setContentLength(int)>
ServletResponse.setContentLength(int)55 method), to allow the servlet container to use a persistent connection to return its response to the client, improving performance. The content length is automatically set if the entire response fits inside the response buffer.When using HTTP 1.1 chunked encoding (which means that the response has a Transfer-Encoding header), do not set the Content-Length header.
The GET method should be safe, that is, without any side effects for which users are held responsible. For example, most form queries have no side effects. If a client request is intended to change stored data, the request should use some other HTTP method.
The GET method should also be idempotent, meaning that it can be safely repeated. Sometimes making a method safe also makes it idempotent. For example, repeating queries is both safe and idempotent, but buying a product online or modifying data is neither safe nor idempotent.
If the request is incorrectly formatted,
doGetreturns an HTTP "Bad Request" message.
doPost
public void doPost(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, java.io.IOException
- Description copied from class:
javax.servlet.http.HttpServlet - Called by the server (via the
servicemethod) to allow a servlet to handle a POST request. The HTTP POST method allows the client to send data of unlimited length to the Web server a single time and is useful when posting information such as credit card numbers.When overriding this method, read the request data, write the response headers, get the response's writer or output stream object, and finally, write the response data. It's best to include content type and encoding. When using a
PrintWriterobject to return the response, set the content type before accessing thePrintWriterobject.The servlet container must write the headers before committing the response, because in HTTP the headers must be sent before the response body.
Where possible, set the Content-Length header (with the ServletResponse.setContentLength(int)>
ServletResponse.setContentLength(int)55 method), to allow the servlet container to use a persistent connection to return its response to the client, improving performance. The content length is automatically set if the entire response fits inside the response buffer.When using HTTP 1.1 chunked encoding (which means that the response has a Transfer-Encoding header), do not set the Content-Length header.
This method does not need to be either safe or idempotent. Operations requested through POST can have side effects for which the user can be held accountable, for example, updating stored data or buying items online.
If the HTTP POST request is incorrectly formatted,
doPostreturns an HTTP "Bad Request" message.
analyze
public java.lang.String analyze(java.lang.String toAnalyze, ChatHandler generator)
broadcast
private void broadcast(java.lang.String tosend, ChatHandler generator)
internalBroadcast
private void internalBroadcast(java.lang.String tosend, ChatHandler generator)
getThreadPool
public java.util.Vector getThreadPool()
- Specified by:
getThreadPoolin interfaceAnalyzer
addToPool
public void addToPool(java.lang.Object obj)
removeFromPool
public void removeFromPool(java.lang.Object obj)
- Specified by:
removeFromPoolin interfaceAnalyzer
poolElements
public java.util.Enumeration poolElements()
- Specified by:
poolElementsin interfaceAnalyzer
wakeUp
public void wakeUp()
wakeUp
public void wakeUp(java.lang.Object obj)
logUserIn
public java.lang.String logUserIn(java.lang.String nick, java.net.Socket sck)
logUserOut
private void logUserOut(java.lang.String ident)
containsIdentifier
public boolean containsIdentifier(java.lang.String ident)
- Specified by:
containsIdentifierin interfaceAnalyzer
getHandlerByIdent
public ChatHandler getHandlerByIdent(java.lang.String ident)
getIdent
private java.lang.String getIdent(java.lang.String nick)
singleList
private java.lang.String singleList()
isValidInput
private boolean isValidInput(java.lang.String str)
isValidNick
private boolean isValidNick(java.lang.String nick)
extractCommand
public static java.lang.String extractCommand(java.lang.String response)
extractParam
public static java.lang.String extractParam(java.lang.String response)
|
|||||||||
| Home >> All >> [ maddany overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC