Only return the NumberOfFeatures in a WFS query

You can set the parameter resultType to "hits" and you will get the number of features in the query similar to the count() function in SQL.

HTTP Get request example:

http://localhost:8080/geoserver/wfs?request=GetFeature&typeName=topp:states&version=1.1.0&resultType=hits

HTTP Post request example with a filter:

<wfs:GetFeature service="WFS" version="1.1.0"
  resultType="hits"
  xmlns:topp="http://www.openplans.org/topp"
  xmlns:wfs="http://www.opengis.net/wfs"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/wfs
                      http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
  <wfs:Query typeName="topp:states">
    <ogc:Filter>
       <ogc:FeatureId fid="states.3"/>
    </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

Provided you are using WFS 1.1 you can set resultype=hits and this will return just the number of records that match your query.

I can't recall if GeoServer has back ported this to 1.0 but the standard doesn't support it.