Getting by with just Servlets and JSPs

, Aug 15, 2007

Bill de hÓra wonders how to use Servlets and JSPs without having to treat URIs like it’s 1999:

However it’s easy to forget that Servlets were Java’s response to CGI, way back when. Here’s is the link for Stefan’s entry:


I’m wondering how would one produce a URL space for a blog style archive, using Servlets+JSP, and do so in a way that isn’t a CGI/RPC explicit call?

Something like this?

    import javax.servlet.http.*;

public class Blog extends HttpServlet {

public void doGet (HttpServletRequest request, HttpServletResponse response) {
try {
String path = request.getPathInfo();
// do something fancy with the path, like decomposing it into
// parts, retrieving the entry from the DB, creating an entry object,
// and setting it as a request attribute
// simulated here :-)
request.setAttribute("entry", "Entry with ID " + path);
getServletConfig().getServletContext().getRequestDispatcher("/internal/_entry.jsp").forward(request, response);
// Assumption: _entry.jsp will format the content from the entry
} catch (Exception ex) {
ex.printStackTrace ();

This servlet would be deployed e.g. at /blog/st/*, and could handle all URIs that start this way, so 2007/08/15/java_web_frameworks.html would simply be returned by getPathInfo(). Of course any decent Java programmer could not help but create at least a small library to help with this, but that’s a far cry from a full-featured open source over-hyped Web framework …

Update: Here are two posts from Ian Griffiths showing something similar for the .NET-inclined (via Dilip via email).

Yet another update: Hugh Winkler has a nice micro-framework for the purpose.