Ti basterebbe un unico campo nella tabella dove elenchi i giorni che ti interessano. Nella jsp recuperi questo campo, fai il parsing della stringa ottenendo i singoli giorni e poi costruisci la tua tabella dinamicamente:
Codice PHP:
CAMPO_DELLA_TABELLA ---> GIORNI: 2,3,4,5
String giorni = recuperaCampoDalDB(...);
String[] singoliGiorni = giorni.split(",");
//uso un vector per evitare un ciclo di controllo per ogni giorno del mese
Vector<String> vettoreGiorni = new Vector<String>();
for(int i=0; i<singoliGiorni.length; i++){
vettoreGiorni.add(singoliGiorni[i];
}
for(int i=1; i<=31; i++){
if(vettoreGiorni.contains(String.valueOf(i)){
//crea cella colorata
}else{
//crea cella non colorata
}
}