Create Maven Project
On the Eclipse, create a Maven project
Click Next button to select Workspace Location for project
Click Next button to select Archetype for project
Click Next button and enter Project Information:
- Group Id: LearnJSPServletWithRealApps
- Artifact Id: LearnJSPServletWithRealApps
- Package: com.demo
Click Finish button to finish create Maven project
Configure pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>LearnJSPServletWithRealApps</groupId>
<artifactId>LearnJSPServletWithRealApps</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Learn JSP-Servlet with Real Apps</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>LearnJSPServletWithRealApps</finalName>
</build>
</project>
Configure web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Add Image Files
Create new folder named assets in src\main\webapp folder. In assets folder, create new folder named images and copy images need use in project to images folder.
Create Entity
Create new package named com.demo.entities. In this package, create new java class named Product.java as below:
package com.demo.entities;
public class Product {
private String id;
private String name;
private String photo;
private double price;
private int quantity;
public Product() {
}
public Product(String id, String name, String photo, double price, int quantity) {
this.id = id;
this.name = name;
this.photo = photo;
this.price = price;
this.quantity = quantity;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
Create Servlet
Create new package named com.demo.servlets. In this package, create new Servlet named DemoServlet as below:
package com.demo.servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.demo.entities.Product;
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public DemoServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Product product = new Product("p01", "name 1", "thumb1.gif", 20, 3);
request.setAttribute("product", product);
request.getRequestDispatcher("demo/index.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
Create View
Create new folder named demo in src\main\webapp folder. In this folder, create new JSP file named index.jsp as below:
Index JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" isELIgnored="false" %>
<html>
<head>
<title>Demo Page</title>
</head>
<body>
<h3>Product Info</h3>
<table border="1" cellpadding="2" cellspacing="2">
<tr>
<td>Id</td>
<td>${product.id }</td>
</tr>
<tr>
<td>Name</td>
<td>${product.name }</td>
</tr>
<tr>
<td valign="top">Photo</td>
<td>
<img src="${pageContext.request.contextPath }/assets/images/${product.photo }" width="120">
</td>
</tr>
<tr>
<td>Price</td>
<td>${product.price }</td>
</tr>
<tr>
<td>Quantity</td>
<td>${product.quantity }</td>
</tr>
<tr>
<td>Total</td>
<td>${product.price * product.quantity }</td>
</tr>
</table>
</body>
</html>
Redirect Page
Create new JSP file named index.jsp in src\main\webapp folder. This file will redirect to DemoServlet as below:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<jsp:forward page="demo"></jsp:forward>
Structure of Maven Project
Run Application
Select project, right click and select Run As/Run on Server menu
Access DemoServlet with following urls as below:
- http://localhost:8081/LearnJSPServletWithRealApps
- http://localhost:8081/LearnJSPServletWithRealApps/demo
Output