🚀 Spring Boot MVC Student Form Management
A Student Registration & Management Web Application built using Spring Boot, Spring MVC, JSP, JSTL, and H2 Database.
This project demonstrates how to build a complete form-based web application with data persistence and data viewing functionality using Spring MVC architecture.
📌 Project Overview
This application allows users to:
- 📝 Register students through a web form
- 💾 Store student data in an H2 database
- 📊 View all registered students in a table format
The project follows the MVC (Model–View–Controller) architecture.
✨ Features
🔹 Core Features:
- 🧾 Student Registration Form
- 🚻 Gender selection using radio buttons
- 📚 Course selection using dropdown
- ⏰ Multiple timing selection using checkboxes
- 📩 Form submission handled by Spring MVC
🆕 Newly Added Features:
- 👀 View all registered students
- 🔁 Dynamic student table using JSTL <c:forEach>
- 🔢 Serial number generation using loop index
- 🔗 Navigation between pages (Add Student ↔ View Students)
- 📥 Data fetched from database and displayed in UI
🛠 Tech Stack
🔹 Backend:
- ☕ Java 21
- 🌱 Spring Boot
- 🧩 Spring MVC
- 🗄 Spring Data JPA
🔹 Frontend:
- 🖥 JSP (Java Server Pages)
- 🔄 JSTL (Jakarta Standard Tag Library)
- 🧷 Spring Form Tags
🔹 Database:
- 🗃 H2 In-Memory Database
🔹 Build Tool:
- 🔧 Maven
🔹 Server:
- 🌐 Embedded Apache Tomcat
🏗 Project Architecture
Client (Browser). ↓
Spring MVC Controller. ↓
Spring Data JPA Repository. ↓
🔄 Application Workflow
📝 Student Registration:
- User opens the registration page
- Form data (courses, timings) is loaded
- User fills and submits the form
- Controller processes the data
- Data is converted to Entity
- Saved into H2 database
- ✅ Success message displayed
📊 View Students:
- User clicks "View Students"
- Controller fetches all records from DB
- Data is passed to JSP
- 🔁 JSTL displays data in table format
💡 Key Concepts Implemented
- 🧠 Spring MVC Form Handling
- 🔗 Model Binding
- 💉 Dependency Injection (@Autowired)
- 🗂 JPA Entity Mapping
- 🧩 Repository Pattern
- 🔄 JSP + JSTL Integration (Jakarta)
- 📊 Dynamic Data Rendering using <c:forEach>
📚 Learning Outcomes
- 📌 Understanding Spring MVC architecture
- 🧾 Handling form data using Spring Boot
- 🖥 Using JSP with Jakarta libraries
- 🔄 Integrating JSTL with Spring Boot
- 🗄 Mapping Java objects to database tables using JPA
- 🔗 Implementing Controller → Repository → Database flow
- 📊 Displaying dynamic data in JSP
- 🐞 Debugging JSTL and Jakarta migration issues
🚀 Future Improvements
- ✏️ Edit student details
- ❌ Delete student records
- ✅ Add form validation
- 📄 Pagination for student list
- 🐬 Integrate MySQL/PostgreSQL
- 🔌 Convert to REST API
- ⚛️ Build frontend using React
👨💻 Author
Raju Chowdhury
B.Tech Computer Science and Engineering (3rd Year)
⭐ Project Highlights
- 🔥 End-to-end MVC application
- 🗄 Database integration using JPA
- 📊 Dynamic UI rendering using JSTL
- 🧱 Clean layered architecture
- 🛠 Real-world debugging experience