In your applet code, when you build the query string,
you should use the URLEncoder class to encode your parameter names and values. This makes them safe for inclusion in a URL. For example, it will replace all spaces with "+".
Also, the "operadoras" parameter in your applet could cause problems. It looks like that parameter can be very very long? There is a limit to how long a URL can be, so if the URL is too long, you will get back an HTTP error. You might be better off sending a POST request instead (right now, you are sending a GET request). POST requests store the parameters in the body of the request instead of the URL, so that means there's no limit to how long the parameters can be.
The whole idea of sending serialized objects over HTTP smells bad to me. I think that it's inefficient because you are sending not just whatever core data your servlet is generating, but also all the overhead data that comes with the Java object. And like you said, the servlet has to spend time generating the object, which is a big problem in your case. It also breaks the neutrality of HTTP because you are relying on the fact that your client and server are both running Java. My first thought is to get rid of the serialized objects altogether.