Home » Java programming language

Design Registration Form using Servlets and Mysql using MVC Pattern

By: Vanka Manikanth, on 12 JAN 2017

Here, we will learn how we can design a registration form using Java Servlets and MySql Database connectivity using MVC pattern?

The given code can be used for form submission using Servlets MVC pattern with MySql Database connectivity.


By using MVC pattern the performance would increase, code can be re-used for any application because here the controller, pojo and service logics are completely separated.

Here we have created three packages in order to make in MVC style. Namely, com.controller.form , com.service.logic, com.pojo.form


This is a welcome form from where we will take the values for registration from the user.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<title>REGISTRATION FORM </title>


	<form action="controller" method="post">
		<table cellspacing=10 cellpadding=10 id="regform" align="center">
		<tr><td colspan=2 align="justify">USER ID :</td><td><input type="text" name="userid" placeholder="Enter only digits" required="required"></td></tr>
		<tr><td colspan=2 align="justify">USERNAME:</td><td> <input type="text" name="username" placeholder="Enter Alphabetics only" required></td></tr>
		<tr><td colspan=2 align="justify">PASSWORD:</td><td> <input type="password" name="password" placeholder="Enter your password" required></td></tr>
		<tr><td colspan=2 align="justify">EMAIL:</td><td> <input type="email" name="email" placeholder="Enter your email" required></td></tr>
		<tr><td colspan=5 align="center"><button type="submit">REGISTER</button></td></tr></table>


This is a class where we creates the Database connection and returns the connection, so that we can avail the returned connection wherever is required.

package com.service.logic;

import java.sql.Connection;
import java.sql.DriverManager;

public class Dbconnection {

	public static Connection getConnection(){ //making a static connection,shares to all classes
		Connection con=null; // creating connection
		try {
		} catch (Exception e) {
			//throws an error if at all its unable to create an connection
System.out.println("unable to connect to the database");
		return con; // we return the connection and we can get the connection wherever needed.


This is a controller Servlet which operates the data between the service and pojo class.

package com.controller.form;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.pojo.form.Pojo;
import com.service.logic.*;

public class ControllerServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		PrintWriter out=resp.getWriter();
		try {
			String userid =req.getParameter("userid");
			int id= Integer.parseInt(userid);
			String username=req.getParameter("username");
			String pass=req.getParameter("password");
			String email=req.getParameter("email");
			//getting all the values from index.jsp
			Pojo pObject = new Pojo();
			pObject.setUsername(username);		//setting up the received values from index.jsp to setters and getters
			int checkFlag = ServiceLogic.save(pObject); //sending all the values of pojo reference to save method in ServiceLogic
				out.print("<h2 align='center'>SuccessFully Registered</h2>"); // if successfully executes save method
				out.print("<h2 align='center'> USER ID : "+ id+"</h2>");
				out.print("<h2 align='center'> USER NAME : "+username+"</h2>");
				out.print("<h2 align='center'> EMAIL  : "+ email +"</h2>");

				out.print("<p align='center'>Invalid User Details</p>");
				req.getRequestDispatcher("index.jsp").include(req, resp);

		} catch (Exception e) { // will throw an exception if at all user typed any language constraints.
			out.print("<p align='center'>Please enter Valid Details</p>");
			req.getRequestDispatcher("index.jsp").include(req, resp);


This is the class where we use the private variables and implements public setters and getters. Just binding the data received from user.

package com.pojo.form;

public class Pojo {
 // set up all the fields received from index.jsp to setters and getters.
	private int id;
	private String username,pass,email;
	public int getId() {
		return id;
	public void setId(int id) {
		this.id = id;
	public String getUsername() {
		return username;
	public void setUsername(String username) {
		this.username = username;
	public String getPass() {
		return pass;
	public void setPass(String pass) {
		this.pass = pass;
	public String getEmail() {
		return email;
	public void setEmail(String email) {
		this.email = email;


This is where the actual logic exists, here we get the connection from the Dbconnection class and insert the values into database. By separating the logic and we can use the same logic for standalone java application.

package com.service.logic;

import java.sql.Connection;
import java.sql.PreparedStatement;

import com.pojo.form.Pojo;

public class ServiceLogic{

	public static int save(Pojo pObject){
		int flag=0;
		try {
			Connection con=Dbconnection.getConnection(); //getting the connection method here from dbconnection
			PreparedStatement ps = con.prepareStatement("insert into reginfo values(?,?,?,?);");
			ps.setInt(1, pObject.getId());
			ps.setString(2, pObject.getUsername());//sending up the values received from user to the database table
			ps.setString(3, pObject.getPass());
			ps.setString(4, pObject.getEmail());
			flag=ps.executeUpdate(); //value changes if it is executed
		} catch (Exception e) {
		System.out.println("cannot able to insert");
		return flag;


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">


Was this page helpful? YES NO

Are you a blogger? Join our Blogging forum.

Comments and Discussions

We are using Google to publish ads on our website; Google has its own privacy policies. They may save log, cookies on your system. Google may also collect information of your system like IP address, region, city, country. For more details please go through the Google’s privacy policy.