Java Reference
In-Depth Information
response
.
getHeaderString
(
HttpHeaders
.
CACHE_CONTROL
));
System
.
out
.
println
(
"Max age: "
+
cc
.
getMaxAge
());
There is nothing really special about this code other than it shows you how to create a
CacheControl
object from a header string.
Build and Run the Example Program
Perform the following steps:
1. Open a command prompt or shell terminal and change to the
ex12_1
directory of the
workbook example code.
2. Make sure your PATH is set up to include both the JDK and Maven, as described in
3. Perform the build and run the example by typing
maven install
.
Example ex12_2: Implementing a WriterInterceptor
In this example, we implement support for generating the
Content-MD5
header. This header
is defined in the HTTP 1.1 specification. Its purpose is to provide an additional end-to-end
message integrity check of the HTTP message body. While not proof against malicious at-
tacks, it's a good way to detect accidental modification of the message body in transit just in
case it was transformed by a proxy, cache, or some other intermediary. Well, OK, I admit it's
a pretty lame header, but let's show how we can implement support for it using a
WriterIn-
terceptor
:
public
public class
class
ContentMD5Writer
ContentMD5Writer
implements
implements
WriterInterceptor
{
@Override
public
public
void
void
aroundWriteTo
(
WriterInterceptorContext context
)
throws
throws
IOException
,
WebApplicationException
{
MessageDigest digest
=
null
null
;
try
try
{
digest
=
MessageDigest
.
getInstance
(
"MD5"
);
}
catch
catch
(
NoSuchAlgorithmException e
)
{
throw
throw new
new
IllegalArgumentException
(
e
);
}