Hola d nuevo... a ver... va bien encaminada la cosa :P
Pero un par d matices...
<servlet-name>tcpServer.java</servlet-name>
Eso es el nombre que tu le quieras poner al servlet, solo vale para usarlo dentro del propio web.xml... asi le podrias llamar por ejemplo:
<servlet-name>tcp</servlet-name>
Y tb decirte.. q lo que va en <url-pattern>/servlet/tcpServer</url-pattern>
es la forma de llamarlo... es decir... con ese q pusiste la llamada seria:
http://localhost:8080/Carpeta/servlet/tcpServer
para q entiendas... si hubieses puesto esto otro:
<url-pattern>/servlet/tcpSer</url-pattern>
la llamada seria:
http://localhost:8080/Carpeta/servlet/tcpSer
aunque creo que tb es posible llamarlo con el nombre declarado en <servlet-name> o con el propio nombre de la clase en <servlet-class>, pero ahi ya no me mojo, yo siempre hago de la siguiente forma:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Proyecto tcp</display-name>
<description>
descripcion del proyecto tcp
</description>
<servlet>
<servlet-name>tcp</servlet-name>
<description>
Servlet que hace d tcpServer
</description>
<servlet-class>tcpServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tcp</servlet-name>
<url-pattern>/servlet/tcpServ</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>1</session-timeout> <!-- 30 minutes -->
</session-config>
</web-app>
He cambiado el servlet-name, para q veas q puede ser distinto de <servlet-class> y de url-pattern... lo unico que debe ser fijo es <servlet-class> con el nombre del archivo .class
El mapping lo unico que hace segun tengo entendido es proporcionar la direccion de llamada,por lo que le puedes poner la que tu quieras
Espero q t sirva d ayuda, y no dudes en preguntar si necesitas algo