Java EE for php developer
Let’s walk through a basic CRUD + Login system in Java EE step-by-step, similar to what you might have done with PHP + MySQL.
We’ll use:
- JSP and Servlets for frontend and controllers
- JDBC for database access
- MySQL as the database
- Tomcat as the server (or another Java EE compatible server)
🔧 Project Structure
JavaEECRUD/
├── src/
│ └── com.example/
│ ├── model/
│ ├── dao/
│ ├── servlet/
├── WebContent/
│ ├── login.jsp
│ ├── dashboard.jsp
│ ├── user_form.jsp
│ └── list_users.jsp
└── web.xmlStep 1: Database
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
password VARCHAR(100)
);Step 2: User.java (Model)
package com.example.model;
public class User {
private int id;
private String name, email, password;
// Getters and setters
}Step 3: UserDAO.java (Data Access)
package com.example.dao;
import java.sql.*;
import java.util.*;
import com.example.model.User;
public class UserDAO {
private String jdbcURL = "jdbc:mysql://localhost:3306/yourdb";
private String jdbcUsername = "root";
private String jdbcPassword = "yourpassword";
private Connection getConnection() throws SQLException {
return DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword);
}
public User checkLogin(String email, String password) throws SQLException {
String sql = "SELECT * FROM users WHERE email=? AND password=?";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, email);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
User u = new User();
u.setId(rs.getInt("id"));
u.setName(rs.getString("name"));
return u;
}
}
return null;
}
public void insertUser(User user) throws SQLException {
String sql = "INSERT INTO users (name, email, password) VALUES (?, ?, ?)";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, user.getName());
stmt.setString(2, user.getEmail());
stmt.setString(3, user.getPassword());
stmt.executeUpdate();
}
}
// Add update, delete, list methods
}Step 4: LoginServlet.java
package com.example.servlet;
import com.example.dao.UserDAO;
import com.example.model.User;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
private UserDAO userDao;
public void init() {
userDao = new UserDAO();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String email = request.getParameter("email");
String password = request.getParameter("password");
try {
User user = userDao.checkLogin(email, password);
if (user != null) {
HttpSession session = request.getSession();
session.setAttribute("user", user);
response.sendRedirect("dashboard.jsp");
} else {
response.sendRedirect("login.jsp?error=true");
}
} catch (Exception e) {
throw new ServletException(e);
}
}
}Step 5: login.jsp
<form action="login" method="post">
Email: <input type="text" name="email" /><br>
Password: <input type="password" name="password" /><br>
<input type="submit" value="Login" />
</form>
<% if (request.getParameter("error") != null) { %>
<p style="color:red;">Login failed</p>
<% } %>Step 6: web.xml
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>To run this Java EE login + CRUD app, you’ll need to set up your development environment, configure your server, and deploy the app. Here’s a clear step-by-step guide to get you running from scratch — assuming you’re new to Java EE but familiar with web development from PHP.
✅ 1. Install Required Tools
Tool
Purpose
Download Link
JDK (Java 11+)
Java development kit
Apache Tomcat
Java EE-compatible web server
https://tomcat.apache.org/download-90.cgi
MySQL Server
Database
https://dev.mysql.com/downloads/
Eclipse IDE for Enterprise Java
IDE with support for JSP/Servlets
https://www.eclipse.org/downloads/packages/
(optional) MySQL Workbench
Visual DB admin
https://dev.mysql.com/downloads/workbench/
✅ 2. Set Up Your Database
Get New2026’s stories in your inbox
Join Medium for free to get updates from this writer.
Open MySQL or MySQL Workbench and run this:
sql
CopyEdit
CREATE DATABASE javaee_crud;
USE javaee_crud;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
password VARCHAR(100)
);
✅ 3. Create a Dynamic Web Project in Eclipse
- Open Eclipse.
- Go to File > New > Dynamic Web Project.
- Name it: JavaEECRUD.
- Target runtime: Select Apache Tomcat v9.0+ (configure if needed).
- Click Finish.
✅ 4. Add JDBC Driver (MySQL)
- Download the MySQL JDBC driver (mysql-connector-java-X.X.X.jar) from:
https://dev.mysql.com/downloads/connector/j/ - Add it to your project:
- Right-click project > Build Path > Configure Build Path.
- Add the JAR in Libraries > Classpath.
✅ 5. Create Folders and Files
Inside Eclipse:
- src/com.example.model/User.java
- src/com.example.dao/UserDAO.java
- src/com.example.servlet/LoginServlet.java
- WebContent/login.jsp
- WebContent/dashboard.jsp
- WebContent/WEB-INF/web.xml
Paste the code I provided earlier into these respective files.
✅ 6. Run the Application
- Right-click the project > Run As > Run on Server.
- Choose Tomcat and click Finish.
- Visit:
http://localhost:8080/JavaEECRUD/login.jsp
Use this to login, and you’ll be redirected to dashboard.jsp if successful.
🔐 Quick Test User Insert (for Login Test)
Insert a user manually to test login:
sql
CopyEdit
INSERT INTO users (name, email, password)
VALUES (‘Test User’, ‘test@example.com’, ‘1234’);









