See this link for queryString and how it's useful for us : Getting Query String Parameters
Look into below code it seems you can get some idea, it is fully customized with visualforce page and apex class :
Visualforce page
<apex:page controller="AccountConfirmINsertController">
<apex:form >
<apex:pageBlock >
<apex:pageBlockButtons >
<apex:commandButton value="Confirm" action="{!Confirm}" rendered="{!accountName == Null}"/>
<apex:commandButton value="Save" action="{!Save}" rendered="{!accountName != Null}"/>
<apex:commandButton value="Cancel" action="/apex/AccountConfirmINsert"/>
</apex:pageBlockButtons>
<apex:pageBlockSection >
<apex:inputField value="{!account.Name}" rendered="{!accountName == Null}">
<apex:param value="{!account.Name}" name="Name"/>
</apex:inputField>
<apex:inputField value="{!account.date__c}" rendered="{!accountName == Null}">
<apex:param value="{!account.date__c}" name="date"/>
</apex:inputField>
</apex:pageBlockSection>
<apex:pageBlockSection >
<apex:outputText value="{!accountName}" label="Account Name" rendered="{!accountName != Null}"/>
<apex:outputText value="{!accountdate}" label="Account Date" rendered="{!accountName != Null}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Apex class
public class AccountConfirmINsertController{
public Account account{get;set;}
public string accountName{get;set;}
public string accountdate{get;set;}
public AccountConfirmINsertController(){
account = new Account();
accountName = ApexPages.currentPage().getParameters().get('Name');
accountdate = ApexPages.currentPage().getParameters().get('date');
}
public pagereference confirm(){
Pagereference pg = new Pagereference('/apex/AccountConfirmINsert?Name='+account.Name+'&date='+account.date__c);
pg.setRedirect(true);
return pg;
}
public pagereference Save(){
account.Name = accountName;
account.date__c = Date.ValueOf(accountdate);
insert account;
return new Pagereference('/'+account.Id);
}
}