0
我已經爲註冊成員製作了一個jsp頁面,當註冊人員忘記填寫表單中的任何字段時,錯誤消息將顯示在另一個頁面中。在請求範圍內存儲和檢索值
爲了實現這一點,我使用了3個servlet,第一個servlet從jsp頁面獲取值並傳入第二個servlet,它檢查是否有任何字段爲空,如果是,則返回消息給第一個servlet,然後將消息傳遞給第三個servlet以向用戶顯示錯誤消息。
我的問題是消息沒有從第一個servlet傳遞到第三個servlet。它只是返回null。
這裏是我做了什麼:
第一個servlet代碼:
String firstName=request.getParameter("firstName");
String lastName=request.getParameter("lastName");
String userName=request.getParameter("userName");
String password=request.getParameter("password");
Message message=Authenticator.registerUser(firstName, lastName, userName,"Student", password);
HttpSession mySession=request.getSession();
RequestDispatcher failMessageDispatcher= request.getRequestDispatcher("/ErrorController");
String message1=message.getMessage(); //gets the message to a variable
request.setAttribute("message", message1); // puts the variable in to the request scope
out.println(message1);
if(message.getStatus().equals("0"))
{
failMessageDispatcher.forward(request, response); //forwards to the third servlet for displaying
}
三servlet代碼:
String message= request.getParameter("message"); //get the message from the request scope
out.println(message); //display the message
我知道它在要求範圍內的問題,因爲如果把它在一個會話範圍,它的工作原理,但事情是我想使用請求範圍爲這項工作。我怎樣才能做這項工作?
謝謝你的時間。
爲什麼你_want使用要求scope_?這不是它的意思。 –
這只是我不想創建一個會話來顯示錯誤消息。 –
好吧,我犯了一個錯誤。我現在注意到,我已經在第三個servlet中使用request.getParameter而不是request.getAttribute(),這就是爲什麼它返回null。 –