Jsp e servlets

Estou fazendo um curso de Jsp e ServLets da Rlsystem e antes de relatar o meu problema já digo que comecei vários outros dessa empresa e não recomendo pra ninguém. Não dão assistência nenhuma, e todo código dá erros, e vc fica com as aulas paradas, sem poder avançar. Vc paga os cursos por um ano, mas no final não termina nada. Assistência zero.
Nesse caso específico, estou na aula 6, e não consigo fazer um projeto do site funcionar pois não conecta ao banco de dados nem a pau. Sei que pode ser um problema com o mysql do meu pc, mas como alguém que está fazendo curso pode resolver um problema tão complexo? O meu formulário salva os dados numa tabela mysql, mas quando clico no botão cadastrar, retorna a seguinte mensagem:
Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
E não salva nada. Já fiz com o meu código, que digitei no eclipse, e com o código fonte que baixei do site, e dá o mesmo erro. O MySQL tá instalado e rodando, o banco de dados foi criado e a tabela também, e aparentemente é algum problema de comunicação, que não consigo descobrir. Abre o formulário no navegador, vc digita os dados, clica em enviar, e retorna esse erro, e não grava nada.
Então gostaria de superar esse problema pra poder avançar com esse projeto, pois já é o terceiro que começo e trava por algum problema desse tipo que fica sem assistência. Segue o código pra que dêem uma olhada, embora eu ache que o problema é só comunicação com o banco.
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class NovoChamadoServlet extends HttpServlet {
	
    

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			PrintWriter out = response.getWriter();
			out.println("<html>");
			out.println("<head>");
			out.println("<title>Novo Chamado</title>");
			out.println("</head>");
			out.println("<body>");
			
			out.println("<h1>Preencha as informações do chamado</h1>");
			out.println("<hr/>");
			out.println("<form method='POST'>");
			out.println("Título: <br><input type = 'text' name='txtTitulo'>");
			out.println("<br>");
			out.println("Conteúdo:<br> <textarea name='txtConteudo' rows='10' cols='40'></textarea>");
			out.println("<br>");
			out.println("<input type='submit' value='Abrir Chamado'>");
			out.println("</form>");
			
			
			out.println("<br>");
			out.println("<a href ='http://localhost:8080/Chamados/ListarChamados'>Listar Chamados</a>");
			out.println("<br>");
			out.println("<a href ='/Logoff'>Sair</a>");
			out.println("</body>");
			out.println("</html>");
		}catch (IOException e) {
			
		}
	
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			PrintWriter out = response.getWriter();
		
			out.println("<hr/>");
			String titulo = request.getParameter("txtTitulo");
			String conteudo = request.getParameter("txtConteudo");
				if(titulo.trim().length() < 4) {
					out.println("Preencha o campo titulo...");
				}else if(conteudo.trim().length() < 4){
					out.println("Preencha o campo Conteudo");
				}else {
					try {
						Class.forName("com.mysql.jdbc.Driver");
						String SQL = "INSERT INTO chamados (titulo, conteudo) VALUES (";
						SQL += " '"+ titulo +"', '"+ conteudo +"') ";
						try {
							Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/chamados_rlsystem", "root", "neto72");
							
							PreparedStatement pstm = conn.prepareStatement(SQL);
							
							//Date dataSQL = new Date(new java.util.Date().getTime());
							
							//SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd");
							// dt.format(data);
						
							pstm.setString(1, titulo);
							pstm.setString(2, conteudo);
							//pstm.setDate(3, dataSQL);
							
							pstm.execute();
							
							pstm.close();
							
							conn.close();
						}catch (SQLException e) {
							out.println("Problema no banco de dados: " + e.getMessage());
						}
					}catch(ClassNotFoundException ex) {
						out.println("Problema ao carregar o Driver de Conexão!");
					}
				}
		
		
		
		
	}

}

Se você usa PreparedStatement, então você precisa usar ? nos parâmetros da String da query.

// com essa query
String SQL = "INSERT INTO chamados (titulo, conteudo) VALUES ( ?, ? )";

// você vai setar os parâmetros assim
pstm.setString(1, titulo);   // valor da primeira interrogação
pstm.setString(2, conteudo); // valor da segunda interrogação
1 curtida

Fiz as alterações, mas dá o mesmo erro. Fica parecendo que não comunica com mysql, e aparentemente ele tá instalado tudo certinho. Tem ficar em algum local específico essa instalação do mysql, ou o java acha, independente de onde estiver?

Voce adicionou o jar do mysql na pasta lib do seu projeto ? ou colocou a dependência no maven ?

Sim, adicionei.

tente isso : “jdbc:mysql://localhost:3306/chamados_rlsystem”, “root”, “neto72” , e verifique se tambem se chamado_rlsystem esta criado.

A porta padrão para mysql é 3306, caso não for, verifique em qual porta o mesmo esta rodando.

Funcionou agora, pessoal, mas gostaria de entender o que aconteceu. Usei a dica do staroski e ainda deu erro, mas funcionou quando eu coloquei a porta na linha de conexão. O problema é que no exemplo da empresa do curso, não tem essa porta e em tese funcionou. Alguém pra explicar? Vejam o código como ficou (só a parte da conexão):
Connection conn = DriverManager.getConnection("jdbc:mysql:/**/localhost:3340/**chamados_rlsystem", "root", "neto72");

Quando voce não informa a porta no na String o mesmo assume que ele este rodando na porta padraõ 3306.
Provavelmente não funcionou na porta padrão, pois algum recurso esta usando essa porta.