Introduction | Mobile Engine Structure | Developing with Eclipse
JSP can have following elements:

Syntax:
<%= Expression Here %>
Behavior:
Example:
<%= request.getRemoteHost() %>
Syntax:
<% Java Code Here %>
Behavior:
Example 1:
<%
String queryData = request.getQueryString();
out.println("Attached GET data: "+ queryData);
%>
Example 2:
<%
String bgColor = request.getParameter("bgColor");
boolean hasExplicitColor;
if (bgColor != null) {
hasExplicitColor = true;
} else {
hasExplicitColor = false;
bgColor = "WHITE";
}
%>
<BODY BGCOOLOR ="<%= bgColor %>">
Syntax:
<%! declaration code %>
Behavior:
Example:
...
<BODY>
<%! private int accessCounter = 0; %>
<H2>This page has had
<%= ++accessCounter %>
Hits
</H2>
</BODY>
Syntax:
<%@ attribute="value" %>
Behavior:
Type of Directives
page
include
taglib to define custom tags
JSP comment
<%-- This is a JSP Comment --%>
XML type tag for expressions
<jsp:expression>
Java Expression
</jsp:expression>
XML type tag for declarations
<jsp:declaration>
Code
</jsp:declaration>
XML type tag for directives
<jsp:directive.directiveType attribute="value"/> <jsp:directive.page language="java"/>
Using Expressions
<BODY>
<%@ page language="java" %>
<%! String title = "My First Java Server Page"; %>
<H2>JSP Expressions</H2>
<UL>
<LI>Page Title: <%= title %>
<LI>Current time: <%= new java.util.Date() %>
<LI>Your hostname: <%= request.getRemoteHost() %>
<LI>Your session ID: <%= session.getId() %>
<LI>Your First Name : <%= request.getParameter("firstName") %>
<LI>Your Last Name : <%= request.getParameter("lastName") %>
</UL>
</BODY>
Using Declarations - import
Compare:
<%
java.util.Calendar rightNow = java.util.Calendar.getInstance();
int hour = rightNow.get(java.util.Calendar.HOUR_OF_DAY);
%>
With:
<%@ page import="java.util.*" %>
<%
Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);
%> You do not have to type the full package name all the time, when you use the import declaration
Conditional Content Type
<% String format = request.getParameter("format"); if ((format != null) && (format.equals("excel"))) { // Content type based on parameter. response.setContentType("application/vnd.ms-excel"); } %> <TABLE BORDER=1> <TR><TH></TH><TH>Apples<TH>Oranges <TR><TH>First Quarter<TD>2307<TD>4706 <TR><TH>Second Quarter<TD>2982<TD>5104 <TR><TH>Third Quarter<TD>3011<TD>5220 <TR><TH>Fourth Quarter<TD>3055<TD>5287 </TABLE>
The JSP in the Example 2 of the "Getting Started" section demonstrates the usage of a gridlayout for better positioning of the graphical user interface elements and places an input field and a button in the grid layout
Example 2: welcome.jsp
The tableView.jsp of Example 2 demonstrates a layout to represent data in a tabular form. It uses variables supplied by a bean to keep the rows and columns of the table flexible.
Example 2: tableView.jsp
The menu.jsp in the persistence example uses a table structure similar to tableView.jsp but has additional checkboxes in the first row.
Persistence example: menu.jsp