me veio uma duvida, classe java normal roda normalmente no servidor? por exemplo, faço upload usando servlet, posso ter uma classe comum para manipular esse arquivo no servidor? estaria o servlet mais ligado com a comunicação cliente/servidor?
Cara tu sacou tudo, com certeza classe comum roda no servidor, melhor seria chamar de web contêiner! Um servlet é uma classe java que seque uma especificação, ou seja você é obrigado a estender a classe HttpServlet, em java você perceberá que tudo é assim, para determinadas situações somos obrigados a implementar um interface ou estender uma classe. Essa obrigatoriedade realmente tem a ver com a comunicação cliente/servidor, você sendo obrigado a estender HttpServlet fica preso aos métodos dessa classe e o web contêiner saberá o que encontrar nessa classe e saberá como lidar com ela. Você pode retirar a lógica de upload e pôr em uma classe separada, isso é até uma boa prática e instanciá-la dentro do servlet sem problemas.
Abraço.