Когда мы пытаемся переслать запрос, используя 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);
}