advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement


Tutorials : A very simple JSP-architecture :
Contents
Introduction
The "Customer Lookup" application
The "view"

The "Customer Lookup" application

To show how these principles work, let's create a small, simple "lookup-customer" application. It consists of a single page where you enter the customer's ID, push a button and consequently get the data for the customer (name and address in our example).

It's a good idea to let the controller- and view-files have similar names. We'll call our controller ctrlcustomerinfo.jsp and the view customerinfo.jsp. To prefix with "ctrl" is yet another standard that's useful to follow.

The "Customer" JavaBean

We'll need a single bean to get customer data from a database. It will contain these methods:

Method syntax

Purpose

void setCustomerID(String id)

set the ID of the customer

int readCustomerInfo()

read the data for the customer. Return the number one if the customer was found, else zero.

String getCustomerName()

get the name of the customer

String getCustomerAddress()

get the address of the customer

If you look at the code for the JavaBean, you'll see that for simplicity the data base access has been left out, and replaced by some simple logic that will return data for ID-values of 1 and 2 only.

Commands to the controller

It might seem that there is only one command to this page, namely the one that initiates the fetch for customer data. But many pages also need an "initial" command simply to put up the page the first time it's shown. So does our page. This gives us these commands:

  • prompt
  • getdata

The "prompt" command doesn't do much--it shows the page with a message asking the user to enter an ID.

The "getdata" command will do this:

  • get the customer ID from the form
  • invoke a bean to get the customer data
  • check if data was returned
  • setup an appropriate message

Generally, if the controller receives a command that it does not recognize, it should treat it as system error, and handle it accordingly. This could be by throwing an exception, showing an "Application Error" page to the user, or whatever has been decided as the standard way of handling system errors. In our small application we will simply throw an exception with an informative message, which will end up on the common error page.

The structure of the JSP-controller

With the above principles in mind the controller ends up looking like this:

	<%@ page import="java.util.*" %>

	<%@ page errorPage="error.jsp" %>
	
	<jsp:useBean id="customer" class="hansen.playground.Customer" scope="request" />
	
	<%@ include file = "util.inc" %> // contains "cString"
	
	<%String url = request.getRequestURI(); // name of this file
	 // get command
	 String command = cString(request.getParameter("command"));
	 if (command.equals("prompt")) {
	   // prompt user for the id
	   session.putValue("customerinfo.message","");
	 } else if (command.equals("getdata")) {
	   // let the bean fetch data for this customer
	   String id = cString(request.getParameter("id"));
	   customer.setId(id);
	   if (customer.readCustomerInfo() == 1) {
	     // id found
	     session.putValue("customerinfo.message","Customer found");
	   } else {
	     session.putValue("customerinfo.message","Customer not found");
	   }
	 } else if (command.equals("")) throw new Exception("No command given to "+url);
	 else throw new Exception("Invalid command (" + command + ") given to "+url);
	
	pageContext.forward("customerinfo.jsp"); %>

The file "util.inc" contains the utility method "cString" mentioned earlier.

The exceptions thrown for invalid or missing commands are caught by the error-page.

Note, that the controller should never contain HTML-code or anything else submitted to the browser. It's a good, general principle that the controller should not deal with the presentation of data.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs