I am learning JAVA EE.
Before i created my Task servlet, and DBManager with methods like GetTaskList,AddTask with existing data:
Static { data }. Everything worked perfectly.
Now i connected MySql (created table there). In “DBManager.servlet” i wrote methods to get and add tasks to “DBManager”. Data imports from MySql successfully, i can see imported table database in Intelij Idea.
But i doesn’t show data in “Home.jsp”.
It writes:”java.lang.NullPointerException: Cannot invoke “java.sql.Connection.prepareStatement(String)” because “kz.bitlab.servlets.DBManager.connection” is null” ?
Home.jsp worked perfectly,showed data when i used static data from DBManager. But when connected MySql it doesn’t show anything….
Home.servlet:
<code>package kz.bitlab.servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
@WebServlet(value = "/home")
public class home extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String description = request.getParameter("description");
String date = request.getParameter("date");
String category = request.getParameter("category");
DBManager.addTask(new Task(null, name, description, date, category));
response.sendRedirect("/home");
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
ArrayList<Task> task = DBManager.getTaskList();
request.setAttribute("task", task);
request.getRequestDispatcher("/home.jsp").forward(request, response);
<code>package kz.bitlab.servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
@WebServlet(value = "/home")
public class home extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String description = request.getParameter("description");
String date = request.getParameter("date");
String category = request.getParameter("category");
DBManager.addTask(new Task(null, name, description, date, category));
response.sendRedirect("/home");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
ArrayList<Task> task = DBManager.getTaskList();
request.setAttribute("task", task);
request.getRequestDispatcher("/home.jsp").forward(request, response);
}
}
</code>
package kz.bitlab.servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
@WebServlet(value = "/home")
public class home extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String description = request.getParameter("description");
String date = request.getParameter("date");
String category = request.getParameter("category");
DBManager.addTask(new Task(null, name, description, date, category));
response.sendRedirect("/home");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
ArrayList<Task> task = DBManager.getTaskList();
request.setAttribute("task", task);
request.getRequestDispatcher("/home.jsp").forward(request, response);
}
}
DBManager.servlet
<code>package kz.bitlab.servlets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
private static Connection connection;
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/Tasks?useUnicode=true&serverTimezone=UTC","root", "");
public static void addTask(Task task) {
PreparedStatement statement = connection.prepareStatement(""+
"INSERT INTO task_items(id,name,description,date,category)"+
statement.setString(1,task.getName());
statement.setString(2,task.getDescription());
statement.setString(3,task.getDate());
statement.setString(4,task.getCategory());
int rows = statement.executeUpdate();
public static ArrayList<Task> getTaskList() {
ArrayList<Task>task = new ArrayList<>();
PreparedStatement statement=connection.prepareStatement("SELECT * FROM task_items");
ResultSet resultSet=statement.executeQuery();
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
public static Task getTask(Long getId) {
PreparedStatement statement=connection.prepareStatement(""+
"SELECT id,name,description,date,category"+
" FROM task WHERE id=?");
statement.setLong(1, getId);
ResultSet resultSet=statement.executeQuery();
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
public static void deleteTask(Long id) {}
public static void saveTask(Task task) {}
<code>package kz.bitlab.servlets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class DBManager {
private static Connection connection;
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/Tasks?useUnicode=true&serverTimezone=UTC","root", "");
}catch (Exception e){
e.printStackTrace();
}
}
public static void addTask(Task task) {
try {
PreparedStatement statement = connection.prepareStatement(""+
"INSERT INTO task_items(id,name,description,date,category)"+
"VALUES (NULL,?,?,?,?)"+
"");
statement.setString(1,task.getName());
statement.setString(2,task.getDescription());
statement.setString(3,task.getDate());
statement.setString(4,task.getCategory());
int rows = statement.executeUpdate();
statement.close();
}catch (Exception e){
e.printStackTrace();
}
}
public static ArrayList<Task> getTaskList() {
ArrayList<Task>task = new ArrayList<>();
try {
PreparedStatement statement=connection.prepareStatement("SELECT * FROM task_items");
ResultSet resultSet=statement.executeQuery();
while(resultSet.next()){
task.add(new Task(
resultSet.getLong("id"),
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
));
}
statement.close();
}catch (Exception e){
e.printStackTrace();
}
return task;
}
public static Task getTask(Long getId) {
Task task = null;
try {
PreparedStatement statement=connection.prepareStatement(""+
"SELECT id,name,description,date,category"+
" FROM task WHERE id=?");
statement.setLong(1, getId);
ResultSet resultSet=statement.executeQuery();
if(resultSet.next()){
task = new Task(
resultSet.getLong("id"),
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
);
}
statement.close();
}catch (Exception e){
e.printStackTrace();
}
return task;
}
public static void deleteTask(Long id) {}
public static void saveTask(Task task) {}
}
</code>
package kz.bitlab.servlets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class DBManager {
private static Connection connection;
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/Tasks?useUnicode=true&serverTimezone=UTC","root", "");
}catch (Exception e){
e.printStackTrace();
}
}
public static void addTask(Task task) {
try {
PreparedStatement statement = connection.prepareStatement(""+
"INSERT INTO task_items(id,name,description,date,category)"+
"VALUES (NULL,?,?,?,?)"+
"");
statement.setString(1,task.getName());
statement.setString(2,task.getDescription());
statement.setString(3,task.getDate());
statement.setString(4,task.getCategory());
int rows = statement.executeUpdate();
statement.close();
}catch (Exception e){
e.printStackTrace();
}
}
public static ArrayList<Task> getTaskList() {
ArrayList<Task>task = new ArrayList<>();
try {
PreparedStatement statement=connection.prepareStatement("SELECT * FROM task_items");
ResultSet resultSet=statement.executeQuery();
while(resultSet.next()){
task.add(new Task(
resultSet.getLong("id"),
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
));
}
statement.close();
}catch (Exception e){
e.printStackTrace();
}
return task;
}
public static Task getTask(Long getId) {
Task task = null;
try {
PreparedStatement statement=connection.prepareStatement(""+
"SELECT id,name,description,date,category"+
" FROM task WHERE id=?");
statement.setLong(1, getId);
ResultSet resultSet=statement.executeQuery();
if(resultSet.next()){
task = new Task(
resultSet.getLong("id"),
resultSet.getString("name"),
resultSet.getString("description"),
resultSet.getString("date"),
resultSet.getString("category")
);
}
statement.close();
}catch (Exception e){
e.printStackTrace();
}
return task;
}
public static void deleteTask(Long id) {}
public static void saveTask(Task task) {}
}
Wanna show data from MySql to Home.jsp (Using Servlet in Java)