Older blog entries for mglazer (starting at number 203)

Reading the CGI Variables in JSP:

String AUTH_TYPE	 = request.getAuthType();
Int CONTENT_LENGTH	 = String.valueOf(request.getContentLength());
String CONTENT_TYPE	 = request.getContentType();
String DOCUMENT_ROOT	 = getServletContext().getRealPath("/");
String PATH_INFO	 = request.getPathInfo();
String PATH_TRANSLATED	 = request.getPathTranslated();
String QUERY_STRING	 = request.getQueryString();
String REMOTE_ADDR	 = request.getRemoteAddr();
String REMOTE_HOST	 = request.getRemoteHost();
String REMOTE_USER	 = request.getRemoteUser();
String REQUEST_METHOD	 = request.getMethod();
String SCRIPT_NAME	 = request.getServletPath();
String SERVER_NAME	 = request.getServerName();
Int SERVER_PORT	 = String.valueOf(request.getServerPort());
String SERVER_PROTOCOL	 = request.getProtocol();
String SERVER_SOFTWARE	 = getServletContext().getServerInfo();

Using the above in a JSP page:


Ot the XML equivalent of:


Mr. Bean Returns:


public class CurrentTimeBean {
   private int hours;
   private int minutes;

public CurrentTimeBean() { java.util.Date now = new java.util.Date(); this.hours = now.getHours(); this.minutes = now.getMinutes(); }

public int getHours() { return hours; }

public int getMinutes() { return minutes(); } }


<jsp:useBean id="time" class="CurrentTimeBean"/>
It is now <jsp:getProperty name="time" property="minutes"/>
      minutes past the hour.

Oh Beano, beano, beano.

21 Aug 2002 (updated 21 Aug 2002 at 01:15 UTC) »

Why use servlets and not beans?

Don't ask me. I use Beans and not servlets.

Servlets and beans are both java Classes. Beans follow a strict class structure.

As far as I can tell Servlets are cool CGI but still have the CGIs secondary nature. In other words you can not easily include a servlet and thus its output in the middle of a JSP page, you would have to use a load expensive SSI call and page.

Beans on the other hand are much more modern and code friendly, meaning no output with code. It allows JSP to be a true web scripting langauge by the pure and true separation of code and design.

Th availability of code within output is smart and useful but also not wise to always be on.

Of course people should be allowed to mix the two but it should be an option that can be turned off for production and live environments.

Sun has a great quick start guide to using JSP:


Next: Beans Versus Servlets:

Why, Where, Who, Which, and of course When...

The Difference:

Paranoia is not the fact that people are looking at or talking about you.

Instead, paranoia is being scared by the truth or untruth that people are looking at or talking about you.

You see, a non-paranoid person is not scared if people are looking or talking at or about them, only a truly paranoid person is.

Complete Java Bean; Hello World:


package com.taglib.wdjsp.fundamentals;
public class HelloBean implements java.io.Serializable {
  String name;

public HelloBean () { this.name = "World"; } public String getName () { return name; } public void setName (String name) { this.name = name; } }


<jsp:useBean id="hello" class="com.taglib.wdjsp.fundamentals.HelloBean"/>
<jsp:setProperty name="hello" property="name" param="name"/>
Hello, <jsp:getProperty name="hello" property="name"/>!

A search engine result that displays only the links in the results of your query you have already visited.

194 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!