Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java library to map HTTP status code to description? [closed]

I'm in the situation where I'm writing custom error pages for a webapp (primarily to reduce information disclosure from the servlet container's default error pages). Since I need an error page for each error status code, I'm going to have to have a sensible response for each code. As far as I can tell, these error pages don't have to be particularly user-friendly, but simply redirecting everything to a single "it went wrong" error page is going to make diagnosing problems very difficult.

So I'm wondering if there is a Java library that provides a good mapping between HTTP status codes and a brief human-readable description of them (ideally a 2-4 word "summary", for use as a page title, as well as a 1-3 sentence message expanding on the summary). Then I could just use this in a JSP to provide some feedback on the class of the error. If not I'm sure I can write one myself, but if wheels have been invented I'm happy to use them.

like image 819
Andrzej Doyle Avatar asked Oct 28 '09 14:10

Andrzej Doyle


1 Answers

So I'm wondering if there is a Java library that provides a good mapping between HTTP status codes and a brief human-readable description of them (ideally a 2-4 word "summary", for use as a page title, as well as a 1-3 sentence message expanding on the summary).

Yes, Apache Commons HttpClient has this functionality. The HttpStatus class has the same list of int constants that you'll find elsewhere, but it also has a static String getStatusText(int) method that returns a human-readable description of the status code.

Here is the Maven dependency:

<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

Example code:

import org.apache.commons.httpclient.HttpStatus;

String responseMessage = HttpStatus.getStatusText(HttpStatus.SC_OK);
System.out.println(responseMessage);

Prints:

OK
like image 84
skaffman Avatar answered Oct 18 '22 18:10

skaffman