📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Development Steps
- Create an Eclipse Dynamic Web Project
- Add Dependencies
- Project Structure
- MySQL Database Setup
- Create a JavaBean -
Employee.java
- Create a
EmployeeDao.java
- Create a
EmployeeServlet.java
- Create
employeeregister.jsp
- Create
employeedetail.jsp
- Demo
Step 1: Create an Eclipse Dynamic Web Project
To create a new dynamic web project in Eclipse:
- On the main menu, select
File > New > Project...
. - In the upcoming wizard, choose
Web > Dynamic Web Project
. - Click
Next
. - Enter the project name as
jsp-servlet-jdbc-mysql-example
. - Ensure that the target runtime is set to Apache Tomcat with the currently supported version.
Step 2: Add Dependencies
Add the latest release of the below JAR files to the lib
folder:
jakarta.servlet-api-6.1.0.jar
mysql-connector-java-8.0.13.jar
jakarta.servlet.jsp.jstl-api-3.0.0.jar
Add the following dependencies to your 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>net.javaguides.servlet.tutorial</groupId> <artifactId>java-servlet-tutorial</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>java-servlet-tutorial Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> </dependencies> <build> <finalName>java-servlet-tutorial</finalName> </build> </project>
Step 3: Project Structure
Here is the standard project structure for your reference:
Step 4: MySQL Database Setup
Create a database named mysql_database
in MySQL and then create an employee
table using the following DDL script:
CREATE TABLE `employee` ( `id` int(3) NOT NULL AUTO_INCREMENT, `first_name` varchar(20) DEFAULT NULL, `last_name` varchar(20) DEFAULT NULL, `username` varchar(250) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `address` varchar(45) DEFAULT NULL, `contact` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Step 5: Create a JavaBean - Employee.java
package net.javaguides.employeemanagement.bean; import java.io.Serializable; /** * JavaBean class used in JSP action tags. */ public class Employee implements Serializable { private static final long serialVersionUID = 1L; private String firstName; private String lastName; private String username; private String password; private String address; private String contact; // Getters and Setters public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getContact() { return contact; } public void setContact(String contact) { this.contact = contact; } }
Step 6: Create EmployeeDao.java
package net.javaguides.employeemanagement.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import net.javaguides.employeemanagement.bean.Employee; public class EmployeeDao { public int registerEmployee(Employee employee) throws ClassNotFoundException { String INSERT_USERS_SQL = "INSERT INTO employee (first_name, last_name, username, password, address, contact) VALUES (?, ?, ?, ?, ?, ?);"; int result = 0; Class.forName("com.mysql.cj.jdbc.Driver"); try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql_database?useSSL=false", "root", "root"); PreparedStatement preparedStatement = connection.prepareStatement(INSERT_USERS_SQL)) { preparedStatement.setString(1, employee.getFirstName()); preparedStatement.setString(2, employee.getLastName()); preparedStatement.setString(3, employee.getUsername()); preparedStatement.setString(4, employee.getPassword()); preparedStatement.setString(5, employee.getAddress()); preparedStatement.setString(6, employee.getContact()); System.out.println(preparedStatement); result = preparedStatement.executeUpdate(); } catch (SQLException e) { printSQLException(e); } return result; } private void printSQLException(SQLException ex) { for (Throwable e: ex) { if (e instanceof SQLException) { e.printStackTrace(System.err); System.err.println("SQLState: " + ((SQLException) e).getSQLState()); System.err.println("Error Code: " + ((SQLException) e).getErrorCode()); System.err.println("Message: " + e.getMessage()); Throwable t = ex.getCause(); while (t != null) { System.out.println("Cause: " + t); t = t.getCause(); } } } } }
Step 7: Create EmployeeServlet.java
package net.javaguides.employeemanagement.web; import java.io.IOException; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import net.javaguides.employeemanagement.dao.EmployeeDao; import net.javaguides.employeemanagement.bean.Employee; @WebServlet("/register") public class EmployeeServlet extends HttpServlet { private static final long serialVersionUID = 1L; private EmployeeDao employeeDao; public void init() { employeeDao = new EmployeeDao(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String firstName = request.getParameter("firstName"); String lastName = request.getParameter("lastName"); String username = request.getParameter("username"); String password = request.getParameter("password"); String address = request.getParameter("address"); String contact = request.getParameter("contact"); Employee employee = new Employee(); employee.setFirstName(firstName); employee.setLastName(lastName); employee.setUsername(username); employee.setPassword(password); employee.setAddress(address); employee.setContact(contact); try { employeeDao.registerEmployee(employee); } catch (Exception e) { e.printStackTrace(); } response.sendRedirect("employeedetails.jsp"); } }
Step 8: Create employeeregister.jsp
<%@ page language="java" contentType="text/html; charset=ISO-885 9-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <div align="center"> <h1>Employee Register Form</h1> <form action="<%= request.getContextPath() %>/register" method="post"> <table style="with: 80%"> <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>UserName</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Password</td> <td><input type="password" name="password" /></td> </tr> <tr> <td>Address</td> <td><input type="text" name="address" /></td> </tr> <tr> <td>Contact No</td> <td><input type="text" name="contact" /></td> </tr> </table> <input type="submit" value="Submit" /> </form> </div> </body> </html>
Step 9: Create employeedetails.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>User successfully registered!</h1> </body> </html>
Step 10: Demo
After following all the steps, you should be able to run your web application. Open your browser and navigate to http://localhost:8080/jsp-servlet-jdbc-mysql-example/employeeregister.jsp
. You should see the Employee Register Form, as shown in the image below:
Fill out the form and submit it. The form data will be stored in the MySQL database, and you will be redirected to employeedetails.jsp
with a success message.
This example demonstrates a simple web application using Servlet, JSP, JDBC, and MySQL, updated to use the latest Servlet Jakarta API.
Related Servlet Posts
- What is a Servlet in Java?
- Servlet Life Cycle
- Servlet Interface Example
- GenericServlet Class Example
- HttpServlet Class Example Tutorial
- HttpServlet doGet() Method Example
- HttpServlet doPost() Method Example
- @WebServlet Annotation Example
- @WebInitParam Annotation Example
- @WebListener Annotation Example
- @WebFilter Annotation Example
- @MultipartConfig Annotation Example
- How to Return a JSON Response from a Java Servlet
- Servlet Registration Form + JDBC + MySQL Database Example
- Login Form Servlet + JDBC + MySQL Example
- Servlet JDBC Eclipse Example Tutorial
- JSP Servlet JDBC MySQL CRUD Example Tutorial
- Servlet + JSP + JDBC + MySQL Example
- Registration Form using JSP + Servlet + JDBC + Mysql Example
- Login Form using JSP + Servlet + JDBC + MySQL Example
- JSP Servlet Hibernate CRUD Example
- JSP Servlet Hibernate Web Application
- Hibernate Registration Form Example with JSP, Servlet, MySQL
- Login Form using JSP + Servlet + Hibernate + MySQL Example
Comments
Post a Comment
Leave Comment