Project Description

This Project-Based Learning (PBL) plan is designed for students to develop a Sales Website using Java JSP (Jakarta EE) with Maven, running on Tomcat, and styled with Bootstrap. The project follows a step-by-step, hands-on approach over 17 epoches, guiding students from environment setup to deployment.

The primary objectives are:

The project emphasizes practical coding rather than theory, with each epoch covering a specific milestone. Students will:

The course is divided into three main phases:

  1. Foundation Setup – Installing and configuring all tools, creating the base project, ensuring database connectivity.
  2. Core Features Implementation – Building the sales website with login, CRUD, filters, and UI.
  3. Enhancement & Deployment – Styling, refining code structure, testing, and deployment.

Project Requirements

1. Environment

2. Libraries & Frameworks

3. Project Scope

Web-based sales application with:

Jakarta JSP Maven Web App

| Epoch | Title | Description | | —— | ———————————————— | ———————————————————————————————————————————————————————————————————– | | 1 | Project Introduction & Environment Setup | Overview of project objectives (E-Commerce Web App), required skills, and methodology. Install and configure JDK 1.8_231, NetBeans 13, Tomcat 10.0.23 with Maven Web Application template. | | 2 | Switching NetBeans Maven Template to Jakarta | Demonstrate replacing javax.* imports with jakarta.* equivalents in the NetBeans Maven Web Application template (Tools → Templates → Web → Servlets). Verify compatibility with Tomcat 10. | | 3 | SQL Server Configuration | Enable TCP/IP protocol, set port (1433), configure mixed authentication mode, enable SA account, and test connection with SSMS. | | 4 | JDBC Driver Integration & DB Setup | Add SQL Server JDBC driver dependency to pom.xml. Create SQL Server database for the project. Set up sample tables (users, products, orders). | | 5 | Bootstrap Integration | Add Bootstrap via CDN in JSP pages. Apply a base layout to improve UI styling. | | 6 | Hardcoded Login/Logout (Session or Cookie) | Create a login form (HTML + JSP). Validate user credentials using hardcoded values. Implement session or cookie-based login/logout. Show/hide content based on login status. | | 7 | Login with Database (JSP Model 1) | Modify login form to validate credentials from the users table using JDBC queries. |

Migration to MVC (JSP model 2)

Epoch Title Description
8 Introduction to MVC in JSP/Servlets Explain MVC structure and its benefits over Model 1.
9 Project Restructuring to MVC Create model, view, controller packages. Move DB logic to DAO classes, servlets as controllers, and JSP as pure views.
10 Login/Logout in MVC Reimplement login/logout flow using MVC pattern with DAO and servlet-based validation.
11 JSTL & Expression Language (EL) Replace Java scriptlets in JSP pages with JSTL tags and EL expressions for cleaner code.
12 Product CRUD in MVC Move product management from JSP scriptlets to MVC structure.
13 Shopping Cart in MVC Store cart data in session via servlet controllers, display with JSP views.
14 Order Management in MVC Handle order creation, database insertion, and order history retrieval.
15 Error Handling & Validation Add server-side validation and error pages (404, 500).
16 Filter Implementation (Authentication) Implement a servlet filter to restrict access to certain JSP pages unless logged in.