As discussed in the antecedent section, a acknowledgment from a Web server normally consists of a cachet line, one or added acknowledgment headers (one of which charge be Content-Type), a bare line, and the document. To get the best out of your servlets, you charge to apperceive how to use the cachet band and acknowledgment headers effectively, not aloof how to accomplish the document.
Setting the HTTP acknowledgment headers generally goes duke in duke with ambience the status codes in the cachet line, as discussed in the antecedent section. For example, all the “document moved” cachet codes (300 through 307) have an accompanying Loca_tion header, and a 401 (Unauthorized) code consistently includes an accompanying WWW-Authenticate header. However, specifying headers can additionally comedy a advantageous role alike aback no abnormal cachet code is set. Acknowledgment headers can be acclimated to specify cookies, to accumulation the page modification date (for client-side caching), to acquaint the browser to reload the folio afterwards a appointed interval, to accord the book admeasurement so that persistent HTTP admission can be used, to baptize the blazon of certificate actuality generated, and to accomplish abounding added tasks. This area gives a abrupt arbitrary of the handling of acknowledgment headers. See Affiliate 7 of Core Servlets and JavaServer Pages (available in PDF at http://www.moreservlets.com) for added capacity and examples.
The best accepted way to specify headers is to use the setHeader method of HttpServletResponse. This adjustment takes two strings: the header name and the attack value. As with ambience cachet codes, you charge specify headers afore abiding the absolute document.
In accession to the general-purpose setHeader method, HttpServletResponse additionally has two specialized methods to set headers that accommodate dates and integers:
setDateHeader(String header, continued milliseconds) This adjustment saves you the agitation of advice a Java date in milliseconds aback 1970 (as returned by System.currentTimeMillis, Date.getTime, or Calendar.getTimeInMillis) into a GMT time string.
setIntHeader(String header, int headerValue) This adjustment spares you the accessory aggravation of converting an int to a String before inserting it into a header.
HTTP allows assorted occurrences of the aforementioned attack name, and you sometimes want to add a new attack rather than alter any absolute attack with the same name. For example, it is absolutely accepted to accept assorted Accept and Set-Cookie headers that specify altered accurate MIME types and different cookies, respectively. With servlets adaptation 2.1, setHeader, setDateHeader, and setIntHeader consistently add new headers, so there is no way to “unset” headers that were set beforehand (e.g., by an affiliated method). With servlets versions 2.2 and 2.3, setHeader, setDateHeader, and setIntHeader alter any existing headers of the aforementioned name, admitting addHeader, addDateHeader, and addIntHeader add a attack behindhand of whether a attack of that name already exists. If it affairs to you whether a specific attack has already been set, use containsHeader to check.
Finally, HttpServletResponse additionally food a cardinal of convenience methods for allegorical accepted headers. These methods are abbreviated as follows.
setContentType This adjustment sets the Content-Type header and is acclimated by the majority of servlets.
setContentLength This adjustment sets the Content-Length header, which is advantageous if the browser supports persistent (keep-alive) HTTP connections.
addCookie This adjustment inserts a cookie into the Set-Cookie header. There is no agnate setCookie method, since it is accustomed to accept assorted Set-Cookie lines. See Area 2.9 (Cookies) for a altercation of cookies.
sendRedirect As discussed in the antecedent section, the sendRedirect adjustment sets the Area attack as able-bodied as setting the cachet cipher to 302. See Listing 2.12 for an example.
Following is a arbitrary of the best advantageous HTTP 1.1 acknowledgment headers. A good understanding of these headers can admission the capability of your servlets, so you should at atomic brush the descriptions to see what options are at your disposal. You can appear aback for capacity aback you are accessible to use the capabilities.
These headers are a superset of those acceptable in HTTP 1.0. The official HTTP 1.1 blueprint is accustomed in RFC 2616. The RFCs are online in various places; your best bet is to alpha at http://www.rfc-editor.org/ to get a accepted account of the annal sites. Attack names are not case sensitive but are frequently accounting with the aboriginal letter of anniversary word capitalized.
Be alert in autograph servlets whose behavior depends on acknowledgment headers that are alone accessible in HTTP 1.1, abnormally if your servlet needs to run on the WWW “at large” rather than on an intranetmany earlier browsers support alone HTTP 1.0. It is best to absolutely analysis the HTTP adaptation with request.getRequestProtocol afore application new headers.
The Allow attack specifies the appeal methods (GET, POST, etc.) that the server supports. It is appropriate for 405 (Method Not Allowed) responses. The absence account adjustment of servlets automatically generates this attack for OPTIONS requests.
This advantageous attack tells the browser or added applicant the affairs in which the acknowledgment certificate can cautiously be cached. It has the afterward possible values:
public. Certificate is cacheable, alike if accustomed rules (e.g., for password-protected pages) announce that it shouldn’t be.
private. Certificate is for a distinct user and can alone be stored in clandestine (nonshared) caches.
no-cache. Certificate should never be buried (i.e., acclimated to satisfy a afterwards request). The server can additionally specify ”no-cache=”header1,header2,…,headerN”” to announce the headers that should be bare if a buried acknowledgment is later used. Browsers frequently do not accumulation abstracts that were retrieved by requests that accommodate anatomy data. However, if a servlet generates altered agreeable for different requests alike aback the requests accommodate no anatomy data, it is critical to acquaint the browser not to accumulation the response. Aback earlier browsers use the Pragma attack for this purpose, the archetypal servlet admission is to set both headers, as in the afterward example.
no-store. Certificate should never be buried and should not even be stored in a acting area on disk. This attack is advised to prevent careless copies of acute information.
must-revalidate. Applicant charge revalidate certificate with original server (not aloof average proxies) anniversary time it is used.
proxy-revalidate. This is the aforementioned as must-revalidate, except that it applies alone to aggregate caches.
max-age=xxx. Certificate should be considered stale afterwards xxx seconds. This is a acceptable another to the Expires attack but alone works with HTTP 1.1 clients. If both max-age and Expires are present in the response, the max-age amount takes precedence.
s-max-age=xxx. Aggregate caches should consider the certificate dried afterwards xxx seconds.
The Cache-Control attack is new in HTTP 1.1.
A amount of aing for this acknowledgment attack instructs the browser not to use assiduous HTTP connections. Technically, assiduous admission are the default aback the applicant supports HTTP 1.1 and does not specify a Connection: close appeal attack (or aback an HTTP 1.0 applicant specifies Connection: keep-alive). However, aback assiduous admission crave a Con_tent- Length acknowledgment header, there is no acumen for a servlet to absolutely use the Connection header. Aloof omit the Con_tent-Length attack if you aren’t application assiduous connections.
This attack indicates the way in which the folio was encoded during transmission. The browser should about-face the encoding afore chief what to do with the document. Compressing the certificate with gzip can aftereffect in huge savings in manual time; for an example, see Area 9.5.
The Content-Language attack signifies the accent in which the document is written. The amount of the attack should be one of the standard language codes such as en, en-us, da, etc. See RFC 1766 for capacity on accent codes (you can admission RFCs online at one of the archive sites listed at http://www.rfc-editor.org/).
This attack indicates the cardinal of bytes in the response. This information is bare alone if the browser is application a assiduous (keep-alive) HTTP connection. See the Connection attack for free aback the browser supports assiduous connections. If you appetite your servlet to booty advantage of persistent admission aback the browser supports it, your servlet should write the certificate into a ByteArrayOutputStream, attending up its admeasurement aback done, put that into the Content-Length acreage with response.setContentLength, afresh accelerate the agreeable by byteArrayStream.writeTo(response.getOutputStream()). See Core Servlets and JavaServer Pages Area 7.4 for an example.
The Content-Type attack gives the MIME (Multipurpose Internet Mail Extension) blazon of the acknowledgment document. Ambience this attack is so accepted that there is a appropriate adjustment in HttpServletResponse for it: setContentType. MIME types are of the anatomy maintype/subtype for clearly registered types and of the anatomy maintype/x-subtype for unregistered types. Best servlets specify text/html; they can, however, specify added types instead.
In accession to a basal MIME type, the Content-Type attack can also designate a specific appearance encoding. If this is not specified, the default is ISO-8859_1 (Latin). For example, the afterward instructs the browser to adapt the certificate as HTML in the Shift_JIS (standard Japanese) character set.
Table 2.1 lists some the best accepted MIME types acclimated by servlets. RFC 1521 and RFC 1522 account added of the accepted MIME types (again, see http://www.rfc-editor.org/ for a account of RFC annal sites). However, new MIME types are registered all the time, so a activating account is a bigger abode to look. The clearly registered types are listed at http://www.isi.edu/in-notes/iana/assignments/media-types/media-types. For accepted unregistered types, http://www.ltsw.se/knbase/internet/mime.htp is a acceptable source.
Microsoft Word document
Unrecognized or bifold data
Acrobat (.pdf) file
Lotus Notes file
Serialized Java object
Java bytecode (.class) file
Sound book in .au or .snd format
MIDI complete file
AIFF complete file
Microsoft Windows complete file
X Windows bitmap image
HTML bottomward appearance sheet
MPEG video clip
QuickTime video clip
This attack stipulates the time at which the agreeable should be considered out-of-date and appropriately no best be cached. A servlet ability use this for a document that changes almost frequently, to anticipate the browser from displaying a dried buried value. Furthermore, aback some earlier browsers support Pragma unreliably (and Cache-Control not at all), an Expires attack with a date in the accomplished is generally acclimated to anticipate browser caching.
For example, the afterward would acquaint the browser not to accumulation the document for added than 10 minutes.
Also see the max-age amount of the Cache-Control header.
This actual advantageous attack indicates aback the certificate was aftermost changed. The client can afresh accumulation the certificate and accumulation a date by an If-Modi_fied-Since appeal attack in afterwards requests. This appeal is treated as a codicillary GET, with the certificate actuality alternate alone if the Last-Modified date is afterwards than the one defined for If-Modi_fied-Since. Otherwise, a 304 (Not Modified) status line is returned, and the applicant uses the buried document. If you set this header explicitly, use the setDateHeader adjustment to save yourself the bother of formatting GMT date strings. However, in best cases you simply implement the getLastModified adjustment (see Core Servlets and JavaServer Pages Area 2.8) and let the accepted account adjustment handle If-Modified-Since requests.
This header, which should be included with all responses that accept a status code in the 300s, notifies the browser of the certificate address. The browser automatically reconnects to this area and retrieves the new document. This header is usually set indirectly, forth with a 302 cachet code, by the send_Redirect adjustment of HttpServletResponse. An archetype is given in the antecedent area (Listing 2.12).
Supplying this attack with a amount of no-cache instructs HTTP 1.0 clients not to accumulation the document. However, abutment for this attack was inconsistent with HTTP 1.0 browsers, so Expires with a date in the past is generally acclimated instead. In HTTP 1.1, Cache-Control: no-cache is a more reliable replacement.
This attack indicates how anon (in seconds) the browser should ask for an updated page. For example, to acquaint the browser to ask for a new archetype in 30 seconds, you would specify a amount of 30 with
Note that Refresh does not agree around-the-clock updates; it just specifies aback the aing amend should be. So, you accept to abide to supply Refresh in all consecutive responses. This attack is acutely useful because it lets servlets acknowledgment fractional after-effects bound while still absolution the client see the complete after-effects at a afterwards time. For an example, see Area 7.3 of Core Servlets and JavaServer Pages (in PDF at http://www.moreservlets.com).
Instead of accepting the browser aloof reload the accepted page, you can specify the folio to load. You do this by bartering a semicolon and a URL afterwards the refresh time. For example, to acquaint the browser to go to http://host/path afterwards 5 seconds, you would do the following.
This ambience is advantageous for “splash screens,” area an introductory image or bulletin is displayed briefly afore the absolute folio is loaded.
Note that this attack is frequently set alongside by putting
in the HEAD area of the HTML page, rather than as an explicit header from the server. That acceptance came about because automated reloading or forwarding is article generally adapted by authors of changeless HTML pages. For servlets, however, ambience the attack anon is easier and clearer.
This attack is not clearly allotment of HTTP 1.1 but is an addendum supported by both Netscape and Internet Explorer.
This attack can be acclimated in affiliation with a 503 (Service Unavail_able) acknowledgment to acquaint the applicant how anon it can echo its request.
The Set-Cookie attack specifies a cookie associated with the page. Each cookie requires a abstracted Set-Cookie header. Servlets should not use response.setHeader(“Set-Cookie”, …) but instead should use the special-purpose addCookie adjustment of HttpServletResponse. For details, see Area 2.9 (Cookies). Technically, Set-Cookie is not allotment of HTTP 1.1. It was originally a Netscape addendum but is now broadly supported, including in both Netscape and Internet Explorer.
This attack is consistently included with a 401 (Unauthorized) status code. It tells the browser what allotment blazon (BASIC or DIGEST) and branch the applicant should accumulation in its Authorization header. See Chapters 7 and 8 for a altercation of the various aegis mechanisms accessible to servlets.
Ten Facts That Nobody Told You About Itext Fill Pdf Form Java Example | Itext Fill Pdf Form Java Example – itext fill pdf form java example
| Delightful to help our blog site, in this particular time I will teach you regarding itext fill pdf form java example