Q20
Question 20
Validate User input entered in a form. The input must include Name, DOB, Email ID, Lucky Number, Favourite food etc.
Code
<%--
  Created by IntelliJ IDEA.
  User: HP
  Date: 24-04-2021
  Time: 15:20
  To change this template use File 
  | Settings 
  | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" 
language="java" %>
<html>
<head>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
    <title>Registration Form | JSP-3</title>
</head>
<body>
<div style="text-align: center;">
    <div class="container-fluid">
        <h1>Registration Form | JSP-3</h1>
    </div>
</div>
</div>
<form method="post" action="/Q20/register">
    <div class="form-group">
        <div class="container-fluid mt-5 ">
            <div class="container mt-2">
                <label for="fname">First Name</label>
            </div>
            <div class="container mt-2">
                <input type="text" 
                class="form-control w-75 p-3" 
                id="fname" 
                name="fname" 
                placeholder="Enter First Name" required>
            </div>
            <div class="container mt-2">
                <label for="lname">Last Name</label>
            </div>
            <div class="container mt-2">
                <input type="text" 
                class="form-control w-75 p-3" 
                id="lname" 
                name="lname" 
                placeholder="Enter Last Name">
            </div>
            <div class="container mt-2">
                <label for="email">Email Address</label>
            </div>
            <div class="container mt-2">
                <input type="email" 
                class="form-control w-75 p-3" 
                id="email" name="email" 
                placeholder="[email protected]" 
                required>
            </div>
            <div class="container mt-2">
                <label for="favfood">Favorite Food</label>
            </div>
            <div class="container mt-2">
                <input type="text" 
                class="form-control w-75 p-3" 
                id="favfood" 
                name="favfood" 
                placeholder="Something Delicious">
            </div>
            <div class="container mt-2">
            <label for="lnum">Lucky Number</label>
        </div>
            <div class="container mt-2">
                <input type="number" 
                class="form-control w-75 p-3" 
                id="lnum" 
                name="lnum" 
                placeholder="Your Magic Number">
            </div>
            <div class="container mt-2">
                <label for="dob">Date Of Birth</label>
            </div>
            <div class="container mt-2">
                <input type="date" 
                class="form-control w-75 p-3" 
                id="dob" name="dob" 
                placeholder="01/01/1950" 
                required>
            </div>
            <div class="form-check container mt-2" required>
                <div class="container mt-4">
                    <input 
                    class="form-check-input" 
                    type="radio" 
                    name="gender" 
                    id="male" 
                    value="M">
                    <label 
                    class="form-check-label" 
                    for="male">Male
                    </label><br>
                    <input 
                    class="form-check-input" 
                    type="radio" 
                    name="gender" 
                    id="female" 
                    value="F">
                    <label 
                    class="form-check-label" 
                    for="female">Female
                    </label>
                </div>
            </div>
            <div class="container mt-3 mx-10">
                <input type="submit" 
                formmethod="post" 
                class="btn btn-primary" 
                value="Register">
            </div>
        </div>
    </div>
</form>
<div class="card-footer mt-5 text-center">
    <div class="row align-items-start">
        <div class="col-6">
            <div class="container col-lg-6">
                <a class="btn btn-primary" 
                onclick="history.back(-1)" 
                role="button">Back</a>
            </div>
        </div>
        <div class="col-6">
            <div class="container col-lg-6">
                <a class="btn btn-primary" 
                href="http://localhost:8080/" 
                role="button">Home Page</a>
            </div>
        </div>
    </div>
</div>
</body>
</html>
Download register.jsp
<%--
  Created by IntelliJ IDEA.
  User: HP
  Date: 24-04-2021
  Time: 16:00
  To change this template use File 
  | Settings 
  | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" 
language="java" %>
<html>
<head>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
    <title>Registration Successful | JSP-3</title>
</head>
<body>
<div style="text-align: center;">
    <div class="container-fluid">
        <h1>Registration Successful | JSP-3 </h1>
    </div>
</div>
<div class="container-fluid mt-5 ">
    <div class="container mt-2">
        Hello <b>${fname} ${lname},</b><br>
        Your registration was successful<br><br>
        <b>Your entered credentials were:<br></b><br>
        Full Name: ${fname} ${lname},<br><br>
        Date of Birth: ${dob},<br><br>
        Registered Email-ID: ${email},<br><br>
        Calculated age: ${age}<br><br>
        Favorite Food: ${favfood}<br><br>
        Lucky Number: ${lnum}
    </div>
    <div class="card-footer mt-5 text-center">
        <div class="row align-items-start">
            <div class="col-6">
                <div class="container col-lg-6">
                    <a class="btn btn-primary"  
                    onclick="history.back(-1)" 
                    role="button">Back</a>
                </div>
            </div>
            <div class="col-6">
                <div class="container col-lg-6">
                    <a class="btn btn-primary" 
                    href="http://localhost:8080/" 
                    role="button">Home Page</a>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
package com.example.ITJSP;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Objects;
import javax.servlet.annotation.*;
@WebServlet(name = "RegistrationServlet", 
value = "/RegistrationServlet", 
urlPatterns = {"/Q20/register"})
public class RegistrationServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request,
     HttpServletResponse response) throws ServletException,
      IOException {
        getServletContext().getRequestDispatcher(
        "/registration.jsp").forward(request,response);
    }
    @Override
    protected void doPost(HttpServletRequest request,
     HttpServletResponse response) throws ServletException,
      IOException {
        String fname = request.getParameter("fname");
        String lname = request.getParameter("lname");
        String email = request.getParameter("email");
        String dob = request.getParameter("dob");
        String favfood = request.getParameter("favfood");
        String lnum = request.getParameter("lnum");
        String s_age = dob.substring(0, Math.min(dob.length(), 4));
        int age = 2021 - Integer.parseInt(s_age);
        if (age >=18) {
            request.setAttribute("fname", fname);
            request.setAttribute("lname", lname);
            request.setAttribute("email", email);
            request.setAttribute("age", age);
            request.setAttribute("dob", dob);
            request.setAttribute("favfood", favfood);
            request.setAttribute("lnum", lnum);
            doGet(request, response);
        } else {
            response.setContentType("text/html");
            // Hello
            PrintWriter out = response.getWriter();
            out.println("<html><head>\n" +
                    "<link href=\"https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6\" crossorigin=\"anonymous\">\n" +
                    "\n" +
                    "<title>Registration Failed | JSP-3</title>\n" +
                    "</head><body>");
            out.println("<div style=\"text-align: center;\">\n" +
                    "\n" +
                    "<div class=\"container-fluid\">\n" +
                    "<h1>Registration Failed | JSP-3 </h1>\n" +
                    "\n" +
                    "</div>\n" +
                    "</div>");
            out.println("<div class=\"container-fluid mt-5 \">\n" +
                    "    <div class=\"container mt-2\">");
            out.println("<h3> OOPS!!!, Sorry we couldn't register you account because your age: "
            + age +" is < 18.<br><br>" +
                    "<center>You are not an adult.</center></h1></div></div>");
            out.println("</body></html>");
        }
    }
}
package com.example.ITJSP;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "RegisterServlet", 
value = "/RegisterServlet", urlPatterns = 
{"/Q20","/register"})
public class RegisterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request,
     HttpServletResponse response) throws ServletException,
      IOException {
        getServletContext().getRequestDispatcher(
        "/register.jsp").forward(request,response);
    }
    @Override
    protected void doPost(HttpServletRequest request,
     HttpServletResponse response) throws ServletException,
      IOException {
    }
}
Output







Try or Test The Corresponding Code Here
Last updated