Mvc Java Example With Database

JSP Servlet MVC Example with Database

In this quick article, we'll create a small web application that implements theModel View Controller (MVC) design pattern using basic Servlets and JSPs.

Model-View-Controller (MVC) is a pattern used in software engineering to separate the application logic from the user interface. As the name implies, the MVC pattern has three layers.

TheModel defines the business layer of the application, theController manages the flow of the application, and theView defines the presentation layer of the application.

Video

This tutorial is explained in the below Youtube Video. Subscribe to my youtube channel to learn more about Spring boot at Java Guides - YouTube Channel.

Model-View-Controller (MVC) Architecture

From the above diagram, here is MVC flow:

1. The web browser sends an HTTP request to a controller (Servlet).

2. The controller (servlet) gets a model object with data from the database or other sources.

3. The controller(servlet) redirects to a web page (JSP) with model data.

4. Finally, the web page(JSP) will be displayed with model data on the browser.

Model-View-Controller Layers

  1. The Model Layer - This is the data layer that contains the business logic of the system, and also represents the state of the application. It's independent of the presentation layer, the controller fetches the data from the Model layer and sends it to the View layer.

  2. The Controller Layer - The controllerlayer acts as an interface betweenViewandModel. It receives requests from theViewlayer and processes them, including the necessary validations.

  3. The View Layer - This layer represents the output of the application, usually some form of UI. The presentation layer is used to display theModeldata fetched by theController.

Java MVC Example using JSP, Servlet with Database Example

To implement a web application based on the MVC design pattern, we'll create anEmployee Registration  module usingJSP,Servlet,JDBC, andMySQL database.

EmployeeServlet class will act as aController, and for the presentation layer, we'll createemployees.jsp page.

Before getting started, let's first set up the database.

1. MySQL Database Setup

Let's create a database named "mysql_database" in MySQL. Let's create an employee table using below DDL script:

                  CREATE                  TABLE                  `employee` (                                      `id`                                    int(3)                  NOT NULL,                                      `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;                  SELECT                  *                  FROM                  mysql_database.employee;                

2. Model Layer

Let's create theEmployee class which will act as ourModel class.

Employee

                package                net.javaguides.jsp.jdbc.bean;                import                java.io.Serializable;                /**                                  * JavaBean class used in jsp action tags.                                  *                  @author                  Ramesh Fadatare                                  */                                public                class                Employee                implements                Serializable                {                /**                                  *                                                  */                                private                static                final                long                serialVersionUID                =                1                L;                private                String                firstName;                private                String                lastName;                private                String                username;                private                String                password;                private                String                address;                private                String                contact;                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;     } }

3. DAO Layer

EmployeeDao.java

Let's create EmployeeDao class that contains JDBC code to connect with the MySQL database.

Add the following code to anEmployeeDao class:

                  package                  net.javaguides.jsp.jdbc.database;                  import                  java.sql.Connection;                  import                  java.sql.DriverManager;                  import                  java.sql.PreparedStatement;                  import                  java.sql.SQLException;                  import                  net.javaguides.jsp.jdbc.bean.Employee;                  public                  class                  EmployeeDao                  {                  public                  int                  registerEmployee(Employee                  employee)                  throws                  ClassNotFoundException                  {                  String                  INSERT_USERS_SQL                  =                                      "INSERT INTO employee"                                    +                                      "                    (id, first_name, last_name, username, password, address, contact) VALUES                    "                                    +                                      "                    (?, ?, ?, ?, ?,?,?);"                  ;                  int                  result                  =                  0;                  Class                  .forName(                    "com.mysql.jdbc.Driver"                  );                  try                  (Connection                  connection                  =                  DriverManager                  .getConnection(                    "jdbc:mysql://localhost:3306/mysql_database?useSSL=false"                  ,                                      "root"                  ,                                      "root"                  );                                      //                    Step 2:Create a statement using connection object                  PreparedStatement                  preparedStatement                  =                  connection.prepareStatement(INSERT_USERS_SQL)) {             preparedStatement.setInt(1,                  1);             preparedStatement.setString(2, employee.getFirstName());             preparedStatement.setString(3, employee.getLastName());             preparedStatement.setString(4, employee.getUsername());             preparedStatement.setString(5, employee.getPassword());             preparedStatement.setString(6, employee.getAddress());             preparedStatement.setString(7, employee.getContact());                  System                  .out.println(preparedStatement);                                      //                    Step 3: Execute the query or update query                  result                  =                  preparedStatement.executeUpdate();          }                  catch                  (SQLException                  e) {                                      //                    process sql exception                  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();                 }             }         }     } }

4. Controller Layer

Let's create an EmployeeServlet class to process HTTP request parameters and redirect to the appropriate JSP page after request data stored in the database:

                package                net.javaguides.employeemanagement.web;                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                net.javaguides.employeemanagement.dao.EmployeeDao;                import                net.javaguides.employeemanagement.model.Employee;                /**                                  *                  @email                  Ramesh Fadatare                                  */                                @WebServlet(                  "/register"                )                public                class                EmployeeServlet                extends                HttpServlet                {                private                static                final                long                serialVersionUID                =                1                L;                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.setContact(contact);         employee.setAddress(address);                try                {             employeeDao.registerEmployee(employee);         }                catch                (Exception                e) {                                  //                  TODO Auto-generated catch block                e.printStackTrace();         }          response.sendRedirect(                  "employeedetails.jsp"                );     } }

5. View Layer

employeeregister.jsp

Let's design an employee registration HTML form with the following fields:

  • firstName
  • lastName
  • username
  • password
  • address
  • contact
<%@                    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>  <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>

employeedetails.jsp

After an employee successfully registered then this page show a successful message on screen:

<%@                    page                    language=                      "java"                                        contentType=                      "text/html; charset=ISO-8859-1"                                        pageEncoding=                      "ISO-8859-1"                    %> <%@page                    import=                      "net.javaguides.employeemanagement.dao.*"                    %> <!DOCTYPE html> <html> <head> <meta                    charset=                      "ISO-8859-1"                    > <title>Insert title here</title> </head> <body>  <h1>User successfully registered!</h1> </body> </html>

6. Demo

It's time to see a demo of the above development. Deploy this web application to the tomcat server.

Employee Registration

Registration Success Page

Conclusion

In this tutorial, we've learned about the MVC i.e.Model View Controller architecture, and we focused on how to implement a simple MVC web application using JSP and Servlet.

Related Servlet + JSP + JDBC + MySQL Examples

Free Spring Boot Tutorial | Full In-depth Course | Learn Spring Boot in 10 Hours


Watch this course on YouTube at Spring Boot Tutorial | Fee 10 Hours Full Course

garnerunted1959.blogspot.com

Source: https://www.javaguides.net/2020/01/jsp-servlet-mvc-example-with-database.html

0 Response to "Mvc Java Example With Database"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel