2013-12-21 8 views
0

Я сделал страницу jsp для регистрации участников, при регистрации, если человек забыл заполнить любое поле в форме, сообщение об ошибке отображается на другой странице.Сохранение и получение значений в области запроса

Для достижения этого я использовал 3 сервлета, первый сервлет, чтобы получить значения со страницы jsp и передать второй сервлет, который проверяет, есть ли какие-либо поля в пустом поле, если да, то возвращается сообщение первый сервлет, который затем передает сообщение третьему сервлету, чтобы отобразить сообщение об ошибке пользователю.

Моя проблема в том, что сообщение не передается с первого сервлета на третий сервлет. Он просто возвращает 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 

Я знаю его проблемы в контексте запроса, потому что, если поместить он входит в область сеанса, он работает, но я хочу использовать область запроса для этой работы. Как я могу сделать эту работу?

Спасибо за ваше время.

+0

Почему вы _want использовать запрос scope_? Это не то, для чего это предназначено. –

+1

Просто я не хочу создавать сеанс, чтобы отображать сообщение об ошибке. –

+0

Хорошо, я допустил ошибку. Я заметил, что теперь я использовал request.getParameter в третьем сервлете вместо request.getAttribute(), поэтому он возвращал значение null. –

ответ

0

Вы получаете нулевое значение, потому что в этом случае значение по умолчанию появилось из области запроса.

В случае области запроса он не существует, когда ответ отправляет обратно.

при нажатии на любую ссылку, то новый запрос и объект ответа создается

раз ответ отправить тогда запрос и ответ уже не действует или это уничтожить

даже с щелчком на такой же связь.

запрос область есть кратчайшие сроки.

когда же запрос пересылается и включает в себя то области запроса сделать это чувствовать иначе это время уничтожить

Смежные вопросы