Older blog entries for mglazer (starting at number 204)

My New thing is:

Replication of the the basic format and use of Java Beans and Java Custom Tags in JSP for PHP.

This does come into play with PHPortal-Xpc. Specifically with the App Builder.

JBeans and JTags offer a standard protocol in which to write applications, a standard interface in which to reference your formatted apps and a sort of middle-ware to make it all happen.

So what we have is three layers.

1. The parser that interprets and calls the repective references.

2. The formatted class libs/apps.

3. The template that calls the class libs and pass arguments.

I will set up the classic hello world for each as well as a Datetime app samples.

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:

<%=request.getServletPath()%>

Ot the XML equivalent of:

<jsp:expression>
request.getServletPath()
</jsp:expression>

Mr. Bean Returns:

BEAN:

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:

<jsp:useBean id="time" class="CurrentTimeBean"/>
<HTML>
<BODY>
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:

http://java.sun.com/products/jsp/docs.html

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:

BEAN:

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:

<HTML>
<BODY>
<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"/>!
</BODY>
</HTML>

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

195 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!