Validar imagem

Galera, eu recebo uma imagem do tipo File da minha jsp que foi selecionada pelo usuário.
Como eu faria pra validar esse File, podendo ser jpg, png e gif?

toda a imagem tem um cabeçalho… basta ler a imagem e ver qual cabeçalho é referente a certa imagem…
o google pode te ajudar a identificar os tipos de cabeçalhos de imagens…

Assim como comentado acima você pode utilizar o cabeçalho para verificar que imagem veio pelo formulário ou capturar a extensão.
Também pode validar a extensão via JavaScript.

Talvez funcione. Mas dá pra deixar mais robusta.

Javascript

    var file = this.files[0];   
    if (file != null) {
        if (file.size <= 16384 && file.type == 'image/jpeg' || file.type == 'image/png' || file.type == 'image/gif') {
           // arquivo válido
        } else {
           // arquivo inválido
        }
    }

Java

@MultipartConfig(maxRequestSize = 65536, maxFileSize = 16384)
class MyServlet extends HttpServlet {

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException, java.io.IOException{
                      
        Part file = getPart("arquivo");
        if (file != null) {
            if (" image/gif image/jpeg image/png ".contains(file.getContentType())) {
                // arquivo válido
            } else {
                // arquivo inválido
            }        
        } else {
            // não tem arquivo nenhum.
        }
        
    }