Package org.simpleframework.http.parse
Class CookieParser
java.lang.Object
org.simpleframework.util.parse.Parser
org.simpleframework.http.parse.CookieParser
CookieParser is used to parse the cookie header. The cookie header is
one of the headers that is used by the HTTP state management mechanism.
The Cookie header is the header that is sent from the client to the
server in response to a Set-Cookie header. The syntax of the Cookie
header as taken from RFC 2109, HTTP State Management Mechanism.
cookie = "Cookie:" cookie-version 1*((";" | ",") cookie-value) cookie-value = NAME "=" VALUE [";" path] [";" domain] cookie-version = "$Version" "=" value NAME = attr VALUE = value path = "$Path" "=" value domain = "$Domain" "=" valueThe cookie header may consist of several cookies. Each cookie can be extracted from the header by examining the it syntax of the cookie header. The syntax of the cookie header is defined in RFC 2109.
Each cookie has a $Version
attribute followed by multiple
cookies. Each contains a name and a value, followed by an optional
$Path
and $Domain
attribute. This will parse
a given cookie header and return each cookie extracted as a
Cookie
object.
- Author:
- Niall Gallagher
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionCreate aCookieParser
that contains no cookies.CookieParser
(String header) This is primarily a convineance constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
init()
Resets the cookie and the buffer variables for thisCookieParser
.iterator()
This is used to acquire the cookie values from the provided the provided source text.protected void
parse()
This will extract the nextCookie
from the buffer.void
reset()
This is used so that the collection ofCookies
can be reiterated.protected boolean
This is used to skip an arbitraryString
within thechar
buf.Methods inherited from class org.simpleframework.util.parse.Parser
digit, ensureCapacity, parse, space, toLower
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
CookieParser
public CookieParser()Create aCookieParser
that contains no cookies. the instance will returnfalse
for thehasNext
method. cookies may be parsed using this instance by using theparse
method. -
CookieParser
This is primarily a convineance constructor. This will parse theString
given to extract the cookies. This could be achived by calling the default no-arg constructor and then using the instance to invoke theparse
method on thatString
.- Parameters:
header
- aString
containing a cookie value
-
-
Method Details
-
init
protected void init()Resets the cookie and the buffer variables for thisCookieParser
. It is used to set the state of the parser to start parsing a new cookie. -
parse
protected void parse()This will extract the nextCookie
from the buffer. If all the characters in the buffer have already been examined then this method will simply do nothing. Otherwise this will parse the remainder of the buffer and (if it follows RFC 2109) produce aCookie
. -
skip
This is used to skip an arbitraryString
within thechar
buf. It checks the length of theString
first to ensure that it will not go out of bounds. A comparison is then made with the buffers contents and theString
if the reigon in the buffer matched theString
then the offset within the buffer is increased by theString
's length so that it has effectively skipped it.This
skip
method will ignore all of the whitespace text. This will also skip trailing spaces within the the input text and all spaces within the source text. For example if the input was the string "s omete xt" and the source was "some text to skip" then the result of a skip ignoring spaces would be "to skip" in the source string, as the trailing spaces are also eaten by this. -
iterator
This is used to acquire the cookie values from the provided the provided source text. This allows the cookie parser to be used within a for each loop to parse out the values of a cookie one by one so that they may be used or stored. -
reset
public void reset()This is used so that the collection ofCookies
can be reiterated. This allows the collection to be reused. Thereset
method will invoke the super classesinit
method. This will reinitialize thisParser
so the cookie will be reparsed.
-