Как запрос имеет атрибут без присвоения из метода setAttribute () перед RequestDispatcher? - PullRequest
0 голосов
/ 09 мая 2018

Когда мы пытаемся переслать запрос, используя RequestDispatcher из сервлета в jsp, мы используем request.setAttribute() метод.

  request.setAttribute("uname", name);
  RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
  rd.forward(request, response);

Но когда мы пытаемся переслать запрос от сервлета к другому сервлету, мы не используем метод request.setAttribute(), и результат печатается очень хорошо.

  RequestDispatcher dis=request.getRequestDispatcher("welcome");          
  dis.forward(request, response);      

Вы можете объяснить, почему это так? Спасибо.


login.jsp

 <form action="login" method="post"> 
     User Name:<input type="text" name="uname"/><br/> 
     Password:<input type="password" name="upass"/><br/> 
     <input type="submit" value="SUBMIT"/> 
 </form> 

LoginDetails servlet

    String name = request.getParameter("uname");
    String pass = request.getParameter("upass");
    if (name.equals("dilini") && pass.equals("123")) {
    // ONLY ONE OPTION IS USING HERE
    // for a jsp
    request.setAttribute("uname", name);
    request.getRequestDispatcher("welcome.jsp").forward(request, response);

    // for a servlet
    request.getRequestDispatcher("welcome").forward(request, response);

   }
...