Change the name of the parameter to simply "Id", the standard controller will handle it automatically.
Add your custom methods to an Extension controller instead.
<apex:page standardController="Case"
extensions="MyCustomCaseControllerExt" showHeader="false">
<apex:outputText value="{!foo}" />
</apex:page>
In the controller, you don't explicitly have to fetch the Id, it's already done and available to you as you can get the record directly with getRecord()
public class myCaseControllerExtension {
private final Case myCase;
// The extension constructor initializes the private member
// variable Case by using the getRecord method from the standard
// controller.
public myCaseControllerExtension(ApexPages.StandardController stdController) {
this.myCase = (Case)stdController.getRecord();
}
public String foo() {
return 'Something interesting (' + myCase.id + ')';
}
}
See: Build an Extension Controller