Labsheet 6A
Labsheet 6A
3. Project Structure
Create project structure or packaging structure as per the below screenshot:
4. MySQL Database Setup
Let's create a database named "demo" in MySQL:
Note: Hibernate will create users tables automatically. registered users so we will use the same users table to authenticate a User in this
example.
package com.pu;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "users")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "user_name")
private String username;
@Column(name = "password")
private String password;
UserDao.java
package com.pu;
import org.hibernate.Session;
import org.hibernate.Transaction;
import java.util.Properties;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.service.ServiceRegistry;
settings.put(Environment.SHOW_SQL, "true");
settings.put(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread");
settings.put(Environment.HBM2DDL_AUTO, "create-drop");
configuration.setProperties(settings);
configuration.addAnnotatedClass(User.class);
} catch (Exception e) {
e.printStackTrace();
}
}
return sessionFactory;
}
}
8. Create a UserController.java
Now, let's create UserController (servlet) that acts as a page controller to handle all requests from the client:
package com.pu;
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 jakarta.servlet.RequestDispatcher;
import java.io.*;
/**
* Servlet implementation class UserController
*/
@WebServlet("/register")
public class UserController extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserDao userDao;
/**
* @see HttpServlet#HttpServlet()
*/
public UserController() {
super();
// TODO Auto-generated constructor stub
}
public void init() {
userDao = new UserDao();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
response.sendRedirect("register.jsp");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
register(request, response);
}
private void register(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
String firstName =
request.getParameter("firstName");
String lastName =
request.getParameter("lastName");
String username =
request.getParameter("username");
String password =
request.getParameter("password");
User user = new User();
user.setFirstName(firstName);
user.setLastName(lastName);
user.setUsername(username);
user.setPassword(password);
userDao.saveUser(user);
RequestDispatcher dispatcher =
request.getRequestDispatcher("register-success.jsp");
dispatcher.forward(request, response);
}
• firstName
• lastName
• username
• password
<%@ 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>
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css
/bootstrap.min.css"
integrity="sha384-
ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2M
Zw1T"
crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row text-center" style="color: tomato;">
<h2>User Registration with JSP, Servlet and Hibernate</h2>
</div>
<hr>
<div class="row col-md-10 col-md-offset-3">
<form action="<%=request.getContextPath()%>/register"
method="post">
<div class="form-group">
<label for="uname">First Name:</label> <input
type="text"
class="form-control" id="uname" placeholder="First
Name"
name="firstName" required>
</div>
<div class="form-group">
<label for="uname">Last Name:</label> <input
type="text"
class="form-control" id="uname" placeholder="last
Name"
name="lastName" required>
</div>
<div class="form-group">
<label for="uname">User Name:</label> <input
type="text"
class="form-control" id="username" placeholder="User
Name"
name="username" required>
</div>
<div class="form-group">
<label for="uname">Password:</label> <input
type="password"
class="form-control" id="password"
placeholder="Password"
name="password" required>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css
/bootstrap.min.css"
integrity="sha384-
ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2M
Zw1T"
crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row col-md-10 col-md-offset-3">
<div class="card card-body">
<h1>User successfully registered!</h1>
</div>
</div>
</div>
</body>
</html>