Free tutorials for Java, Eclipse and Web programming



Follow me on twitter

7. JSP's and Servlets

7.1. Create Project

This example will demonstrate the usage of JSPs for the display and a servlet as the controller for a web application. The servlet will dispatch the request to the correct JSP.

Create the Dynamic Web Project "de.vogella.wtp.jsp". and the package "de.vogella.wtp.jsp"

7.2. Create the Controller (servlet)

Create a new servlet "Controller" in the package "de.vogella.wtp.jsp.controller".

				
package de.vogella.wtp.jsp.controller;

import java.io.IOException;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Controller
 */
public class Controller extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static String DELETE_JSP = "/Delete.jsp";
	private static String EDIT_JSP = "/Edit.jsp";
	private static String SHOWALL_JSP = "/ShowAll.jsp";

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String forward="";
		// Get a map of the request parameters
		@SuppressWarnings("unchecked")
		Map parameters = request.getParameterMap();
		if (parameters.containsKey("delete")){
			forward = DELETE_JSP;
		} else if (parameters.containsKey("edit")){
			forward = EDIT_JSP;
		} else {
			forward = SHOWALL_JSP;
		}
		RequestDispatcher view = request.getRequestDispatcher(forward);
		view.forward(request, response);
	}
}

			

This controller will check which parameters has been passed to the servlet and then forward the request to the correct JSP.

7.3. Create the Views (JSP)

In the folder "WebContent" create the new JSP "ShowAll" with the following code.

				
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Show all names</title>
</head>
<body>


<form method="GET" action='Controller' name="showall">
<table>
	<tr>
		<td><input type="checkbox" name="id1" /></td>
		<td>Jim</td>
		<td>Knopf</td>
	</tr>
	<tr>
		<td><input type="checkbox" name="id2" /></td>
		<td>Jim</td>
		<td>Bean</td>
	</tr>
</table>

<p><input type="submit" name="delete" value="delete" />&nbsp; 
   <input type="submit" name="edit" value="edit" />&nbsp; 
	<input type="reset"
	value="reset" /></p>
</form>



</body>
</html>
			

Create the JSP "Delete.jsp".

				
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

Delete successful
<form method="GET" action='Controller' name="delete_success"><input
	type="submit" value="back"></form>
</body>
</html>

			

Create the JSP "Edit.jsp".

				
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>


<form method="GET" action='Controller' name="edit">
<table>
	<tr>
		<td>First name:</td>
		<td><input type="text" name="firstName"></td>
	</tr>
	<tr>
		<td>Last name:</td>
		<td><input type="text" name="lastName"></td>
	</tr>
	<tr>
		<td><input type="submit" value="save"> <input
			type="reset" value="reset"> <input type="submit" value="back">
		</td>
	</tr>
</table>
</form>

</body>
</html>
			

7.4. Run it

Run your new application by running "ShowAll.jsp" on the server. You should be able to navigate between the pages.