Q20
Question 20
Last updated
Question 20
Last updated
Created RegisterServlet.java which handles url patterns like "/Q20" and "/register" and then renders the page register.jsp which presents a form to the user to enter details and lets submit to "/Q20/register" which is then handled by RegistrationServlet and it validates user by age (calculated from the year provided in Date Of Birth) i.e. users with age more than 18 will be able to register and will be taken to registration.jsp otherwise they will see some registration failed page.
<%--
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 {
}
}
Try or Test The Corresponding Code Here