|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2007
Messaggi: 2
|
[Java] problema servlet e jsp
salve a tutti, sto facendo un sito in cui gli utenti si distinguono tra docenti e studenti; i docenti possono assegnare dei voti agli studenti iscritti ai relativi esami. Il mio problema è questo: quando il docente vuole assegnare un voto seleziona la matricola, la materia, inserisce data e voto; la servlet che riceve i dati fa un controllo sulla data passata e quella presente nel db, se corrisponde fa la insert nel db nella tabella votazioni e fin qui tutto ok. Il problema è che nn so come fare in caso nn corrisponda la data perchè vorrei che la servlet inviasse alla jsp un messaggio di errore ma al momento ricarica solo la pagina senza avvertire che i dati nn sono stati inseriti. Come faccio se possibile a far visualizzare il messaggio?
ecco il metodo della servlet Codice:
public void Votazione(HttpServletRequest request){
String studente_iscritto=request.getParameter("studente_iscritto");
String appelli_fissati=request.getParameter("appelli_fissati");
String giorno=request.getParameter("giorno");
String mese=request.getParameter("mese");
String data_controllo=request.getParameter("data");
String votazione=request.getParameter("votazione");
int voto=Integer.parseInt(votazione);
String concat=(giorno+"/"+mese);
try{
Connection c=DriverManager.getConnection(url, user, pwd);
Statement st=c.createStatement();
if(data_controllo.equals(concat)){
st.executeUpdate("INSERT INTO VOTAZIONI(MATR_STUDENTE, NOME_CORSO, VOTAZIONE, DATA) VALUES('"+studente_iscritto+"', '"+appelli_fissati+"', "+voto+", '"+giorno+"/"+mese+"')");
}
st.close();
c.close();
}catch (SQLException e){e.printStackTrace();} }
Codice:
if(votazione!=null){
Votazione(request);
RequestDispatcher rd=getServletContext().getRequestDispatcher("/iscrizioni_doc.jsp"); rd.forward(request, response); }
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Premetto che mi intendo di javaee quanto di coltivazione di palme ma, incuriosito, ho fatto una prova. Riepilogo per vedere se parliamo della stessa cosa:
ho una pagina jsp che contiene un form che invia dei dati ad una servlet. In verità non cambia nulla se chi manda è una servlet e chi riceve una jsp o se sono tutte e due pagine jsp o servlet ma non è un problema. L'utente immette dei dati, preme invio e si aspetta che il risultato dell'invio (tutto ok, manca qualche pezzo, c'è stato un errore) appaia nella stessa pagina del form, in modo tale da poter procedere con gli inserimenti o eventualmente correggere i dati inseriti. Non so se sia bene o male ma salta fuori che si possa fare così. La pagina del form include un messaggio condizionato dall'esistenza di un attributo di sessione, chiamiamolo "error". Dopo aver disegnato il form, se c'è questo "error" e il suo valore non è vuoto allora la jsp lo stampa. Nell'esperimento che ho fatto ho usato un bean ma era per sfizio: Codice:
...omissis
</form>
<%
servlettest.StoreError error = (servlettest.StoreError) session.getAttribute("error");
if(error != null) {
if(error.hasErrorMessage()) {
out.println("errore " + error.getErrorMessage());
} else {
out.println("Dati salvati.");
}
session.removeAttribute("error");
}
%>
</body>
</html>
Sempre nella prova che ho fatto, la servlet lo fa dicendo: Codice:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
TestEntry entry = new TestEntry().init(request.getParameterMap());
StoreError error = new StoreError();
String status = entry.getStatus();
error.setErrorMessage(status);
session.setAttribute("error", error);
response.sendRedirect("/webtest");
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:30.


















