Introduction
This post is used to showcase a MVC pattern for web development without framework. Its functionality is display a random number which is set by a bean and populated by a servlet. I use the source code from book “Core Servlets and Java Server Pages” – chapter 15, which is available online at http://pdf.coreservlets.com/. Credits should goes to Marty Hall and Larry Brown, I only make some minor replacement (for Tomcat 6.0.20) and more details instruction for the shake of my student’s clearlyness.
Directory Structures and Files
[bpdp@bpdp-arch webapps]$ tree mvc/ mvc/ `-- WEB-INF |-- classes | |-- beans | | |-- NumberBean.class | | `-- NumberBean.java | `-- servlets | |-- RandomNumberServlet.class | `-- RandomNumberServlet.java |-- views | `-- RandomNum.jsp `-- web.xml 5 directories, 6 files [bpdp@bpdp-arch webapps]$
Files
package beans;
public class NumberBean {
private double num = 0;
public NumberBean(double number) {
setNumber(number);
}
public double getNumber() {
return(num);
}
public void setNumber(double number) {
num = number;
}
}
RandomNumberSerlvet.java
package servlets;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import beans.NumberBean;
/** Servlet that generates a random number, stores it in a bean,
* and forwards to JSP page to display it.
*/
public class RandomNumberServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
NumberBean bean = new NumberBean(Math.random());
request.setAttribute("randomNum", bean);
String address = "/WEB-INF/views/RandomNum.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
}
}
RandomNum.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Random Number</TITLE>
</HEAD>
<BODY>
<jsp:useBean id="randomNum" type="beans.NumberBean"
scope="request" />
<H2>Random Number:
<jsp:getProperty name="randomNum" property="number" />
</H2>
</BODY>
</HTML>
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <description> Integrating Servlets+JSP: Example. </description> <display-name>Servlet and JSP Integration Examples</display-name> <!-- Define servlets that are included in the example application --> <servlet> <servlet-name>RandomNumberServlet</servlet-name> <servlet-class>servlets.RandomNumberServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RandomNumberServlet</servlet-name> <url-pattern>/randomize</url-pattern> </servlet-mapping> </web-app>
From these source code, you should know that I have prepare directory for views (only for JSP), servlets (all servlets), beans (all beans). That way, we can separate our application into 3 functionalities: Model (beans) – View (JSP) – and Controller (servlets). This will keep your mind stay organized.
Run Application
Execute the application by typing its URL: http://server:8080/mvc/randomize. Here’s the screenshot:


mbah_kaum
January 6, 2010
sip pak! tak cobo wes pak!
bpdp
January 6, 2010
Sip!
Fandi Akhmad
July 30, 2010
bapak , tutorialnya bagus
Saya mau tanya, pak…
<jsp:useBean id="randomNum" type=”beans.NumberBean”
scope=”request” />
yang saya tanyakan , type fungsinya ntuk apa?
Saya suda mencoba , eh error di
typenyaisna
December 10, 2010
maaf Pak, da contoh yg 2 tabel saling berelasi ga Pak?
bpdp
December 12, 2010
Nggak ada mbak